Convert Errno.t to Test::More. Increase the test coverage
Steve Peters [Thu, 7 Sep 2006 02:07:57 +0000 (02:07 +0000)]
while in there as well.

p4raw-id: //depot/perl@28794

ext/Errno/t/Errno.t

index a6b08e0..16d5cb0 100755 (executable)
@@ -1,4 +1,4 @@
-#!./perl
+#!./perl -w
 
 BEGIN {
     unless(grep /blib/, @INC) {
@@ -11,48 +11,37 @@ BEGIN {
     }
 }
 
-use Errno;
+use Test::More tests => 10;
 
-print "1..6\n";
+BEGIN {
+    use_ok("Errno");
+}
 
-print "not " unless @Errno::EXPORT_OK;
-print "ok 1\n";
-die unless @Errno::EXPORT_OK;
+BAIL_OUT("No errno's are exported") unless @Errno::EXPORT_OK;
 
-$err = $Errno::EXPORT_OK[0];
-$num = &{"Errno::$err"};
+my $err = $Errno::EXPORT_OK[0];
+my $num = &{"Errno::$err"};
 
-print "not " unless &{"Errno::$err"} == $num;
-print "ok 2\n";
+is($num, &{"Errno::$err"});
 
 $! = $num;
-# Some systems have ESUCCESS 0, that's why exists instead of boolean.
-print "not " unless exists $!{$err};
-print "ok 3\n";
+ok(exists $!{$err});
 
 $! = 0;
-print "not " if $!{$err};
-print "ok 4\n";
-
-$s1 = join(",",sort keys(%!));
-$s2 = join(",",sort @Errno::EXPORT_OK);
-
-if($s1 ne $s2) {
-    my @s1 = keys(%!);
-    my @s2 = @Errno::EXPORT_OK;
-    my(%s1,%s2);
-    @s1{@s1} = ();
-    @s2{@s2} = ();
-    delete @s2{@s1};
-    delete @s1{@s2};
-    print "# These are only in \%!\n";
-    print "# ",join(" ",map { "'$_'" } keys %s1),"\n";
-    print "# These are only in \@EXPORT_OK\n";
-    print "# ",join(" ",map { "'$_'" } keys %s2),"\n";
-    print "not ";
-}
+ok(! $!{$err});
 
-print "ok 5\n";
+ok(join(",",sort keys(%!)) eq join(",",sort @Errno::EXPORT_OK));
 
 eval { exists $!{[]} };
-print $@ ? "not ok 6\n" : "ok 6\n";
+ok(! $@);
+
+eval {$!{$err} = "qunckkk" };
+like($@, qr/^ERRNO hash is read only!/);
+
+eval {delete $!{$err}};
+like($@, qr/^ERRNO hash is read only!/);
+
+# The following tests are in trouble if some OS picks errno values
+# through Acme::MetaSyntactic::batman
+is($!{EFLRBBB}, "");
+ok(! exists($!{EFLRBBB}));