Fix [RT#66098] -- stricter checking on SvIVX exposed a lack of SvIOK check
[p5sagit/p5-mst-13.2.git] / t / op / mkdir.t
index 4bd1b21..6c71e68 100755 (executable)
@@ -1,26 +1,54 @@
-#!./perl
+#!./perl -w
 
-# $RCSfile: mkdir.t,v $$Revision: 4.1 $$Date: 92/08/07 18:28:06 $
+BEGIN {
+    chdir 't' if -d 't';
+    @INC = '../lib';
+    require './test.pl';
+}
 
-print "1..7\n";
+plan tests => 22;
 
-if ($^O eq 'VMS') { # May as well test the library too
-  unshift @INC, '../lib';
-  require File::Path;
-  File::Path::rmtree('blurfl');
-}
-else {
-  $^O eq 'MSWin32' ? `del /s /q blurfl 2>&1` : `rm -rf blurfl`;
-}
+use File::Path;
+rmtree('blurfl');
 
 # tests 3 and 7 rather naughtily expect English error messages
 $ENV{'LC_ALL'} = 'C';
 $ENV{LANGUAGE} = 'C'; # GNU locale extension
 
-print (mkdir('blurfl',0777) ? "ok 1\n" : "not ok 1\n");
-print (mkdir('blurfl',0777) ? "not ok 2\n" : "ok 2\n");
-print ($! =~ /exist|denied/ ? "ok 3\n" : "# $!\nnot ok 3\n");
-print (-d 'blurfl' ? "ok 4\n" : "not ok 4\n");
-print (rmdir('blurfl') ? "ok 5\n" : "not ok 5\n");
-print (rmdir('blurfl') ? "not ok 6\n" : "ok 6\n");
-print ($! =~ /such|exist|not found/i ? "ok 7\n" : "not ok 7\n");
+ok(mkdir('blurfl',0777));
+ok(!mkdir('blurfl',0777));
+like($!, qr/cannot move|exist|denied|unknown/i);
+ok(-d 'blurfl');
+ok(rmdir('blurfl'));
+ok(!rmdir('blurfl'));
+like($!, qr/cannot find|such|exist|not found|not a directory|unknown/i);
+ok(mkdir('blurfl'));
+ok(rmdir('blurfl'));
+
+SKIP: {
+    # trailing slashes will be removed before the system call to mkdir
+    # but we don't care for MacOS ...
+    skip("MacOS", 4) if $^O eq 'MacOS';
+    ok(mkdir('blurfl///'));
+    ok(-d 'blurfl');
+    ok(rmdir('blurfl///'));
+    ok(!-d 'blurfl');
+}
+
+# test default argument
+
+$_ = 'blurfl';
+ok(mkdir);
+ok(-d);
+ok(rmdir);
+ok(!-d);
+$_ = 'lfrulb';
+
+{
+    my $_ = 'blurfl';
+    ok(mkdir);
+    ok(-d);
+    ok(-d 'blurfl');
+    ok(!-d 'lfrulb');
+    ok(rmdir);
+}