1*5759b3d2Safresh1#!perl -w 2*5759b3d2Safresh1 3*5759b3d2Safresh1# Simple test of what failure output looks like 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*5759b3d2Safresh1use strict; 16*5759b3d2Safresh1 17*5759b3d2Safresh1# Normalize the output whether we're running under Test::Harness or not. 18*5759b3d2Safresh1local $ENV{HARNESS_ACTIVE} = 0; 19*5759b3d2Safresh1 20*5759b3d2Safresh1use Test::Builder; 21*5759b3d2Safresh1use Test::Builder::NoOutput; 22*5759b3d2Safresh1 23*5759b3d2Safresh1# TB methods expect to be wrapped 24*5759b3d2Safresh1my $ok = sub { shift->ok(@_) }; 25*5759b3d2Safresh1my $plan = sub { shift->plan(@_) }; 26*5759b3d2Safresh1my $done_testing = sub { shift->done_testing(@_) }; 27*5759b3d2Safresh1 28*5759b3d2Safresh1my $Test = Test::Builder->new; 29*5759b3d2Safresh1 30*5759b3d2Safresh1# Set up a builder to record some failing tests. 31*5759b3d2Safresh1{ 32*5759b3d2Safresh1 my $tb = Test::Builder::NoOutput->create; 33*5759b3d2Safresh1 $tb->$plan( tests => 5 ); 34*5759b3d2Safresh1 35*5759b3d2Safresh1#line 28 36*5759b3d2Safresh1 $tb->$ok( 1, 'passing' ); 37*5759b3d2Safresh1 $tb->$ok( 2, 'passing still' ); 38*5759b3d2Safresh1 $tb->$ok( 3, 'still passing' ); 39*5759b3d2Safresh1 $tb->$ok( 0, 'oh no!' ); 40*5759b3d2Safresh1 $tb->$ok( 0, 'damnit' ); 41*5759b3d2Safresh1 $tb->_ending; 42*5759b3d2Safresh1 43*5759b3d2Safresh1 $Test->is_eq($tb->read('out'), <<OUT); 44*5759b3d2Safresh11..5 45*5759b3d2Safresh1ok 1 - passing 46*5759b3d2Safresh1ok 2 - passing still 47*5759b3d2Safresh1ok 3 - still passing 48*5759b3d2Safresh1not ok 4 - oh no! 49*5759b3d2Safresh1not ok 5 - damnit 50*5759b3d2Safresh1OUT 51*5759b3d2Safresh1 52*5759b3d2Safresh1 $Test->is_eq($tb->read('err'), <<ERR); 53*5759b3d2Safresh1# Failed test 'oh no!' 54*5759b3d2Safresh1# at $0 line 31. 55*5759b3d2Safresh1# Failed test 'damnit' 56*5759b3d2Safresh1# at $0 line 32. 57*5759b3d2Safresh1# Looks like you failed 2 tests of 5. 58*5759b3d2Safresh1ERR 59*5759b3d2Safresh1 60*5759b3d2Safresh1 $Test->$done_testing(2); 61*5759b3d2Safresh1} 62