diff options
author | Gurusamy Sarathy <gsar@cpan.org> | 1998-08-02 04:21:48 +0000 |
---|---|---|
committer | Gurusamy Sarathy <gsar@cpan.org> | 1998-08-02 04:21:48 +0000 |
commit | df0bd2f4ab5af7b0babaa8c3c84969f29fcac3c7 (patch) | |
tree | 914b0cdb127888696c000090152efbaaa4029187 /t | |
parent | 502a173a8c3e53b1538fe058ed5270cb83ccfb93 (diff) | |
download | perl-df0bd2f4ab5af7b0babaa8c3c84969f29fcac3c7.tar.gz |
ensure implicit close on local(*FH) doesn't affect $! and thence $?
p4raw-id: //depot/maint-5.005/perl@1687
Diffstat (limited to 't')
-rwxr-xr-x | t/op/die_exit.t | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/t/op/die_exit.t b/t/op/die_exit.t index b5760d6fa0..ffbb1e015e 100755 --- a/t/op/die_exit.t +++ b/t/op/die_exit.t @@ -30,6 +30,8 @@ my %tests = ( 14 => [ 255, 0], 15 => [ 255, 1], 16 => [ 255, 256], + # see if implicit close preserves $? + 17 => [ 42, 42, '{ local *F; open F, q[TEST]; close F } die;'], ); my $max = keys %tests; @@ -37,11 +39,12 @@ my $max = keys %tests; print "1..$max\n"; foreach my $test (1 .. $max) { - my($bang, $query) = @{$tests{$test}}; + my($bang, $query, $code) = @{$tests{$test}}; + $code ||= 'die;'; my $exit = ($^O eq 'MSWin32' - ? system qq($perl -e "\$! = $bang; \$? = $query; die;" 2> nul) - : system qq($perl -e '\$! = $bang; \$? = $query; die;' 2> /dev/null)); + ? system qq($perl -e "\$! = $bang; \$? = $query; $code" 2> nul) + : system qq($perl -e '\$! = $bang; \$? = $query; $code' 2> /dev/null)); printf "# 0x%04x 0x%04x 0x%04x\nnot ", $exit, $bang, $query unless $exit == (($bang || ($query >> 8) || 255) << 8); |