1use strict; 2use warnings; 3 4use Test2::API qw/context test2_stack/; 5 6sub done_testing { 7 my $ctx = context(); 8 9 die "Test Already ended!" if $ctx->hub->ended; 10 $ctx->hub->finalize($ctx->trace, 1); 11 $ctx->release; 12} 13 14sub ok($;$) { 15 my ($bool, $name) = @_; 16 my $ctx = context(); 17 $ctx->ok($bool, $name); 18 $ctx->release; 19} 20 21sub diag { 22 my $ctx = context(); 23 $ctx->diag( join '', @_ ); 24 $ctx->release; 25} 26 27ok(1, "First"); 28 29my $filter = test2_stack->top->filter(sub { 30 my ($hub, $event) = @_; 31 32 # Turn a diag into a note 33 return Test2::Event::Note->new(%$event) if ref($event) eq 'Test2::Event::Diag'; 34 35 # Set todo on ok's 36 if ($event->isa('Test2::Event::Ok')) { 37 $event->set_todo('here be dragons'); 38 $event->set_effective_pass(1); 39 } 40 41 return $event; 42}); 43 44ok(0, "Second"); 45diag "should be a note"; 46 47test2_stack->top->unfilter($filter); 48 49ok(1, "Third"); 50 51done_testing; 52