Commit | Line | Data |
b1ddf169 |
1 | #!/usr/bin/perl -w |
ccbd73a4 |
2 | # $Id: /mirror/googlecode/test-more/t/bail_out.t 57943 2008-08-18T02:09:22.275428Z brooklyn.kid51 $ |
b1ddf169 |
3 | |
4 | BEGIN { |
5 | if( $ENV{PERL_CORE} ) { |
6 | chdir 't'; |
7 | @INC = ('../lib', 'lib'); |
8 | } |
9 | else { |
10 | unshift @INC, 't/lib'; |
11 | } |
12 | } |
13 | |
14 | my $Exit_Code; |
15 | BEGIN { |
16 | *CORE::GLOBAL::exit = sub { $Exit_Code = shift; }; |
17 | } |
18 | |
19 | |
20 | use Test::Builder; |
21 | use Test::More; |
22 | use TieOut; |
23 | |
24 | my $output = tie *FAKEOUT, 'TieOut'; |
25 | my $TB = Test::More->builder; |
26 | $TB->output(\*FAKEOUT); |
27 | |
28 | my $Test = Test::Builder->create; |
29 | $Test->level(0); |
30 | |
31 | if( $] >= 5.005 ) { |
845d7e37 |
32 | $Test->plan(tests => 3); |
b1ddf169 |
33 | } |
34 | else { |
35 | $Test->plan(skip_all => |
36 | 'CORE::GLOBAL::exit, introduced in 5.005, is needed for testing'); |
37 | } |
38 | |
39 | |
40 | plan tests => 4; |
41 | |
42 | BAIL_OUT("ROCKS FALL! EVERYONE DIES!"); |
43 | |
44 | |
45 | $Test->is_eq( $output->read, <<'OUT' ); |
46 | 1..4 |
47 | Bail out! ROCKS FALL! EVERYONE DIES! |
48 | OUT |
49 | |
50 | $Test->is_eq( $Exit_Code, 255 ); |
845d7e37 |
51 | |
52 | $Test->ok( $Test->can("BAILOUT"), "Backwards compat" ); |