This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
APItest/t/utf8_warn_base.pl: Do test on all platforms
[perl5.git] / ext / XS-APItest / t / xs_special_subs.t
1 #!perl -w
2
3 BEGIN {
4     no warnings 'once';
5     $XS::APItest::WARNINGS_ON_BOOTSTRAP = 1;
6 }
7
8 use strict;
9 use warnings;
10 use Test::More tests => 100;
11
12 # Doing this longhand cut&paste makes it clear
13 # BEGIN and INIT are FIFO, CHECK and END are LIFO
14 BEGIN {
15     print "# First BEGIN\n";
16     is($XS::APItest::BEGIN_called, undef, "BEGIN not yet called");
17     is($XS::APItest::BEGIN_called_PP, undef, "BEGIN not yet called");
18     is($XS::APItest::UNITCHECK_called, undef, "UNITCHECK not yet called");
19     is($XS::APItest::UNITCHECK_called_PP, undef, "UNITCHECK not yet called");
20     is($XS::APItest::CHECK_called, undef, "CHECK not yet called");
21     is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called");
22     is($XS::APItest::INIT_called, undef, "INIT not yet called");
23     is($XS::APItest::INIT_called_PP, undef, "INIT not yet called");
24     is($XS::APItest::END_called, undef, "END not yet called");
25     is($XS::APItest::END_called_PP, undef, "END not yet called");
26 }
27
28 CHECK {
29     print "# First CHECK\n";
30     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
31     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
32     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
33     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
34     is($XS::APItest::CHECK_called, 1, "CHECK called");
35     is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
36     is($XS::APItest::INIT_called, undef, "INIT not yet called");
37     is($XS::APItest::INIT_called_PP, undef, "INIT not yet called");
38     is($XS::APItest::END_called, undef, "END not yet called");
39     is($XS::APItest::END_called_PP, undef, "END not yet called");
40 }
41
42 INIT {
43     print "# First INIT\n";
44     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
45     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
46     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
47     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
48     is($XS::APItest::CHECK_called, 1, "CHECK called");
49     is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
50     is($XS::APItest::INIT_called, undef, "INIT not yet called");
51     is($XS::APItest::INIT_called_PP, undef, "INIT not yet called");
52     is($XS::APItest::END_called, undef, "END not yet called");
53     is($XS::APItest::END_called_PP, undef, "END not yet called");
54 }
55
56 END {
57     print "# First END\n";
58     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
59     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
60     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
61     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
62     is($XS::APItest::CHECK_called, 1, "CHECK called");
63     is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
64     is($XS::APItest::INIT_called, 1, "INIT called");
65     is($XS::APItest::INIT_called_PP, 1, "INIT called");
66     is($XS::APItest::END_called, 1, "END called");
67     is($XS::APItest::END_called_PP, 1, "END called");
68 }
69
70 print "# First body\n";
71 is($XS::APItest::BEGIN_called, 1, "BEGIN called");
72 is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
73 is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
74 is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
75 is($XS::APItest::CHECK_called, 1, "CHECK called");
76 is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
77 is($XS::APItest::INIT_called, 1, "INIT called");
78 is($XS::APItest::INIT_called_PP, 1, "INIT called");
79 is($XS::APItest::END_called, undef, "END not yet called");
80 is($XS::APItest::END_called_PP, undef, "END not yet called");
81
82 use XS::APItest;
83
84 print "# Second body\n";
85 is($XS::APItest::BEGIN_called, 1, "BEGIN called");
86 is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
87 is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
88 is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
89 is($XS::APItest::CHECK_called, 1, "CHECK called");
90 is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
91 is($XS::APItest::INIT_called, 1, "INIT called");
92 is($XS::APItest::INIT_called_PP, 1, "INIT called");
93 is($XS::APItest::END_called, undef, "END not yet called");
94 is($XS::APItest::END_called_PP, undef, "END not yet called");
95
96 BEGIN {
97     print "# Second BEGIN\n";
98     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
99     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
100     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
101     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
102     is($XS::APItest::CHECK_called, undef, "CHECK not yet called");
103     is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called");
104     is($XS::APItest::INIT_called, undef, "INIT not yet called");
105     is($XS::APItest::INIT_called_PP, undef, "INIT not yet called");
106     is($XS::APItest::END_called, undef, "END not yet called");
107     is($XS::APItest::END_called_PP, undef, "END not yet called");
108 }
109
110 CHECK {
111     print "# Second CHECK\n";
112     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
113     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
114     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK yet called");
115     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK yet called");
116     is($XS::APItest::CHECK_called, undef, "CHECK not yet called");
117     is($XS::APItest::CHECK_called_PP, undef, "CHECK not yet called");
118     is($XS::APItest::INIT_called, undef, "INIT not yet called");
119     is($XS::APItest::INIT_called_PP, undef, "INIT not yet called");
120     is($XS::APItest::END_called, undef, "END not yet called");
121     is($XS::APItest::END_called_PP, undef, "END not yet called");
122 }
123
124 INIT {
125     print "# Second INIT\n";
126     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
127     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
128     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
129     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
130     is($XS::APItest::CHECK_called, 1, "CHECK called");
131     is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
132     is($XS::APItest::INIT_called, 1, "INIT called");
133     is($XS::APItest::INIT_called_PP, 1, "INIT called");
134     is($XS::APItest::END_called, undef, "END not yet called");
135     is($XS::APItest::END_called_PP, undef, "END not yet called");
136 }
137
138 END {
139     print "# Second END\n";
140     is($XS::APItest::BEGIN_called, 1, "BEGIN called");
141     is($XS::APItest::BEGIN_called_PP, 1, "BEGIN called");
142     is($XS::APItest::UNITCHECK_called, 1, "UNITCHECK called");
143     is($XS::APItest::UNITCHECK_called_PP, 1, "UNITCHECK called");
144     is($XS::APItest::CHECK_called, 1, "CHECK called");
145     is($XS::APItest::CHECK_called_PP, 1, "CHECK called");
146     is($XS::APItest::INIT_called, 1, "INIT called");
147     is($XS::APItest::INIT_called_PP, 1, "INIT called");
148     is($XS::APItest::END_called, undef, "END not yet called");
149     is($XS::APItest::END_called_PP, undef, "END not yet called");
150 }