1*5759b3d2Safresh1use strict; 2*5759b3d2Safresh1 3*5759b3d2Safresh1use Test::Tester; 4*5759b3d2Safresh1 5*5759b3d2Safresh1use Data::Dumper qw(Dumper); 6*5759b3d2Safresh1 7*5759b3d2Safresh1my $test = Test::Builder->new; 8*5759b3d2Safresh1$test->plan(tests => 54); 9*5759b3d2Safresh1 10*5759b3d2Safresh1my $cap; 11*5759b3d2Safresh1 12*5759b3d2Safresh1{ 13*5759b3d2Safresh1 $cap = Test::Tester->capture; 14*5759b3d2Safresh1 my ($prem, @results) = run_tests( 15*5759b3d2Safresh1 sub {$cap->ok(1, "run pass")} 16*5759b3d2Safresh1 ); 17*5759b3d2Safresh1 18*5759b3d2Safresh1 local $Test::Builder::Level = 0; 19*5759b3d2Safresh1 20*5759b3d2Safresh1 $test->is_eq($prem, "", "run pass no prem"); 21*5759b3d2Safresh1 $test->is_num(scalar (@results), 1, "run pass result count"); 22*5759b3d2Safresh1 23*5759b3d2Safresh1 my $res = $results[0]; 24*5759b3d2Safresh1 25*5759b3d2Safresh1 $test->is_eq($res->{name}, "run pass", "run pass name"); 26*5759b3d2Safresh1 $test->is_eq($res->{ok}, 1, "run pass ok"); 27*5759b3d2Safresh1 $test->is_eq($res->{actual_ok}, 1, "run pass actual_ok"); 28*5759b3d2Safresh1 $test->is_eq($res->{reason}, "", "run pass reason"); 29*5759b3d2Safresh1 $test->is_eq($res->{type}, "", "run pass type"); 30*5759b3d2Safresh1 $test->is_eq($res->{diag}, "", "run pass diag"); 31*5759b3d2Safresh1 $test->is_num($res->{depth}, 0, "run pass depth"); 32*5759b3d2Safresh1} 33*5759b3d2Safresh1 34*5759b3d2Safresh1{ 35*5759b3d2Safresh1 my ($prem, @results) = run_tests( 36*5759b3d2Safresh1 sub {$cap->ok(0, "run fail")} 37*5759b3d2Safresh1 ); 38*5759b3d2Safresh1 39*5759b3d2Safresh1 local $Test::Builder::Level = 0; 40*5759b3d2Safresh1 41*5759b3d2Safresh1 $test->is_eq($prem, "", "run fail no prem"); 42*5759b3d2Safresh1 $test->is_num(scalar (@results), 1, "run fail result count"); 43*5759b3d2Safresh1 44*5759b3d2Safresh1 my $res = $results[0]; 45*5759b3d2Safresh1 46*5759b3d2Safresh1 $test->is_eq($res->{name}, "run fail", "run fail name"); 47*5759b3d2Safresh1 $test->is_eq($res->{actual_ok}, 0, "run fail actual_ok"); 48*5759b3d2Safresh1 $test->is_eq($res->{ok}, 0, "run fail ok"); 49*5759b3d2Safresh1 $test->is_eq($res->{reason}, "", "run fail reason"); 50*5759b3d2Safresh1 $test->is_eq($res->{type}, "", "run fail type"); 51*5759b3d2Safresh1 $test->is_eq($res->{diag}, "", "run fail diag"); 52*5759b3d2Safresh1 $test->is_num($res->{depth}, 0, "run fail depth"); 53*5759b3d2Safresh1} 54*5759b3d2Safresh1 55*5759b3d2Safresh1{ 56*5759b3d2Safresh1 my ($prem, @results) = run_tests( 57*5759b3d2Safresh1 sub {$cap->skip("just because")} 58*5759b3d2Safresh1 ); 59*5759b3d2Safresh1 60*5759b3d2Safresh1 local $Test::Builder::Level = 0; 61*5759b3d2Safresh1 62*5759b3d2Safresh1 $test->is_eq($prem, "", "skip no prem"); 63*5759b3d2Safresh1 $test->is_num(scalar (@results), 1, "skip result count"); 64*5759b3d2Safresh1 65*5759b3d2Safresh1 my $res = $results[0]; 66*5759b3d2Safresh1 67*5759b3d2Safresh1 $test->is_eq($res->{name}, "", "skip name"); 68*5759b3d2Safresh1 $test->is_eq($res->{actual_ok}, 1, "skip actual_ok"); 69*5759b3d2Safresh1 $test->is_eq($res->{ok}, 1, "skip ok"); 70*5759b3d2Safresh1 $test->is_eq($res->{reason}, "just because", "skip reason"); 71*5759b3d2Safresh1 $test->is_eq($res->{type}, "skip", "skip type"); 72*5759b3d2Safresh1 $test->is_eq($res->{diag}, "", "skip diag"); 73*5759b3d2Safresh1 $test->is_num($res->{depth}, 0, "skip depth"); 74*5759b3d2Safresh1} 75*5759b3d2Safresh1 76*5759b3d2Safresh1{ 77*5759b3d2Safresh1 my ($prem, @results) = run_tests( 78*5759b3d2Safresh1 sub {$cap->todo_skip("just because")} 79*5759b3d2Safresh1 ); 80*5759b3d2Safresh1 81*5759b3d2Safresh1 local $Test::Builder::Level = 0; 82*5759b3d2Safresh1 83*5759b3d2Safresh1 $test->is_eq($prem, "", "todo_skip no prem"); 84*5759b3d2Safresh1 $test->is_num(scalar (@results), 1, "todo_skip result count"); 85*5759b3d2Safresh1 86*5759b3d2Safresh1 my $res = $results[0]; 87*5759b3d2Safresh1 88*5759b3d2Safresh1 $test->is_eq($res->{name}, "", "todo_skip name"); 89*5759b3d2Safresh1 $test->is_eq($res->{actual_ok}, 0, "todo_skip actual_ok"); 90*5759b3d2Safresh1 $test->is_eq($res->{ok}, 1, "todo_skip ok"); 91*5759b3d2Safresh1 $test->is_eq($res->{reason}, "just because", "todo_skip reason"); 92*5759b3d2Safresh1 $test->is_eq($res->{type}, "todo_skip", "todo_skip type"); 93*5759b3d2Safresh1 $test->is_eq($res->{diag}, "", "todo_skip diag"); 94*5759b3d2Safresh1 $test->is_num($res->{depth}, 0, "todo_skip depth"); 95*5759b3d2Safresh1} 96*5759b3d2Safresh1 97*5759b3d2Safresh1{ 98*5759b3d2Safresh1 my ($prem, @results) = run_tests( 99*5759b3d2Safresh1 sub {$cap->diag("run diag")} 100*5759b3d2Safresh1 ); 101*5759b3d2Safresh1 102*5759b3d2Safresh1 local $Test::Builder::Level = 0; 103*5759b3d2Safresh1 104*5759b3d2Safresh1 $test->is_eq($prem, "run diag\n", "run diag prem"); 105*5759b3d2Safresh1 $test->is_num(scalar (@results), 0, "run diag result count"); 106*5759b3d2Safresh1} 107*5759b3d2Safresh1 108*5759b3d2Safresh1{ 109*5759b3d2Safresh1 my ($prem, @results) = run_tests( 110*5759b3d2Safresh1 sub { 111*5759b3d2Safresh1 $cap->ok(1, "multi pass"); 112*5759b3d2Safresh1 $cap->diag("multi pass diag1"); 113*5759b3d2Safresh1 $cap->diag("multi pass diag2"); 114*5759b3d2Safresh1 $cap->ok(0, "multi fail"); 115*5759b3d2Safresh1 $cap->diag("multi fail diag"); 116*5759b3d2Safresh1 } 117*5759b3d2Safresh1 ); 118*5759b3d2Safresh1 119*5759b3d2Safresh1 local $Test::Builder::Level = 0; 120*5759b3d2Safresh1 121*5759b3d2Safresh1 $test->is_eq($prem, "", "run multi no prem"); 122*5759b3d2Safresh1 $test->is_num(scalar (@results), 2, "run multi result count"); 123*5759b3d2Safresh1 124*5759b3d2Safresh1 my $res_pass = $results[0]; 125*5759b3d2Safresh1 126*5759b3d2Safresh1 $test->is_eq($res_pass->{name}, "multi pass", "run multi pass name"); 127*5759b3d2Safresh1 $test->is_eq($res_pass->{actual_ok}, 1, "run multi pass actual_ok"); 128*5759b3d2Safresh1 $test->is_eq($res_pass->{ok}, 1, "run multi pass ok"); 129*5759b3d2Safresh1 $test->is_eq($res_pass->{reason}, "", "run multi pass reason"); 130*5759b3d2Safresh1 $test->is_eq($res_pass->{type}, "", "run multi pass type"); 131*5759b3d2Safresh1 $test->is_eq($res_pass->{diag}, "multi pass diag1\nmulti pass diag2\n", 132*5759b3d2Safresh1 "run multi pass diag"); 133*5759b3d2Safresh1 $test->is_num($res_pass->{depth}, 0, "run multi pass depth"); 134*5759b3d2Safresh1 135*5759b3d2Safresh1 my $res_fail = $results[1]; 136*5759b3d2Safresh1 137*5759b3d2Safresh1 $test->is_eq($res_fail->{name}, "multi fail", "run multi fail name"); 138*5759b3d2Safresh1 $test->is_eq($res_pass->{actual_ok}, 1, "run multi fail actual_ok"); 139*5759b3d2Safresh1 $test->is_eq($res_fail->{ok}, 0, "run multi fail ok"); 140*5759b3d2Safresh1 $test->is_eq($res_pass->{reason}, "", "run multi fail reason"); 141*5759b3d2Safresh1 $test->is_eq($res_pass->{type}, "", "run multi fail type"); 142*5759b3d2Safresh1 $test->is_eq($res_fail->{diag}, "multi fail diag\n", "run multi fail diag"); 143*5759b3d2Safresh1 $test->is_num($res_pass->{depth}, 0, "run multi fail depth"); 144*5759b3d2Safresh1} 145*5759b3d2Safresh1 146