xref: /openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Test2/modules/Event/Bail.t (revision 5486feefcc8cb79b19e014ab332cc5dfd05b3b33)
15759b3d2Safresh1use strict;
25759b3d2Safresh1use warnings;
35759b3d2Safresh1use Test2::Tools::Tiny;
45759b3d2Safresh1use Test2::Event::Bail;
55759b3d2Safresh1use Test2::EventFacet::Trace;
65759b3d2Safresh1
75759b3d2Safresh1my $bail = Test2::Event::Bail->new(
85759b3d2Safresh1    trace  => Test2::EventFacet::Trace->new(frame => ['foo', 'foo.t', 42]),
95759b3d2Safresh1    reason => 'evil',
105759b3d2Safresh1);
115759b3d2Safresh1
125759b3d2Safresh1ok($bail->causes_fail, "bailout always causes fail.");
135759b3d2Safresh1
145759b3d2Safresh1is($bail->terminate, 255, "Bail will cause the test to exit.");
155759b3d2Safresh1is($bail->global,    1,   "Bail is global, everything should bail");
165759b3d2Safresh1
175759b3d2Safresh1is($bail->summary, "Bail out!  evil", "Summary includes reason");
185759b3d2Safresh1$bail->set_reason("");
195759b3d2Safresh1is($bail->summary, "Bail out!", "Summary has no reason");
205759b3d2Safresh1
215759b3d2Safresh1ok($bail->diagnostics, "Bail events are counted as diagnostics");
225759b3d2Safresh1
235759b3d2Safresh1is_deeply(
245759b3d2Safresh1    $bail->facet_data,
255759b3d2Safresh1    {
265759b3d2Safresh1        about => {
275759b3d2Safresh1            package => 'Test2::Event::Bail',
28f3efcd01Safresh1            eid     => $bail->eid,
295759b3d2Safresh1        },
305759b3d2Safresh1        control => {
315759b3d2Safresh1            global    => 1,
325759b3d2Safresh1            terminate => 255,
335759b3d2Safresh1            details   => '',
345759b3d2Safresh1            halt      => 1
355759b3d2Safresh1        },
365759b3d2Safresh1        trace => {
375759b3d2Safresh1            frame => [
385759b3d2Safresh1                'foo',
395759b3d2Safresh1                'foo.t',
405759b3d2Safresh1                '42',
415759b3d2Safresh1            ],
425759b3d2Safresh1            pid   => $$,
43*5486feefSafresh1            tid   => 0,
445759b3d2Safresh1        },
455759b3d2Safresh1    },
465759b3d2Safresh1    "Got facet data",
475759b3d2Safresh1);
485759b3d2Safresh1
495759b3d2Safresh1$bail->set_reason('uhg');
505759b3d2Safresh1is_deeply(
515759b3d2Safresh1    $bail->facet_data,
525759b3d2Safresh1    {
535759b3d2Safresh1        about => {
545759b3d2Safresh1            package => 'Test2::Event::Bail',
55f3efcd01Safresh1            eid     => $bail->eid,
565759b3d2Safresh1        },
575759b3d2Safresh1        control => {
585759b3d2Safresh1            global    => 1,
595759b3d2Safresh1            terminate => 255,
605759b3d2Safresh1            details   => 'uhg',
615759b3d2Safresh1            halt      => 1
625759b3d2Safresh1        },
635759b3d2Safresh1        trace => {
645759b3d2Safresh1            frame => [
655759b3d2Safresh1                'foo',
665759b3d2Safresh1                'foo.t',
675759b3d2Safresh1                '42',
685759b3d2Safresh1            ],
695759b3d2Safresh1            pid   => $$,
70*5486feefSafresh1            tid   => 0,
715759b3d2Safresh1        },
725759b3d2Safresh1    },
735759b3d2Safresh1    "Got facet data with reason",
745759b3d2Safresh1);
755759b3d2Safresh1
765759b3d2Safresh1done_testing;
77