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 => 139); 9*5759b3d2Safresh1 10*5759b3d2Safresh1my $cap; 11*5759b3d2Safresh1 12*5759b3d2Safresh1$cap = Test::Tester->capture; 13*5759b3d2Safresh1 14*5759b3d2Safresh1my @tests = ( 15*5759b3d2Safresh1 [ 16*5759b3d2Safresh1 'pass', 17*5759b3d2Safresh1 '$cap->ok(1, "pass");', 18*5759b3d2Safresh1 { 19*5759b3d2Safresh1 name => "pass", 20*5759b3d2Safresh1 ok => 1, 21*5759b3d2Safresh1 actual_ok => 1, 22*5759b3d2Safresh1 reason => "", 23*5759b3d2Safresh1 type => "", 24*5759b3d2Safresh1 diag => "", 25*5759b3d2Safresh1 depth => 0, 26*5759b3d2Safresh1 }, 27*5759b3d2Safresh1 ], 28*5759b3d2Safresh1 [ 29*5759b3d2Safresh1 'pass diag', 30*5759b3d2Safresh1 '$cap->ok(1, "pass diag"); 31*5759b3d2Safresh1 $cap->diag("pass diag1"); 32*5759b3d2Safresh1 $cap->diag("pass diag2");', 33*5759b3d2Safresh1 { 34*5759b3d2Safresh1 name => "pass diag", 35*5759b3d2Safresh1 ok => 1, 36*5759b3d2Safresh1 actual_ok => 1, 37*5759b3d2Safresh1 reason => "", 38*5759b3d2Safresh1 type => "", 39*5759b3d2Safresh1 diag => "pass diag1\npass diag2\n", 40*5759b3d2Safresh1 depth => 0, 41*5759b3d2Safresh1 }, 42*5759b3d2Safresh1 ], 43*5759b3d2Safresh1 [ 44*5759b3d2Safresh1 'pass diag no \\n', 45*5759b3d2Safresh1 '$cap->ok(1, "pass diag"); 46*5759b3d2Safresh1 $cap->diag("pass diag1"); 47*5759b3d2Safresh1 $cap->diag("pass diag2");', 48*5759b3d2Safresh1 { 49*5759b3d2Safresh1 name => "pass diag", 50*5759b3d2Safresh1 ok => 1, 51*5759b3d2Safresh1 actual_ok => 1, 52*5759b3d2Safresh1 reason => "", 53*5759b3d2Safresh1 type => "", 54*5759b3d2Safresh1 diag => "pass diag1\npass diag2", 55*5759b3d2Safresh1 depth => 0, 56*5759b3d2Safresh1 }, 57*5759b3d2Safresh1 ], 58*5759b3d2Safresh1 [ 59*5759b3d2Safresh1 'fail', 60*5759b3d2Safresh1 '$cap->ok(0, "fail"); 61*5759b3d2Safresh1 $cap->diag("fail diag");', 62*5759b3d2Safresh1 { 63*5759b3d2Safresh1 name => "fail", 64*5759b3d2Safresh1 ok => 0, 65*5759b3d2Safresh1 actual_ok => 0, 66*5759b3d2Safresh1 reason => "", 67*5759b3d2Safresh1 type => "", 68*5759b3d2Safresh1 diag => "fail diag\n", 69*5759b3d2Safresh1 depth => 0, 70*5759b3d2Safresh1 }, 71*5759b3d2Safresh1 ], 72*5759b3d2Safresh1 [ 73*5759b3d2Safresh1 'skip', 74*5759b3d2Safresh1 '$cap->skip("just because");', 75*5759b3d2Safresh1 { 76*5759b3d2Safresh1 name => "", 77*5759b3d2Safresh1 ok => 1, 78*5759b3d2Safresh1 actual_ok => 1, 79*5759b3d2Safresh1 reason => "just because", 80*5759b3d2Safresh1 type => "skip", 81*5759b3d2Safresh1 diag => "", 82*5759b3d2Safresh1 depth => 0, 83*5759b3d2Safresh1 }, 84*5759b3d2Safresh1 ], 85*5759b3d2Safresh1 [ 86*5759b3d2Safresh1 'todo_skip', 87*5759b3d2Safresh1 '$cap->todo_skip("why not");', 88*5759b3d2Safresh1 { 89*5759b3d2Safresh1 name => "", 90*5759b3d2Safresh1 ok => 1, 91*5759b3d2Safresh1 actual_ok => 0, 92*5759b3d2Safresh1 reason => "why not", 93*5759b3d2Safresh1 type => "todo_skip", 94*5759b3d2Safresh1 diag => "", 95*5759b3d2Safresh1 depth => 0, 96*5759b3d2Safresh1 }, 97*5759b3d2Safresh1 ], 98*5759b3d2Safresh1 [ 99*5759b3d2Safresh1 'pass diag qr', 100*5759b3d2Safresh1 '$cap->ok(1, "pass diag qr"); 101*5759b3d2Safresh1 $cap->diag("pass diag qr");', 102*5759b3d2Safresh1 { 103*5759b3d2Safresh1 name => "pass diag qr", 104*5759b3d2Safresh1 ok => 1, 105*5759b3d2Safresh1 actual_ok => 1, 106*5759b3d2Safresh1 reason => "", 107*5759b3d2Safresh1 type => "", 108*5759b3d2Safresh1 diag => qr/pass diag qr/, 109*5759b3d2Safresh1 depth => 0, 110*5759b3d2Safresh1 }, 111*5759b3d2Safresh1 ], 112*5759b3d2Safresh1 [ 113*5759b3d2Safresh1 'fail diag qr', 114*5759b3d2Safresh1 '$cap->ok(0, "fail diag qr"); 115*5759b3d2Safresh1 $cap->diag("fail diag qr");', 116*5759b3d2Safresh1 { 117*5759b3d2Safresh1 name => "fail diag qr", 118*5759b3d2Safresh1 ok => 0, 119*5759b3d2Safresh1 actual_ok => 0, 120*5759b3d2Safresh1 reason => "", 121*5759b3d2Safresh1 type => "", 122*5759b3d2Safresh1 diag => qr/fail diag qr/, 123*5759b3d2Safresh1 depth => 0, 124*5759b3d2Safresh1 }, 125*5759b3d2Safresh1 ], 126*5759b3d2Safresh1); 127*5759b3d2Safresh1 128*5759b3d2Safresh1my $big_code = ""; 129*5759b3d2Safresh1my @big_expect; 130*5759b3d2Safresh1 131*5759b3d2Safresh1foreach my $test (@tests) 132*5759b3d2Safresh1{ 133*5759b3d2Safresh1 my ($name, $code, $expect) = @$test; 134*5759b3d2Safresh1 135*5759b3d2Safresh1 $big_code .= "$code\n"; 136*5759b3d2Safresh1 push(@big_expect, $expect); 137*5759b3d2Safresh1 138*5759b3d2Safresh1 my $test_sub = eval "sub {$code}"; 139*5759b3d2Safresh1 140*5759b3d2Safresh1 check_test($test_sub, $expect, $name); 141*5759b3d2Safresh1} 142*5759b3d2Safresh1 143*5759b3d2Safresh1my $big_test_sub = eval "sub {$big_code}"; 144*5759b3d2Safresh1 145*5759b3d2Safresh1check_tests($big_test_sub, \@big_expect, "run all"); 146