1 ################################################################################
3 # !!!!! Do NOT edit this file directly! !!!!!
5 # Edit mktests.PL and/or parts/inc/misc instead.
7 # This file was automatically generated from the definition files in the
8 # parts/inc/ subdirectory by mktests.PL. To learn more about how all this
9 # works, please read the F<HACKERS> file that came with this distribution.
11 ################################################################################
14 if ($ENV{'PERL_CORE'}) {
16 @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext';
17 require Config; import Config;
19 if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) {
20 print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
30 require 'testutil.pl' if $@;
43 package Devel::PPPort;
46 @ISA = qw(DynaLoader);
47 bootstrap Devel::PPPort;
51 use vars qw($my_sv @my_av %my_hv);
53 ok(&Devel::PPPort::boolSV(1));
54 ok(!&Devel::PPPort::boolSV(0));
57 ok(&Devel::PPPort::DEFSV(), "Fred");
58 ok(&Devel::PPPort::UNDERBAR(), "Fred");
60 if ("$]" >= 5.009002 && "$]" < 5.023 && "$]" < 5.023004) {
62 no warnings "deprecated";
63 no if $^V > v5.17.9, warnings => "experimental::lexical_topic";
65 ok(&Devel::PPPort::DEFSV(), "Fred");
66 ok(&Devel::PPPort::UNDERBAR(), "Tony");
74 my @r = &Devel::PPPort::DEFSV_modify();
81 ok(&Devel::PPPort::DEFSV(), "Fred");
84 ok(!&Devel::PPPort::ERRSV());
85 eval { cannot_call_this_one() };
86 ok(&Devel::PPPort::ERRSV());
88 ok(&Devel::PPPort::gv_stashpvn('Devel::PPPort', 0));
89 ok(!&Devel::PPPort::gv_stashpvn('does::not::exist', 0));
90 ok(&Devel::PPPort::gv_stashpvn('does::not::exist', 1));
93 ok(&Devel::PPPort::get_sv('my_sv', 0));
94 ok(!&Devel::PPPort::get_sv('not_my_sv', 0));
95 ok(&Devel::PPPort::get_sv('not_my_sv', 1));
98 ok(&Devel::PPPort::get_av('my_av', 0));
99 ok(!&Devel::PPPort::get_av('not_my_av', 0));
100 ok(&Devel::PPPort::get_av('not_my_av', 1));
103 ok(&Devel::PPPort::get_hv('my_hv', 0));
104 ok(!&Devel::PPPort::get_hv('not_my_hv', 0));
105 ok(&Devel::PPPort::get_hv('not_my_hv', 1));
108 ok(&Devel::PPPort::get_cv('my_cv', 0));
109 ok(!&Devel::PPPort::get_cv('not_my_cv', 0));
110 ok(&Devel::PPPort::get_cv('not_my_cv', 1));
112 ok(Devel::PPPort::dXSTARG(42), 43);
113 ok(Devel::PPPort::dAXMARK(4711), 4710);
115 ok(Devel::PPPort::prepush(), 42);
117 ok(join(':', Devel::PPPort::xsreturn(0)), 'test1');
118 ok(join(':', Devel::PPPort::xsreturn(1)), 'test1:test2');
120 ok(Devel::PPPort::PERL_ABS(42), 42);
121 ok(Devel::PPPort::PERL_ABS(-13), 13);
123 ok(Devel::PPPort::SVf(42), "$]" >= 5.004 ? '[42]' : '42');
124 ok(Devel::PPPort::SVf('abc'), "$]" >= 5.004 ? '[abc]' : 'abc');
126 ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo");
128 ok(&Devel::PPPort::ptrtests(), 63);
130 ok(&Devel::PPPort::OpSIBLING_tests(), 0);
132 if ("$]" >= 5.009000) {
134 ok(&Devel::PPPort::check_HeUTF8("hello"), "norm");
135 ok(&Devel::PPPort::check_HeUTF8("\N{U+263a}"), "utf8");
142 @r = &Devel::PPPort::check_c_array();
146 ok(!Devel::PPPort::SvRXOK(""));
147 ok(!Devel::PPPort::SvRXOK(bless [], "Regexp"));
150 skip 'no qr// objects in this perl', 0;
151 skip 'no qr// objects in this perl', 0;
153 my $qr = eval 'qr/./';
154 ok(Devel::PPPort::SvRXOK($qr));
155 ok(Devel::PPPort::SvRXOK(bless $qr, "Surprise"));
158 ok( Devel::PPPort::isBLANK(ord(" ")));
159 ok(! Devel::PPPort::isBLANK(ord("\n")));
161 ok( Devel::PPPort::isBLANK_A(ord("\t")));
162 ok(! Devel::PPPort::isBLANK_A(ord("\r")));
164 ok( Devel::PPPort::isBLANK_L1(ord("\t")));
165 ok(! Devel::PPPort::isBLANK_L1(ord("\r")));
167 ok( Devel::PPPort::isUPPER(ord("A")));
168 ok(! Devel::PPPort::isUPPER(ord("a")));
170 ok( Devel::PPPort::isUPPER_A(ord("Z")));
172 # One of these two is uppercase in EBCDIC; the other in Latin1, but neither are
174 ok(! Devel::PPPort::isUPPER_A(0xDC));
175 ok(! Devel::PPPort::isUPPER_A(0xFC));
177 ok(Devel::PPPort::isUPPER_L1(0xDC) || Devel::PPPort::isUPPER_L1(0xFC));
178 ok(! (Devel::PPPort::isUPPER_L1(0xDC) && Devel::PPPort::isUPPER_L1(0xFC)));
180 ok( Devel::PPPort::isLOWER(ord("b")));
181 ok(! Devel::PPPort::isLOWER(ord("B")));
183 ok( Devel::PPPort::isLOWER_A(ord("y")));
185 # One of these two is lowercase in EBCDIC; the other in Latin1, but neither are
187 ok(! Devel::PPPort::isLOWER_A(0xDC));
188 ok(! Devel::PPPort::isLOWER_A(0xFC));
190 ok(Devel::PPPort::isLOWER_L1(0xDC) || Devel::PPPort::isLOWER_L1(0xFC));
191 ok(! Devel::PPPort::isLOWER_L1(0xDC) && Devel::PPPort::isLOWER_L1(0xFC));
193 ok( Devel::PPPort::isALPHA(ord("C")));
194 ok(! Devel::PPPort::isALPHA(ord("1")));
196 ok( Devel::PPPort::isALPHA_A(ord("x")));
197 ok(! Devel::PPPort::isALPHA_A(0xDC));
199 ok( Devel::PPPort::isALPHA_L1(ord("y")));
200 ok( Devel::PPPort::isALPHA_L1(0xDC));
201 ok(! Devel::PPPort::isALPHA_L1(0xB6));
203 ok( Devel::PPPort::isWORDCHAR(ord("_")));
204 ok(! Devel::PPPort::isWORDCHAR(ord("@")));
206 ok( Devel::PPPort::isWORDCHAR_A(ord("2")));
207 ok(! Devel::PPPort::isWORDCHAR_A(0xFC));
209 ok( Devel::PPPort::isWORDCHAR_L1(ord("2")));
210 ok( Devel::PPPort::isWORDCHAR_L1(0xFC));
211 ok(! Devel::PPPort::isWORDCHAR_L1(0xB6));
213 ok( Devel::PPPort::isALPHANUMERIC(ord("4")));
214 ok(! Devel::PPPort::isALPHANUMERIC(ord("_")));
216 ok( Devel::PPPort::isALPHANUMERIC_A(ord("l")));
217 ok(! Devel::PPPort::isALPHANUMERIC_A(0xDC));
219 ok( Devel::PPPort::isALPHANUMERIC_L1(ord("l")));
220 ok( Devel::PPPort::isALPHANUMERIC_L1(0xDC));
221 ok(! Devel::PPPort::isALPHANUMERIC_L1(0xB6));
223 ok( Devel::PPPort::isALNUM(ord("c")));
224 ok(! Devel::PPPort::isALNUM(ord("}")));
226 ok( Devel::PPPort::isALNUM_A(ord("5")));
227 ok(! Devel::PPPort::isALNUM_A(0xFC));
229 ok( Devel::PPPort::isALNUMC_L1(ord("5")));
230 ok( Devel::PPPort::isALNUMC_L1(0xFC));
231 ok(! Devel::PPPort::isALNUMC_L1(0xB6));
233 ok( Devel::PPPort::isDIGIT(ord("6")));
234 ok(! Devel::PPPort::isDIGIT(ord("_")));
236 ok( Devel::PPPort::isDIGIT_A(ord("7")));
237 ok(! Devel::PPPort::isDIGIT_A(0xDC));
239 ok( Devel::PPPort::isDIGIT_L1(ord("5")));
240 ok(! Devel::PPPort::isDIGIT_L1(0xDC));
242 ok( Devel::PPPort::isOCTAL(ord("7")));
243 ok(! Devel::PPPort::isOCTAL(ord("8")));
245 ok( Devel::PPPort::isOCTAL_A(ord("0")));
246 ok(! Devel::PPPort::isOCTAL_A(ord("9")));
248 ok( Devel::PPPort::isOCTAL_L1(ord("2")));
249 ok(! Devel::PPPort::isOCTAL_L1(ord("8")));
251 ok( Devel::PPPort::isIDFIRST(ord("D")));
252 ok(! Devel::PPPort::isIDFIRST(ord("1")));
254 ok( Devel::PPPort::isIDFIRST_A(ord("_")));
255 ok(! Devel::PPPort::isIDFIRST_A(0xFC));
257 ok( Devel::PPPort::isIDFIRST_L1(ord("_")));
258 ok( Devel::PPPort::isIDFIRST_L1(0xFC));
259 ok(! Devel::PPPort::isIDFIRST_L1(0xB6));
261 ok( Devel::PPPort::isIDCONT(ord("e")));
262 ok(! Devel::PPPort::isIDCONT(ord("@")));
264 ok( Devel::PPPort::isIDCONT_A(ord("2")));
265 ok(! Devel::PPPort::isIDCONT_A(0xDC));
267 ok( Devel::PPPort::isIDCONT_L1(ord("4")));
268 ok( Devel::PPPort::isIDCONT_L1(0xDC));
269 ok(! Devel::PPPort::isIDCONT_L1(0xB6));
271 ok( Devel::PPPort::isSPACE(ord(" ")));
272 ok(! Devel::PPPort::isSPACE(ord("_")));
274 ok( Devel::PPPort::isSPACE_A(ord("\cK")));
275 ok(! Devel::PPPort::isSPACE_A(ord("F")));
277 ok( Devel::PPPort::isSPACE_L1(ord("\cK")));
278 ok(! Devel::PPPort::isSPACE_L1(ord("g")));
280 # This stresses the edge for ASCII machines, but happens to work on EBCDIC as
282 ok( Devel::PPPort::isASCII(0x7F));
283 ok(! Devel::PPPort::isASCII(0x80));
285 ok( Devel::PPPort::isASCII_A(ord("9")));
286 ok( Devel::PPPort::isASCII_L1(ord("9")));
288 # B6 is the PARAGRAPH SIGN in ASCII and EBCDIC
289 ok(! Devel::PPPort::isASCII_A(0xB6));
290 ok(! Devel::PPPort::isASCII_L1(0xB6));
292 ok( Devel::PPPort::isCNTRL(ord("\e")));
293 ok(! Devel::PPPort::isCNTRL(ord(" ")));
295 ok( Devel::PPPort::isCNTRL_A(ord("\a")));
296 ok(! Devel::PPPort::isCNTRL_A(0xB6));
298 ok( Devel::PPPort::isCNTRL_L1(ord("\a")));
299 ok( Devel::PPPort::isCNTRL_L1(ord(" ") - 1));
300 ok(! Devel::PPPort::isCNTRL_L1(0xB6));
301 if (ord('A') == 65) {
302 ok(Devel::PPPort::isCNTRL_L1(0x80));
304 elsif (ord('^') == 106) {
305 ok(Devel::PPPort::isCNTRL_L1(0x5F));
308 ok(Devel::PPPort::isCNTRL_L1(0xFF));
311 ok( Devel::PPPort::isPRINT(ord(" ")));
312 ok(! Devel::PPPort::isPRINT(ord("\n")));
314 ok( Devel::PPPort::isPRINT_A(ord("G")));
315 ok(! Devel::PPPort::isPRINT_A(0xB6));
317 ok( Devel::PPPort::isPRINT_L1(ord("~")));
318 ok( Devel::PPPort::isPRINT_L1(0xB6));
319 ok(! Devel::PPPort::isPRINT_L1(ord("\r")));
321 ok( Devel::PPPort::isGRAPH(ord("h")));
322 ok(! Devel::PPPort::isGRAPH(ord(" ")));
324 ok( Devel::PPPort::isGRAPH_A(ord("i")));
325 ok(! Devel::PPPort::isGRAPH_A(0xB6));
327 ok( Devel::PPPort::isGRAPH_L1(ord("j")));
328 ok( Devel::PPPort::isGRAPH_L1(0xB6));
329 ok(! Devel::PPPort::isGRAPH_L1(4));
331 ok( Devel::PPPort::isPUNCT(ord("#")));
332 ok(! Devel::PPPort::isPUNCT(ord(" ")));
334 ok( Devel::PPPort::isPUNCT_A(ord("*")));
335 ok(! Devel::PPPort::isPUNCT_A(0xB6));
337 ok( Devel::PPPort::isPUNCT_L1(ord("+")));
338 ok( Devel::PPPort::isPUNCT_L1(0xB6));
340 ok( Devel::PPPort::isXDIGIT(ord("A")));
341 ok(! Devel::PPPort::isXDIGIT(ord("_")));
343 ok( Devel::PPPort::isXDIGIT_A(ord("9")));
344 ok(! Devel::PPPort::isXDIGIT_A(0xDC));
346 ok( Devel::PPPort::isXDIGIT_L1(ord("9")));
347 ok(! Devel::PPPort::isXDIGIT_L1(0xFF));
349 ok( Devel::PPPort::isPSXSPC(ord(" ")));
350 ok(! Devel::PPPort::isPSXSPC(ord("k")));
352 ok( Devel::PPPort::isPSXSPC_A(ord("\cK")));
353 ok(! Devel::PPPort::isPSXSPC_A(0xFC));
355 ok( Devel::PPPort::isPSXSPC_L1(ord("\cK")));
356 ok(! Devel::PPPort::isPSXSPC_L1(0xFC));
358 ok(&Devel::PPPort::av_top_index([1,2,3]), 2);
359 ok(&Devel::PPPort::av_tindex([1,2,3,4]), 3);