Really check that sysread(I, $x, 1, -4) dies with "Offset outside string"
[p5sagit/p5-mst-13.2.git] / t / op / mkdir.t
old mode 100755 (executable)
new mode 100644 (file)
index 7db5ec9..6c71e68
@@ -1,15 +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;
 
-`rm -rf blurfl`;
+use File::Path;
+rmtree('blurfl');
 
-print (mkdir('blurfl',0777) ? "ok 1\n" : "not ok 1\n");
-print (mkdir('blurfl',0777) ? "not ok 2\n" : "ok 2\n");
-print ($! =~ /exist/ ? "ok 3\n" : "not 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/ ? "ok 7\n" : "not ok 7\n");
+# tests 3 and 7 rather naughtily expect English error messages
+$ENV{'LC_ALL'} = 'C';
+$ENV{LANGUAGE} = 'C'; # GNU locale extension
+
+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);
+}