1#!perl -w
2
3BEGIN {
4    if( $ENV{PERL_CORE} ) {
5        chdir 't';
6        @INC = '../lib';
7    }
8    else {
9        unshift @INC, 't/lib';
10    }
11}
12
13use strict;
14
15use Test::Builder;
16use Test::Builder::NoOutput;
17use Test::Simple;
18
19# TB methods expect to be wrapped
20my $ok           = sub { shift->ok(@_) };
21my $plan         = sub { shift->plan(@_) };
22my $done_testing = sub { shift->done_testing(@_) };
23
24my $TB   = Test::Builder->new;
25my $test = Test::Builder::NoOutput->create;
26$test->$plan( tests => 3 );
27
28local $ENV{HARNESS_ACTIVE} = 0;
29
30$test->$ok(1, 'Foo');
31$TB->is_eq($test->read(), <<END);
321..3
33ok 1 - Foo
34END
35
36#line 30
37$test->$ok(0, 'Bar');
38$TB->is_eq($test->read(), <<END);
39not ok 2 - Bar
40#   Failed test 'Bar'
41#   at $0 line 30.
42END
43
44$test->$ok(1, 'Yar');
45$test->$ok(1, 'Car');
46$TB->is_eq($test->read(), <<END);
47ok 3 - Yar
48ok 4 - Car
49END
50
51#line 45
52$test->$ok(0, 'Sar');
53$TB->is_eq($test->read(), <<END);
54not ok 5 - Sar
55#   Failed test 'Sar'
56#   at $0 line 45.
57END
58
59$test->_ending();
60$TB->is_eq($test->read(), <<END);
61# Looks like you planned 3 tests but ran 5.
62# Looks like you failed 2 tests of 5 run.
63END
64
65$TB->$done_testing(5);
66