xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/fail.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
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