This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Test the warnings.
authorJarkko Hietaniemi <jhi@iki.fi>
Fri, 3 Jul 2015 21:26:57 +0000 (17:26 -0400)
committerJarkko Hietaniemi <jhi@iki.fi>
Fri, 3 Jul 2015 21:31:59 +0000 (17:31 -0400)
Also allow running the test from the top level: ./miniperl t/op/chdir.t

t/op/chdir.t

index 8a4c49c..f58d440 100644 (file)
@@ -9,8 +9,8 @@ BEGIN {
     # chdir() works!  Instead, we'll hedge our bets and put both
     # possibilities into @INC.
     unshift @INC, qw(t . lib ../lib);
-    require "./test.pl";
-    plan(tests => 44);
+    require "test.pl";
+    plan(tests => 46);
 }
 
 use Config;
@@ -109,12 +109,22 @@ SKIP: {
     ok(-f "cond.t", "verify that we are in 'base'");
     ok(close(H), "close");
     $! = 0;
-    ok(!chdir(H), "check we can't chdir to closed handle");
-    is(0+$!, EBADF, 'check $! set appropriately');
-    $! = 0;
-    ok(!chdir(NEVEROPENED), "check we can't chdir to never opened handle");
-    is(0+$!, EBADF, 'check $! set appropriately');
-    chdir ".." or die $!;
+    {
+        my $warn;
+        local $SIG{__WARN__} = sub { $warn = shift };
+        ok(!chdir(H), "check we can't chdir to closed handle");
+        is(0+$!, EBADF, 'check $! set appropriately');
+        like($warn, qr/on closed filehandle H/, 'like closed');
+        $! = 0;
+    }
+    {
+        my $warn;
+        local $SIG{__WARN__} = sub { $warn = shift };
+        ok(!chdir(NEVEROPENED), "check we can't chdir to never opened handle");
+        is(0+$!, EBADF, 'check $! set appropriately');
+        like($warn, qr/on unopened filehandle NEVEROPENED/, 'like never opened');
+        chdir ".." or die $!;
+    }
 }
 
 SKIP: {