BEGIN { chdir 't' if -d 't'; @INC = '../lib' if -d '../lib'; } use Devel::PPPort; use strict; print "1..17\n"; my $total = 0; my $good = 0; my $test = 0; sub ok { my ($name, $test_sub) = @_; my $line = (caller)[2]; my $value; eval { $value = &{ $test_sub }() } ; ++ $test ; if ($@) { printf "not ok $test # Testing '$name', line $line $@\n"; } elsif ($value != 1){ printf "not ok $test # Testing '$name', line $line, value != 1 ($value)\n"; } else { print "ok $test\n"; } } ok "Static newCONSTSUB()", sub { Devel::PPPort::test1(); Devel::PPPort::test_value_1() == 1} ; ok "Global newCONSTSUB()", sub { Devel::PPPort::test2(); Devel::PPPort::test_value_2() == 2} ; ok "Extern newCONSTSUB()", sub { Devel::PPPort::test3(); Devel::PPPort::test_value_3() == 3} ; ok "newRV_inc()", sub { Devel::PPPort::test4()} ; ok "newRV_noinc()", sub { Devel::PPPort::test5()} ; ok "PL_sv_undef", sub { not defined Devel::PPPort::test6()} ; ok "PL_sv_yes", sub { Devel::PPPort::test7()} ; ok "PL_sv_no", sub { !Devel::PPPort::test8()} ; ok "PL_na", sub { Devel::PPPort::test9("abcd") == 4} ; ok "boolSV 1", sub { Devel::PPPort::test10(1) } ; ok "boolSV 0", sub { ! Devel::PPPort::test10(0) } ; ok "newSVpvn", sub { Devel::PPPort::test11("abcde", 3) eq "abc" } ; ok "DEFSV", sub { $_ = "Fred"; Devel::PPPort::test12() eq "Fred" } ; ok "ERRSV", sub { eval { 1; }; ! Devel::PPPort::test13() }; ok "ERRSV", sub { eval { fred() }; Devel::PPPort::test13() }; ok "CXT 1", sub { Devel::PPPort::test14()} ; ok "CXT 2", sub { Devel::PPPort::test15()} ; __END__ # TODO PERL_VERSION PERL_BCDVERSION PL_stdingv PL_hints PL_curcop PL_curstash PL_copline PL_Sv PL_compiling PL_dirty PTR2IV INT2PTR dTHR gv_stashpvn NOOP SAVE_DEFSV PERL_UNUSED_DECL dNOOP