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