xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/legacy/TAP.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1*5759b3d2Safresh1use strict;
2*5759b3d2Safresh1use warnings;
3*5759b3d2Safresh1# HARNESS-NO-FORMATTER
4*5759b3d2Safresh1
5*5759b3d2Safresh1use Test2::Tools::Tiny;
6*5759b3d2Safresh1
7*5759b3d2Safresh1#########################
8*5759b3d2Safresh1#
9*5759b3d2Safresh1# This test us here to insure that Ok, Diag, and Note events render the way
10*5759b3d2Safresh1# Test::More renders them, trailing whitespace and all.
11*5759b3d2Safresh1#
12*5759b3d2Safresh1#########################
13*5759b3d2Safresh1
14*5759b3d2Safresh1use Test2::API qw/test2_stack context/;
15*5759b3d2Safresh1
16*5759b3d2Safresh1# The tools in Test2::Tools::Tiny have some intentional differences from the
17*5759b3d2Safresh1# Test::More versions, these behave more like Test::More which is important for
18*5759b3d2Safresh1# back-compat.
19*5759b3d2Safresh1sub tm_ok($;$) {
20*5759b3d2Safresh1    my ($bool, $name) = @_;
21*5759b3d2Safresh1    my $ctx = context;
22*5759b3d2Safresh1
23*5759b3d2Safresh1    my $ok = bless {
24*5759b3d2Safresh1        pass => $bool,
25*5759b3d2Safresh1        name => $name,
26*5759b3d2Safresh1        effective_pass => 1,
27*5759b3d2Safresh1        trace => $ctx->trace->snapshot,
28*5759b3d2Safresh1    }, 'Test2::Event::Ok';
29*5759b3d2Safresh1    # Do not call init
30*5759b3d2Safresh1
31*5759b3d2Safresh1    $ctx->hub->send($ok);
32*5759b3d2Safresh1
33*5759b3d2Safresh1    $ctx->release;
34*5759b3d2Safresh1    return $bool;
35*5759b3d2Safresh1}
36*5759b3d2Safresh1
37*5759b3d2Safresh1# Test::More actually does a bit more, but for this test we just want to see
38*5759b3d2Safresh1# what happens when message is a specific string, or undef.
39*5759b3d2Safresh1sub tm_diag {
40*5759b3d2Safresh1    my $ctx = context();
41*5759b3d2Safresh1    $ctx->diag(@_);
42*5759b3d2Safresh1    $ctx->release;
43*5759b3d2Safresh1}
44*5759b3d2Safresh1
45*5759b3d2Safresh1sub tm_note {
46*5759b3d2Safresh1    my $ctx = context();
47*5759b3d2Safresh1    $ctx->note(@_);
48*5759b3d2Safresh1    $ctx->release;
49*5759b3d2Safresh1}
50*5759b3d2Safresh1
51*5759b3d2Safresh1# Ensure the top hub is generated
52*5759b3d2Safresh1test2_stack->top;
53*5759b3d2Safresh1
54*5759b3d2Safresh1my $temp_hub = test2_stack->new_hub();
55*5759b3d2Safresh1require Test::Builder::Formatter;
56*5759b3d2Safresh1$temp_hub->format(Test::Builder::Formatter->new);
57*5759b3d2Safresh1
58*5759b3d2Safresh1my $diag = capture {
59*5759b3d2Safresh1    tm_diag(undef);
60*5759b3d2Safresh1    tm_diag("");
61*5759b3d2Safresh1    tm_diag(" ");
62*5759b3d2Safresh1    tm_diag("A");
63*5759b3d2Safresh1    tm_diag("\n");
64*5759b3d2Safresh1    tm_diag("\nB");
65*5759b3d2Safresh1    tm_diag("C\n");
66*5759b3d2Safresh1    tm_diag("\nD\n");
67*5759b3d2Safresh1    tm_diag("E\n\n");
68*5759b3d2Safresh1};
69*5759b3d2Safresh1
70*5759b3d2Safresh1my $note = capture {
71*5759b3d2Safresh1    tm_note(undef);
72*5759b3d2Safresh1    tm_note("");
73*5759b3d2Safresh1    tm_note(" ");
74*5759b3d2Safresh1    tm_note("A");
75*5759b3d2Safresh1    tm_note("\n");
76*5759b3d2Safresh1    tm_note("\nB");
77*5759b3d2Safresh1    tm_note("C\n");
78*5759b3d2Safresh1    tm_note("\nD\n");
79*5759b3d2Safresh1    tm_note("E\n\n");
80*5759b3d2Safresh1};
81*5759b3d2Safresh1
82*5759b3d2Safresh1my $ok = capture {
83*5759b3d2Safresh1    tm_ok(1);
84*5759b3d2Safresh1    tm_ok(1, "");
85*5759b3d2Safresh1    tm_ok(1, " ");
86*5759b3d2Safresh1    tm_ok(1, "A");
87*5759b3d2Safresh1    tm_ok(1, "\n");
88*5759b3d2Safresh1    tm_ok(1, "\nB");
89*5759b3d2Safresh1    tm_ok(1, "C\n");
90*5759b3d2Safresh1    tm_ok(1, "\nD\n");
91*5759b3d2Safresh1    tm_ok(1, "E\n\n");
92*5759b3d2Safresh1};
93*5759b3d2Safresh1test2_stack->pop($temp_hub);
94*5759b3d2Safresh1
95*5759b3d2Safresh1is($diag->{STDOUT}, "", "STDOUT is empty for diag");
96*5759b3d2Safresh1is($diag->{STDERR}, <<EOT, "STDERR for diag looks right");
97*5759b3d2Safresh1# undef
98*5759b3d2Safresh1#_
99*5759b3d2Safresh1# _
100*5759b3d2Safresh1# A
101*5759b3d2Safresh1#_
102*5759b3d2Safresh1#_
103*5759b3d2Safresh1# B
104*5759b3d2Safresh1# C
105*5759b3d2Safresh1#_
106*5759b3d2Safresh1# D
107*5759b3d2Safresh1# E
108*5759b3d2Safresh1#_
109*5759b3d2Safresh1EOT
110*5759b3d2Safresh1
111*5759b3d2Safresh1
112*5759b3d2Safresh1is($note->{STDERR}, "", "STDERR for note is empty");
113*5759b3d2Safresh1is($note->{STDOUT}, <<EOT, "STDOUT looks right for note");
114*5759b3d2Safresh1# undef
115*5759b3d2Safresh1#_
116*5759b3d2Safresh1# _
117*5759b3d2Safresh1# A
118*5759b3d2Safresh1#_
119*5759b3d2Safresh1#_
120*5759b3d2Safresh1# B
121*5759b3d2Safresh1# C
122*5759b3d2Safresh1#_
123*5759b3d2Safresh1# D
124*5759b3d2Safresh1# E
125*5759b3d2Safresh1#_
126*5759b3d2Safresh1EOT
127*5759b3d2Safresh1
128*5759b3d2Safresh1
129*5759b3d2Safresh1is($ok->{STDERR}, "", "STDERR for ok is empty");
130*5759b3d2Safresh1is($ok->{STDOUT}, <<EOT, "STDOUT looks right for ok");
131*5759b3d2Safresh1ok 1
132*5759b3d2Safresh1ok 2 -_
133*5759b3d2Safresh1ok 3 - _
134*5759b3d2Safresh1ok 4 - A
135*5759b3d2Safresh1ok 5 -_
136*5759b3d2Safresh1#_
137*5759b3d2Safresh1ok 6 -_
138*5759b3d2Safresh1# B
139*5759b3d2Safresh1ok 7 - C
140*5759b3d2Safresh1#_
141*5759b3d2Safresh1ok 8 -_
142*5759b3d2Safresh1# D
143*5759b3d2Safresh1#_
144*5759b3d2Safresh1ok 9 - E
145*5759b3d2Safresh1#_
146*5759b3d2Safresh1#_
147*5759b3d2Safresh1EOT
148*5759b3d2Safresh1
149*5759b3d2Safresh1done_testing;
150