use v6-alpha; use Test; # $failed is set to 0 (actually to undef) at compiletime. my $failed; # At run time, if we ever reach runtime, $failed is set to 1. $failed = 1; # When we end, we check if $failed is still 0. If yes, we've never reached runtime. END { is $failed, undef, 'exit() works in CHECK {} - $fail not yet initialized at END time'; } CHECK { # Output the TAP header... plan 2; is $failed, undef, '$failed not yet initialized in CHECK {}'; # ...and exit, implicitly calling END. exit; } # This file was testing that exit does not trigger END at CHECK time. # However, the spec did not say anything on this subject, and Perl 5 # does call END blocks upon exit in CHECK. Hence I've preserved the # original test below but now it tests for the perl5-compatible behaviour. # -- audreyt 20061006 =begin END use v6-alpha; use Test; # $failed is set to 0 (actually to undef) at compiletime. my $failed; # At run time, if we ever reach runtime, $failed is set to 1. $failed = 1; # When we end, we check if $failed is still 0. If yes, we've never reached runtime. END { ok 0, 'END {...} should not be invoked'; } CHECK { # Output the TAP header... plan 1; is $failed, undef, 'exit() works in CHECK {}'; # ...and exit, which does _not_ call END. exit; }