summaryrefslogtreecommitdiff
path: root/cpan/Test-Simple/t/check_tests.t
blob: ec88e2d48cc0ad41d68d80dd8bbdcd4f66cfcab8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
use strict;

use Test::Tester;

use Data::Dumper qw(Dumper);

my $test = Test::Builder->new;
$test->plan(tests => 105);

my $cap;

$cap = Test::Tester->capture;

my @tests = (
	[
		'pass',
		'$cap->ok(1, "pass");',
		{
			name => "pass",
			ok => 1,
			actual_ok => 1,
			reason => "",
			type => "",
			diag => "",
			depth => 0,
		},
	],
	[
		'pass diag',
		'$cap->ok(1, "pass diag");
		$cap->diag("pass diag1");
		$cap->diag("pass diag2");',
		{
			name => "pass diag",
			ok => 1,
			actual_ok => 1,
			reason => "",
			type => "",
			diag => "pass diag1\npass diag2\n",
			depth => 0,
		},
	],
	[
		'pass diag no \\n',
		'$cap->ok(1, "pass diag");
		$cap->diag("pass diag1");
		$cap->diag("pass diag2");',
		{
			name => "pass diag",
			ok => 1,
			actual_ok => 1,
			reason => "",
			type => "",
			diag => "pass diag1\npass diag2",
			depth => 0,
		},
	],
	[
		'fail',
		'$cap->ok(0, "fail");
		$cap->diag("fail diag");',
		{
			name => "fail",
			ok => 0,
			actual_ok => 0,
			reason => "",
			type => "",
			diag => "fail diag\n",
			depth => 0,
		},
	],
	[
		'skip',
		'$cap->skip("just because");',
		{
			name => "",
			ok => 1,
			actual_ok => 1,
			reason => "just because",
			type => "skip",
			diag => "",
			depth => 0,
		},
	],
	[
		'todo_skip',
		'$cap->todo_skip("why not");',
		{
			name => "",
			ok => 1,
			actual_ok => 0,
			reason => "why not",
			type => "todo_skip",
			diag => "",
			depth => 0,
		},
	],
);

my $big_code = "";
my @big_expect;

foreach my $test (@tests)
{
	my ($name, $code, $expect) = @$test;

	$big_code .= "$code\n";
	push(@big_expect, $expect);

	my $test_sub = eval "sub {$code}";

	check_test($test_sub, $expect, $name);
}

my $big_test_sub = eval "sub {$big_code}";

check_tests($big_test_sub, \@big_expect, "run all");