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