Correct detection of absent modules. Based on
[p5sagit/p5-mst-13.2.git] / ext / Devel / PPPort / t / test.t
CommitLineData
a06d4b7f 1BEGIN {
2 chdir 't' if -d 't';
3 @INC = '../lib' if -d '../lib';
2d423903 4 require Config;
98641f60 5 if (($Config::Config{'extensions'} !~ m!\bDevel/PPPort\b!) ){
2d423903 6 print "1..0 # Skip -- Perl configured without Devel::PPPort module\n";
7 exit 0;
8 }
a06d4b7f 9}
44284200 10
11use Devel::PPPort;
44284200 12use strict;
13
14print "1..17\n";
15
44284200 16my $total = 0;
17my $good = 0;
18
19my $test = 0;
20sub ok {
21 my ($name, $test_sub) = @_;
22 my $line = (caller)[2];
23 my $value;
24
25 eval { $value = &{ $test_sub }() } ;
26
27 ++ $test ;
28
29 if ($@) {
30 printf "not ok $test # Testing '$name', line $line $@\n";
31 }
32 elsif ($value != 1){
33 printf "not ok $test # Testing '$name', line $line, value != 1 ($value)\n";
34 }
35 else {
36 print "ok $test\n";
37 }
38
39}
40
41ok "Static newCONSTSUB()",
42 sub { Devel::PPPort::test1(); Devel::PPPort::test_value_1() == 1} ;
43
44ok "Global newCONSTSUB()",
45 sub { Devel::PPPort::test2(); Devel::PPPort::test_value_2() == 2} ;
46
47ok "Extern newCONSTSUB()",
48 sub { Devel::PPPort::test3(); Devel::PPPort::test_value_3() == 3} ;
49
50ok "newRV_inc()", sub { Devel::PPPort::test4()} ;
51
52ok "newRV_noinc()", sub { Devel::PPPort::test5()} ;
53
54ok "PL_sv_undef", sub { not defined Devel::PPPort::test6()} ;
55
56ok "PL_sv_yes", sub { Devel::PPPort::test7()} ;
57
58ok "PL_sv_no", sub { !Devel::PPPort::test8()} ;
59
60ok "PL_na", sub { Devel::PPPort::test9("abcd") == 4} ;
61
62ok "boolSV 1", sub { Devel::PPPort::test10(1) } ;
63
64ok "boolSV 0", sub { ! Devel::PPPort::test10(0) } ;
65
66ok "newSVpvn", sub { Devel::PPPort::test11("abcde", 3) eq "abc" } ;
67
68ok "DEFSV", sub { $_ = "Fred"; Devel::PPPort::test12() eq "Fred" } ;
69
70ok "ERRSV", sub { eval { 1; }; ! Devel::PPPort::test13() };
71
72ok "ERRSV", sub { eval { fred() }; Devel::PPPort::test13() };
73
74ok "CXT 1", sub { Devel::PPPort::test14()} ;
75
76ok "CXT 2", sub { Devel::PPPort::test15()} ;
77
78__END__
79# TODO
80
81PERL_VERSION
82PERL_BCDVERSION
83
84PL_stdingv
85PL_hints
86PL_curcop
87PL_curstash
88PL_copline
89PL_Sv
90PL_compiling
91PL_dirty
92
93PTR2IV
94INT2PTR
95
96dTHR
97gv_stashpvn
98NOOP
99SAVE_DEFSV
100PERL_UNUSED_DECL
101dNOOP
e1fd986f 102
e78280ee 103call_argv
104call_method
105call_pv
106call_sv
107
e1fd986f 108get_cv
109get_av
110get_hv
111get_sv
7dcda430 112
113grok_hex
114grok_oct
115grok_bin
5af89305 116
117grok_number
118grok_numeric_radix