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