xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/acceptance/try_it_todo.t (revision 5759b3d249badf144a6240f7eec4dcf9df003e6b)
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