Commit | Line | Data |
adfe19db |
1 | ################################################################################ |
2 | # |
3 | # !!!!! Do NOT edit this file directly! !!!!! |
4 | # |
5 | # Edit mktests.PL and/or parts/inc/misc instead. |
6 | # |
cac25305 |
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. |
10 | # |
adfe19db |
11 | ################################################################################ |
12 | |
13 | BEGIN { |
14 | if ($ENV{'PERL_CORE'}) { |
15 | chdir 't' if -d 't'; |
0ff33da8 |
16 | @INC = ('../lib', '../ext/Devel-PPPort/t') if -d '../lib' && -d '../ext'; |
adfe19db |
17 | require Config; import Config; |
18 | use vars '%Config'; |
a745474a |
19 | if (" $Config{'extensions'} " !~ m[ Devel/PPPort ]) { |
adfe19db |
20 | print "1..0 # Skip -- Perl configured without Devel::PPPort module\n"; |
21 | exit 0; |
22 | } |
23 | } |
24 | else { |
25 | unshift @INC, 't'; |
26 | } |
27 | |
c07deaaf |
28 | sub load { |
29 | eval "use Test"; |
30 | require 'testutil.pl' if $@; |
adfe19db |
31 | } |
c07deaaf |
32 | |
51d6c659 |
33 | if (38) { |
c07deaaf |
34 | load(); |
51d6c659 |
35 | plan(tests => 38); |
adfe19db |
36 | } |
37 | } |
38 | |
39 | use Devel::PPPort; |
40 | use strict; |
41 | $^W = 1; |
42 | |
236afa0a |
43 | package Devel::PPPort; |
44 | use vars '@ISA'; |
45 | require DynaLoader; |
46 | @ISA = qw(DynaLoader); |
47 | bootstrap Devel::PPPort; |
48 | |
49 | package main; |
50 | |
adfe19db |
51 | use vars qw($my_sv @my_av %my_hv); |
52 | |
adfe19db |
53 | ok(&Devel::PPPort::boolSV(1)); |
54 | ok(!&Devel::PPPort::boolSV(0)); |
55 | |
56 | $_ = "Fred"; |
57 | ok(&Devel::PPPort::DEFSV(), "Fred"); |
58 | ok(&Devel::PPPort::UNDERBAR(), "Fred"); |
59 | |
0d0f8426 |
60 | if ($] >= 5.009002) { |
61 | eval q{ |
62 | my $_ = "Tony"; |
63 | ok(&Devel::PPPort::DEFSV(), "Fred"); |
64 | ok(&Devel::PPPort::UNDERBAR(), "Tony"); |
65 | }; |
66 | } |
67 | else { |
68 | ok(1); |
69 | ok(1); |
70 | } |
71 | |
51d6c659 |
72 | my @r = &Devel::PPPort::DEFSV_modify(); |
73 | |
74 | ok(@r == 3); |
75 | ok($r[0], 'Fred'); |
76 | ok($r[1], 'DEFSV'); |
77 | ok($r[2], 'Fred'); |
78 | |
79 | ok(&Devel::PPPort::DEFSV(), "Fred"); |
80 | |
adfe19db |
81 | eval { 1 }; |
82 | ok(!&Devel::PPPort::ERRSV()); |
83 | eval { cannot_call_this_one() }; |
84 | ok(&Devel::PPPort::ERRSV()); |
85 | |
86 | ok(&Devel::PPPort::gv_stashpvn('Devel::PPPort', 0)); |
87 | ok(!&Devel::PPPort::gv_stashpvn('does::not::exist', 0)); |
88 | ok(&Devel::PPPort::gv_stashpvn('does::not::exist', 1)); |
89 | |
90 | $my_sv = 1; |
91 | ok(&Devel::PPPort::get_sv('my_sv', 0)); |
92 | ok(!&Devel::PPPort::get_sv('not_my_sv', 0)); |
93 | ok(&Devel::PPPort::get_sv('not_my_sv', 1)); |
94 | |
95 | @my_av = (1); |
96 | ok(&Devel::PPPort::get_av('my_av', 0)); |
97 | ok(!&Devel::PPPort::get_av('not_my_av', 0)); |
98 | ok(&Devel::PPPort::get_av('not_my_av', 1)); |
99 | |
100 | %my_hv = (a=>1); |
101 | ok(&Devel::PPPort::get_hv('my_hv', 0)); |
102 | ok(!&Devel::PPPort::get_hv('not_my_hv', 0)); |
103 | ok(&Devel::PPPort::get_hv('not_my_hv', 1)); |
104 | |
105 | sub my_cv { 1 }; |
106 | ok(&Devel::PPPort::get_cv('my_cv', 0)); |
107 | ok(!&Devel::PPPort::get_cv('not_my_cv', 0)); |
108 | ok(&Devel::PPPort::get_cv('not_my_cv', 1)); |
109 | |
9132e1a3 |
110 | ok(Devel::PPPort::dXSTARG(42), 43); |
0d0f8426 |
111 | ok(Devel::PPPort::dAXMARK(4711), 4710); |
112 | |
113 | ok(Devel::PPPort::prepush(), 42); |
114 | |
115 | ok(join(':', Devel::PPPort::xsreturn(0)), 'test1'); |
116 | ok(join(':', Devel::PPPort::xsreturn(1)), 'test1:test2'); |
9132e1a3 |
117 | |
f2ab5a41 |
118 | ok(Devel::PPPort::PERL_ABS(42), 42); |
119 | ok(Devel::PPPort::PERL_ABS(-13), 13); |
120 | |
121 | ok(Devel::PPPort::SVf(42), $] >= 5.004 ? '[42]' : '42'); |
122 | ok(Devel::PPPort::SVf('abc'), $] >= 5.004 ? '[abc]' : 'abc'); |
123 | |
fd7af155 |
124 | ok(&Devel::PPPort::Perl_ppaddr_t("FOO"), "foo"); |
125 | |