#!/usr/bin/perl -w
use
constant
TMPDIR
=>
"$Bin/mkdir_test_delete_me"
;
use
constant
ERROR_REGEXP
=>
qr{Can't mkdir\('\Q${\(TMPDIR)}
\E', 0777\):};
use
constant
SINGLE_DIGIT_ERROR_REGEXP
=>
qr{Can't mkdir\('\Q${\(TMPDIR)}
\E', 0010\):};
rmdir
TMPDIR;
mkdir
TMPDIR or plan
skip_all
=>
"Failed to make test directory"
;
-d TMPDIR or plan
skip_all
=>
"Failed to make test directory"
;
if
(
mkdir
TMPDIR) { plan
skip_all
=>
"Attempt to remake a directory succeeded"
;}
rmdir
TMPDIR or plan
skip_all
=>
"Failed to remove directory"
;
if
(-d TMPDIR) { plan
skip_all
=>
"Failed to delete test directory"
; }
if
(
rmdir
TMPDIR) { plan
skip_all
=>
"Able to rmdir directory twice"
; }
plan
tests
=> 18;
eval
{
mkdir
TMPDIR;
};
is($@,
""
,
"mkdir returned success"
);
ok(-d TMPDIR,
"Successfully created test directory"
);
eval
{
mkdir
TMPDIR, 0777;
};
ok($@,
"Re-creating directory causes failure."
);
isa_ok($@,
"autodie::exception"
,
"... errors are of the correct type"
);
ok($@->matches(
"mkdir"
),
"... it's also a mkdir object"
);
ok($@->matches(
":filesys"
),
"... and a filesys object"
);
like($@, ERROR_REGEXP,
"Message should include numeric mask in octal form"
);
eval
{
mkdir
TMPDIR, 8;
};
ok($@,
"Re-creating directory causes failure."
);
isa_ok($@,
"autodie::exception"
,
"... errors are of the correct type"
);
ok($@->matches(
"mkdir"
),
"... it's also a mkdir object"
);
ok($@->matches(
":filesys"
),
"... and a filesys object"
);
like($@, SINGLE_DIGIT_ERROR_REGEXP,
"Message should include numeric mask in octal form"
);
eval
{
rmdir
TMPDIR;
};
is($@,
""
,
"rmdir returned success"
);
ok(! -d TMPDIR,
"Successfully removed test directory"
);
eval
{
rmdir
TMPDIR;
};
ok($@,
"Re-deleting directory causes failure."
);
isa_ok($@,
"autodie::exception"
,
"... errors are of the correct type"
);
ok($@->matches(
"rmdir"
),
"... it's also a rmdir object"
);
ok($@->matches(
":filesys"
),
"... and a filesys object"
);