xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/regression/817-subtest-todo.t (revision f3efcd0145415b7d44d9da97e0ad5c21b186ac61)
1*f3efcd01Safresh1use Test2::API qw(run_subtest context intercept);
2*f3efcd01Safresh1use Test::More;
3*f3efcd01Safresh1use Test2::Tools::Tiny qw/todo/;
4*f3efcd01Safresh1
5*f3efcd01Safresh1sub aaa {
6*f3efcd01Safresh1    my $ctx = context();
7*f3efcd01Safresh1    run_subtest(
8*f3efcd01Safresh1        "bad pass",
9*f3efcd01Safresh1        sub {
10*f3efcd01Safresh1            local $TODO = "third test";
11*f3efcd01Safresh1            ok(1, "ok");
12*f3efcd01Safresh1        }
13*f3efcd01Safresh1    );
14*f3efcd01Safresh1    $ctx->release;
15*f3efcd01Safresh1}
16*f3efcd01Safresh1
17*f3efcd01Safresh1sub bbb {
18*f3efcd01Safresh1    my $ctx = context();
19*f3efcd01Safresh1    run_subtest(
20*f3efcd01Safresh1        "bad fail",
21*f3efcd01Safresh1        sub {
22*f3efcd01Safresh1            local $TODO = "fourth test";
23*f3efcd01Safresh1            ok(0, "ok");
24*f3efcd01Safresh1        }
25*f3efcd01Safresh1    );
26*f3efcd01Safresh1
27*f3efcd01Safresh1    $ctx->release;
28*f3efcd01Safresh1}
29*f3efcd01Safresh1
30*f3efcd01Safresh1my $events = intercept {
31*f3efcd01Safresh1    Test::Builder->new->_add_ts_hooks();
32*f3efcd01Safresh1    aaa();
33*f3efcd01Safresh1    bbb();
34*f3efcd01Safresh1};
35*f3efcd01Safresh1
36*f3efcd01Safresh1is_deeply(
37*f3efcd01Safresh1    $events->[1]->{subevents}->[0]->{amnesty}->[0],
38*f3efcd01Safresh1    { tag => 'TODO', details => "third test" },
39*f3efcd01Safresh1    "Amnesty was set properly for first subtest assertion",
40*f3efcd01Safresh1);
41*f3efcd01Safresh1
42*f3efcd01Safresh1is_deeply(
43*f3efcd01Safresh1    $events->[3]->{subevents}->[0]->{amnesty}->[0],
44*f3efcd01Safresh1    { tag => 'TODO', details => "fourth test" },
45*f3efcd01Safresh1    "Amnesty was set properly for second subtest assertion",
46*f3efcd01Safresh1);
47*f3efcd01Safresh1
48*f3efcd01Safresh1done_testing;
49