1*5759b3d2Safresh1#!perl -w 2*5759b3d2Safresh1 3*5759b3d2Safresh1BEGIN { 4*5759b3d2Safresh1 if( $ENV{PERL_CORE} ) { 5*5759b3d2Safresh1 chdir 't'; 6*5759b3d2Safresh1 @INC = ('../lib', 'lib'); 7*5759b3d2Safresh1 } 8*5759b3d2Safresh1 else { 9*5759b3d2Safresh1 unshift @INC, 't/lib'; 10*5759b3d2Safresh1 } 11*5759b3d2Safresh1} 12*5759b3d2Safresh1 13*5759b3d2Safresh1use strict; 14*5759b3d2Safresh1 15*5759b3d2Safresh1use Test::Simple::Catch; 16*5759b3d2Safresh1my($out, $err) = Test::Simple::Catch::caught(); 17*5759b3d2Safresh1 18*5759b3d2Safresh1 19*5759b3d2Safresh1# Can't use Test.pm, that's a 5.005 thing. 20*5759b3d2Safresh1package My::Test; 21*5759b3d2Safresh1 22*5759b3d2Safresh1# This has to be a require or else the END block below runs before 23*5759b3d2Safresh1# Test::Builder's own and the ending diagnostics don't come out right. 24*5759b3d2Safresh1require Test::Builder; 25*5759b3d2Safresh1my $TB = Test::Builder->create; 26*5759b3d2Safresh1$TB->plan(tests => 4); 27*5759b3d2Safresh1 28*5759b3d2Safresh1# Utility testing functions. 29*5759b3d2Safresh1sub ok ($;$) { 30*5759b3d2Safresh1 return $TB->ok(@_); 31*5759b3d2Safresh1} 32*5759b3d2Safresh1 33*5759b3d2Safresh1 34*5759b3d2Safresh1sub main::err_ok ($) { 35*5759b3d2Safresh1 my($expect) = @_; 36*5759b3d2Safresh1 my $got = $err->read; 37*5759b3d2Safresh1 38*5759b3d2Safresh1 return $TB->is_eq( $got, $expect ); 39*5759b3d2Safresh1} 40*5759b3d2Safresh1 41*5759b3d2Safresh1 42*5759b3d2Safresh1package main; 43*5759b3d2Safresh1 44*5759b3d2Safresh1require Test::More; 45*5759b3d2Safresh1Test::More->import(tests => 4); 46*5759b3d2Safresh1Test::More->builder->no_ending(1); 47*5759b3d2Safresh1 48*5759b3d2Safresh1{ 49*5759b3d2Safresh1 local $ENV{HARNESS_ACTIVE} = 0; 50*5759b3d2Safresh1 local $ENV{HARNESS_IS_VERBOSE} = 0; 51*5759b3d2Safresh1 52*5759b3d2Safresh1#line 62 53*5759b3d2Safresh1 fail( "this fails" ); 54*5759b3d2Safresh1 err_ok( <<ERR ); 55*5759b3d2Safresh1# Failed test 'this fails' 56*5759b3d2Safresh1# at $0 line 62. 57*5759b3d2Safresh1ERR 58*5759b3d2Safresh1 59*5759b3d2Safresh1#line 72 60*5759b3d2Safresh1 is( 1, 0 ); 61*5759b3d2Safresh1 err_ok( <<ERR ); 62*5759b3d2Safresh1# Failed test at $0 line 72. 63*5759b3d2Safresh1# got: '1' 64*5759b3d2Safresh1# expected: '0' 65*5759b3d2Safresh1ERR 66*5759b3d2Safresh1} 67*5759b3d2Safresh1 68*5759b3d2Safresh1{ 69*5759b3d2Safresh1 local $ENV{HARNESS_ACTIVE} = 1; 70*5759b3d2Safresh1 local $ENV{HARNESS_IS_VERBOSE} = 0; 71*5759b3d2Safresh1 72*5759b3d2Safresh1#line 71 73*5759b3d2Safresh1 fail( "this fails" ); 74*5759b3d2Safresh1 err_ok( <<ERR ); 75*5759b3d2Safresh1 76*5759b3d2Safresh1# Failed test 'this fails' 77*5759b3d2Safresh1# at $0 line 71. 78*5759b3d2Safresh1ERR 79*5759b3d2Safresh1 80*5759b3d2Safresh1 81*5759b3d2Safresh1#line 84 82*5759b3d2Safresh1 is( 1, 0 ); 83*5759b3d2Safresh1 err_ok( <<ERR ); 84*5759b3d2Safresh1 85*5759b3d2Safresh1# Failed test at $0 line 84. 86*5759b3d2Safresh1# got: '1' 87*5759b3d2Safresh1# expected: '0' 88*5759b3d2Safresh1ERR 89*5759b3d2Safresh1 90*5759b3d2Safresh1} 91