xref: /openbsd-src/gnu/usr.bin/perl/t/op/mkdir.t (revision f2da64fbbbf1b03f09f390ab01267c93dfd77c4c)
1#!./perl -w
2
3BEGIN {
4    chdir 't' if -d 't';
5    @INC = '../lib';
6    require './test.pl';
7}
8
9plan tests => 22;
10
11unless (eval {
12    require File::Path;
13    File::Path::rmtree('blurfl');
14    1
15}) {
16    diag("$0 may fail if its temporary directory remains from a previous run");
17    diag("Attempted to load File::Path to delete directory t/blurfl - error was\n$@");
18    diag("\nIf you have problems, please manually delete t/blurfl");
19}
20
21# tests 3 and 7 rather naughtily expect English error messages
22$ENV{'LC_ALL'} = 'C';
23$ENV{LANGUAGE} = 'C'; # GNU locale extension
24
25ok(mkdir('blurfl',0777));
26ok(!mkdir('blurfl',0777));
27ok($!{EEXIST} || $! =~ /cannot move|exist|denied|unknown/i);
28ok(-d 'blurfl');
29ok(rmdir('blurfl'));
30ok(!rmdir('blurfl'));
31ok($!{ENOENT} || $! =~ /cannot find|such|exist|not found|not a directory|unknown/i);
32ok(mkdir('blurfl'));
33ok(rmdir('blurfl'));
34
35# trailing slashes will be removed before the system call to mkdir
36ok(mkdir('blurfl///'));
37ok(-d 'blurfl');
38ok(rmdir('blurfl///'));
39ok(!-d 'blurfl');
40
41# test default argument
42
43$_ = 'blurfl';
44ok(mkdir);
45ok(-d);
46ok(rmdir);
47ok(!-d);
48$_ = 'lfrulb';
49
50{
51    no warnings 'experimental::lexical_topic';
52    my $_ = 'blurfl';
53    ok(mkdir);
54    ok(-d);
55    ok(-d 'blurfl');
56    ok(!-d 'lfrulb');
57    ok(rmdir);
58}
59