xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/regression/721-nested-streamed-subtest.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
1*5759b3d2Safresh1use strict;
2*5759b3d2Safresh1use warnings;
3*5759b3d2Safresh1
4*5759b3d2Safresh1use Test2::Tools::Tiny;
5*5759b3d2Safresh1
6*5759b3d2Safresh1# This module's exports interfere with the ones in t/tools.pl
7*5759b3d2Safresh1use Test::More ();
8*5759b3d2Safresh1use Test::Builder::Formatter();
9*5759b3d2Safresh1use Test2::API qw/run_subtest test2_stack/;
10*5759b3d2Safresh1
11*5759b3d2Safresh1{
12*5759b3d2Safresh1    test2_stack->top;
13*5759b3d2Safresh1    my $temp_hub = test2_stack->new_hub();
14*5759b3d2Safresh1    $temp_hub->format(Test::Builder::Formatter->new());
15*5759b3d2Safresh1
16*5759b3d2Safresh1    my $output = capture {
17*5759b3d2Safresh1        run_subtest(
18*5759b3d2Safresh1            'parent',
19*5759b3d2Safresh1            sub {
20*5759b3d2Safresh1                run_subtest(
21*5759b3d2Safresh1                    'buffered',
22*5759b3d2Safresh1                    sub {
23*5759b3d2Safresh1                        ok(1, 'b1');
24*5759b3d2Safresh1                        ok(1, 'b2');
25*5759b3d2Safresh1                    },
26*5759b3d2Safresh1                    {buffered => 1},
27*5759b3d2Safresh1                );
28*5759b3d2Safresh1                run_subtest(
29*5759b3d2Safresh1                    'streamed',
30*5759b3d2Safresh1                    sub {
31*5759b3d2Safresh1                        ok(1, 's1');
32*5759b3d2Safresh1                        ok(1, 's2');
33*5759b3d2Safresh1                    },
34*5759b3d2Safresh1                    {buffered => 0},
35*5759b3d2Safresh1                );
36*5759b3d2Safresh1            },
37*5759b3d2Safresh1            {buffered => 1},
38*5759b3d2Safresh1        );
39*5759b3d2Safresh1    };
40*5759b3d2Safresh1
41*5759b3d2Safresh1    test2_stack->pop($temp_hub);
42*5759b3d2Safresh1
43*5759b3d2Safresh1    Test::More::subtest(
44*5759b3d2Safresh1        'Test2::API::run_subtest',
45*5759b3d2Safresh1        sub {
46*5759b3d2Safresh1            is($output->{STDERR}, q{}, 'no output on stderr');
47*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 1 - b1/, 'got ok output for tests in buffered subtest');
48*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 2 - b2/, 'got ok output for tests in buffered subtest');
49*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 1 - s1/, 'got ok output for tests in streamed subtest');
50*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 2 - s2/, 'got ok output for tests in streamed subtest');
51*5759b3d2Safresh1        }
52*5759b3d2Safresh1    );
53*5759b3d2Safresh1}
54*5759b3d2Safresh1
55*5759b3d2Safresh1{
56*5759b3d2Safresh1    test2_stack->top;
57*5759b3d2Safresh1    my $temp_hub = test2_stack->new_hub();
58*5759b3d2Safresh1    $temp_hub->format(Test::Builder::Formatter->new());
59*5759b3d2Safresh1
60*5759b3d2Safresh1    my $output = capture {
61*5759b3d2Safresh1        run_subtest(
62*5759b3d2Safresh1            'parent',
63*5759b3d2Safresh1            sub {
64*5759b3d2Safresh1                run_subtest(
65*5759b3d2Safresh1                    'buffered',
66*5759b3d2Safresh1                    sub {
67*5759b3d2Safresh1                        ok(1, 'b1');
68*5759b3d2Safresh1                        ok(1, 'b2');
69*5759b3d2Safresh1                    },
70*5759b3d2Safresh1                    {buffered => 1},
71*5759b3d2Safresh1                );
72*5759b3d2Safresh1                Test::More::subtest(
73*5759b3d2Safresh1                    'streamed',
74*5759b3d2Safresh1                    sub {
75*5759b3d2Safresh1                        ok(1, 's1');
76*5759b3d2Safresh1                        ok(1, 's2');
77*5759b3d2Safresh1                    },
78*5759b3d2Safresh1                    {buffered => 0},
79*5759b3d2Safresh1                );
80*5759b3d2Safresh1            },
81*5759b3d2Safresh1            {buffered => 1},
82*5759b3d2Safresh1        );
83*5759b3d2Safresh1    };
84*5759b3d2Safresh1
85*5759b3d2Safresh1    test2_stack->pop($temp_hub);
86*5759b3d2Safresh1
87*5759b3d2Safresh1    Test::More::subtest(
88*5759b3d2Safresh1        'Test::More::subtest and Test2::API::run_subtest',
89*5759b3d2Safresh1        sub {
90*5759b3d2Safresh1            is($output->{STDERR}, q{}, 'no output on stderr');
91*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 1 - b1/, 'got ok output for tests in buffered subtest');
92*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 2 - b2/, 'got ok output for tests in buffered subtest');
93*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 1 - s1/, 'got ok output for tests in streamed subtest');
94*5759b3d2Safresh1            like($output->{STDOUT}, qr/ +ok 2 - s2/, 'got ok output for tests in streamed subtest');
95*5759b3d2Safresh1        }
96*5759b3d2Safresh1    );
97*5759b3d2Safresh1}
98*5759b3d2Safresh1
99*5759b3d2Safresh1done_testing;
100