1*5759b3d2Safresh1#!/usr/bin/perl -w 2*5759b3d2Safresh1# HARNESS-NO-STREAM 3*5759b3d2Safresh1# HARNESS-NO-PRELOAD 4*5759b3d2Safresh1 5*5759b3d2Safresh1BEGIN { 6*5759b3d2Safresh1 if( $ENV{PERL_CORE} ) { 7*5759b3d2Safresh1 chdir 't'; 8*5759b3d2Safresh1 @INC = ('../lib', 'lib'); 9*5759b3d2Safresh1 } 10*5759b3d2Safresh1 else { 11*5759b3d2Safresh1 unshift @INC, 't/lib'; 12*5759b3d2Safresh1 } 13*5759b3d2Safresh1} 14*5759b3d2Safresh1 15*5759b3d2Safresh1my $goto = 0; 16*5759b3d2Safresh1my $Exit_Code; 17*5759b3d2Safresh1BEGIN { 18*5759b3d2Safresh1 *CORE::GLOBAL::exit = sub { $Exit_Code = shift; goto XXX if $goto; CORE::exit($Exit_Code)}; 19*5759b3d2Safresh1} 20*5759b3d2Safresh1 21*5759b3d2Safresh1use Test::Builder; 22*5759b3d2Safresh1use Test::More; 23*5759b3d2Safresh1 24*5759b3d2Safresh1my $skip = ref(Test::Builder->new->{Stack}->top->format) ne 'Test::Builder::Formatter'; 25*5759b3d2Safresh1plan skip_all => "This test cannot be run with the current formatter" 26*5759b3d2Safresh1 if $skip; 27*5759b3d2Safresh1 28*5759b3d2Safresh1$goto = 1; 29*5759b3d2Safresh1my $output; 30*5759b3d2Safresh1my $TB = Test::More->builder; 31*5759b3d2Safresh1$TB->output(\$output); 32*5759b3d2Safresh1 33*5759b3d2Safresh1my $Test = Test::Builder->create; 34*5759b3d2Safresh1$Test->level(0); 35*5759b3d2Safresh1 36*5759b3d2Safresh1$Test->plan(tests => 2); 37*5759b3d2Safresh1 38*5759b3d2Safresh1plan tests => 4; 39*5759b3d2Safresh1 40*5759b3d2Safresh1ok 'foo'; 41*5759b3d2Safresh1subtest 'bar' => sub { 42*5759b3d2Safresh1 plan tests => 3; 43*5759b3d2Safresh1 ok 'sub_foo'; 44*5759b3d2Safresh1 subtest 'sub_bar' => sub { 45*5759b3d2Safresh1 plan tests => 3; 46*5759b3d2Safresh1 ok 'sub_sub_foo'; 47*5759b3d2Safresh1 ok 'sub_sub_bar'; 48*5759b3d2Safresh1 BAIL_OUT("ROCKS FALL! EVERYONE DIES!"); 49*5759b3d2Safresh1 ok 'sub_sub_baz'; 50*5759b3d2Safresh1 }; 51*5759b3d2Safresh1 ok 'sub_baz'; 52*5759b3d2Safresh1}; 53*5759b3d2Safresh1 54*5759b3d2Safresh1XXX: 55*5759b3d2Safresh1 56*5759b3d2Safresh1$Test->is_eq( $output, <<'OUT' ); 57*5759b3d2Safresh11..4 58*5759b3d2Safresh1ok 1 59*5759b3d2Safresh1# Subtest: bar 60*5759b3d2Safresh1 1..3 61*5759b3d2Safresh1 ok 1 62*5759b3d2Safresh1 # Subtest: sub_bar 63*5759b3d2Safresh1 1..3 64*5759b3d2Safresh1 ok 1 65*5759b3d2Safresh1 ok 2 66*5759b3d2Safresh1Bail out! ROCKS FALL! EVERYONE DIES! 67*5759b3d2Safresh1OUT 68*5759b3d2Safresh1 69*5759b3d2Safresh1$Test->is_eq( $Exit_Code, 255 ); 70*5759b3d2Safresh1 71*5759b3d2Safresh1Test2::API::test2_stack()->top->set_no_ending(1); 72