Commit | Line | Data |
84ac5fd7 |
1 | BEGIN { |
2 | chdir 't' if -d 't'; |
3 | @INC = '../lib'; |
4 | push @INC, "::lib:$MacPerl::Architecture:" if $^O eq 'MacOS'; |
5 | require Config; import Config; |
6 | if ($Config{'extensions'} !~ /\bXS\/APItest\b/) { |
7 | print "1..0 # Skip: XS::APItest was not built\n"; |
8 | exit 0; |
9 | } |
0932863f |
10 | $XS::APItest::WARNINGS_ON_BOOTSTRAP++; |
84ac5fd7 |
11 | } |
12 | |
13 | use strict; |
14 | use warnings; |
0932863f |
15 | use Test::More tests => 100; |
84ac5fd7 |
16 | |
17 | # Doing this longhand cut&paste makes it clear |
18 | # BEGIN and INIT are FIFO, CHECK and END are LIFO |
19 | BEGIN { |
0932863f |
20 | print "# First BEGIN\n"; |
84ac5fd7 |
21 | is($XS::APItest::BEGIN_called, undef, "BEGIN not yet called"); |
0932863f |
22 | is($XS::APItest::BEGIN_called_PP, undef, "BEGIN not yet called"); |
23 | is($XS::APItest::UNITCHECK_called, undef, "UNITCHECK not yet called"); |
24 | is($XS::APItest::UNITCHECK_called_PP, undef, "UNITCHECK not yet called"); |
84ac5fd7 |
25 | is($XS::APItest::CHECK_called, undef, "CHECK not yet called"); |
0932863f |
26 | is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called"); |
84ac5fd7 |
27 | is($XS::APItest::INIT_called, undef, "INIT not yet called"); |
0932863f |
28 | is($XS::APItest::INIT_called_PP, undef, "INIT not yet called"); |
84ac5fd7 |
29 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
30 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
31 | } |
32 | |
33 | CHECK { |
0932863f |
34 | print "# First CHECK\n"; |
84ac5fd7 |
35 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
36 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
37 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
38 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
39 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
40 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
41 | is($XS::APItest::INIT_called, undef, "INIT not yet called"); |
0932863f |
42 | is($XS::APItest::INIT_called_PP, undef, "INIT not yet called"); |
84ac5fd7 |
43 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
44 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
45 | } |
46 | |
47 | INIT { |
0932863f |
48 | print "# First INIT\n"; |
84ac5fd7 |
49 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
50 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
51 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
52 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
53 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
54 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
55 | is($XS::APItest::INIT_called, undef, "INIT not yet called"); |
0932863f |
56 | is($XS::APItest::INIT_called_PP, undef, "INIT not yet called"); |
84ac5fd7 |
57 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
58 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
59 | } |
60 | |
61 | END { |
0932863f |
62 | print "# First END\n"; |
84ac5fd7 |
63 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
64 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
65 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
66 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
67 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
68 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
69 | is($XS::APItest::INIT_called, 1, "INIT called"); |
0932863f |
70 | is($XS::APItest::INIT_called_PP, 1, "INIT called"); |
84ac5fd7 |
71 | is($XS::APItest::END_called, 1, "END called"); |
0932863f |
72 | is($XS::APItest::END_called_PP, 1, "END called"); |
84ac5fd7 |
73 | } |
74 | |
0932863f |
75 | print "# First body\n"; |
84ac5fd7 |
76 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
77 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
78 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
79 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
80 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
81 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
82 | is($XS::APItest::INIT_called, 1, "INIT called"); |
0932863f |
83 | is($XS::APItest::INIT_called_PP, 1, "INIT called"); |
84ac5fd7 |
84 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
85 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
86 | |
87 | use XS::APItest; |
88 | |
0932863f |
89 | print "# Second body\n"; |
84ac5fd7 |
90 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
91 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
92 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
93 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
94 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
95 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
96 | is($XS::APItest::INIT_called, 1, "INIT called"); |
0932863f |
97 | is($XS::APItest::INIT_called_PP, 1, "INIT called"); |
84ac5fd7 |
98 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
99 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
100 | |
101 | BEGIN { |
0932863f |
102 | print "# Second BEGIN\n"; |
84ac5fd7 |
103 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
104 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
105 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
106 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
107 | is($XS::APItest::CHECK_called, undef, "CHECK not yet called"); |
0932863f |
108 | is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called"); |
84ac5fd7 |
109 | is($XS::APItest::INIT_called, undef, "INIT not yet called"); |
0932863f |
110 | is($XS::APItest::INIT_called_PP, undef, "INIT not yet called"); |
84ac5fd7 |
111 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
112 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
113 | } |
114 | |
115 | CHECK { |
0932863f |
116 | print "# Second CHECK\n"; |
84ac5fd7 |
117 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
118 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
119 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK yet called"); |
120 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK yet called"); |
84ac5fd7 |
121 | is($XS::APItest::CHECK_called, undef, "CHECK not yet called"); |
0932863f |
122 | is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called"); |
84ac5fd7 |
123 | is($XS::APItest::INIT_called, undef, "INIT not yet called"); |
0932863f |
124 | is($XS::APItest::INIT_called_PP, undef, "INIT not yet called"); |
84ac5fd7 |
125 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
126 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
127 | } |
128 | |
129 | INIT { |
0932863f |
130 | print "# Second INIT\n"; |
84ac5fd7 |
131 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
132 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
133 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
134 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
135 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
136 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
137 | is($XS::APItest::INIT_called, 1, "INIT called"); |
0932863f |
138 | is($XS::APItest::INIT_called_PP, 1, "INIT called"); |
84ac5fd7 |
139 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
140 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
141 | } |
142 | |
143 | END { |
0932863f |
144 | print "# Second END\n"; |
84ac5fd7 |
145 | is($XS::APItest::BEGIN_called, 1, "BEGIN called"); |
0932863f |
146 | is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called"); |
147 | is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called"); |
148 | is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called"); |
84ac5fd7 |
149 | is($XS::APItest::CHECK_called, 1, "CHECK called"); |
0932863f |
150 | is($XS::APItest::CHECK_called_PP, 1, "CHECK called"); |
84ac5fd7 |
151 | is($XS::APItest::INIT_called, 1, "INIT called"); |
0932863f |
152 | is($XS::APItest::INIT_called_PP, 1, "INIT called"); |
84ac5fd7 |
153 | is($XS::APItest::END_called, undef, "END not yet called"); |
0932863f |
154 | is($XS::APItest::END_called_PP, undef, "END not yet called"); |
84ac5fd7 |
155 | } |