This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Re: Réf. : Re: PATCH proposal for ext/Safe/safe2.t
[perl5.git] / ext / Safe / safe2.t
index 18230e2..d967b19 100755 (executable)
@@ -118,14 +118,21 @@ print $@ =~ /foo bar/ ? "ok 29\n" : "not ok 29\n";
 
 # --- rdo
   
+my $t = 30;
+$! = 0;
 my $nosuch = '/non/existant/file.name';
 open(NOSUCH, $nosuch);
-my $errno  = $! + 0;
+if ($@) {
+    my $errno  = $!;
+    die "Eek! Attempting to open $nosuch failed, but \$! is still 0" unless $!;
+    $! = 0;
+    $cpt->rdo($nosuch);
+    print $! == $errno ? "ok $t\n" : sprintf "not ok $t # \"$!\" is %d (expected %d)\n", $!, $errno; $t++;
+} else {
+    die "Eek! Didn't expect $nosuch to be there.";
+}
 close(NOSUCH);
 
-my $t = 30;
-$cpt->rdo($nosuch);
-print $! == $errno ? "ok $t\n" : sprintf "not ok $t # \"$!\" is %d (expected %d)\n", $!, $errno; $t++;
 # test #31 is gone.
 print "ok $t\n"; $t++;