xref: /openbsd/gnu/usr.bin/perl/t/op/mkdir.t (revision 9f11ffb7)
1#!./perl -w
2
3BEGIN {
4    chdir 't' if -d 't';
5    require './test.pl';
6    set_up_inc('../lib');
7}
8
9plan tests => 17;
10
11unless (eval {
12    require File::Path;
13    File::Path::rmtree('blurfl') if -d '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
25sub errno_or_skip {
26    SKIP: {
27	if (is_miniperl && !eval { local $!; require Errno }) {
28	    skip "Errno not built yet", 1;
29	}
30	eval "ok($_[0])";
31    }
32}
33
34ok(mkdir('blurfl',0777));
35ok(!mkdir('blurfl',0777));
36errno_or_skip('$!{EEXIST} || $! =~ /cannot move|exist|denied|unknown/i');
37ok(-d 'blurfl');
38ok(rmdir('blurfl'));
39ok(!rmdir('blurfl'));
40errno_or_skip('
41    $!{ENOENT}
42       || $! =~ /cannot find|such|exist|not found|not a directory|unknown/i
43');
44ok(mkdir('blurfl'));
45ok(rmdir('blurfl'));
46
47# trailing slashes will be removed before the system call to mkdir
48ok(mkdir('blurfl///'));
49ok(-d 'blurfl');
50ok(rmdir('blurfl///'));
51ok(!-d 'blurfl');
52
53# test default argument
54
55$_ = 'blurfl';
56ok(mkdir);
57ok(-d);
58ok(rmdir);
59ok(!-d);
60$_ = 'lfrulb';
61