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