1BEGIN { 2 push @INC, "::lib:$MacPerl::Architecture:" if $^O eq 'MacOS'; 3 require Config; import Config; 4 if ($Config{'extensions'} !~ /\bXS\/APItest\b/) { 5 print "1..0 # Skip: XS::APItest was not built\n"; 6 exit 0; 7 } 8} 9 10use strict; 11use warnings; 12 13use Test::More tests => 50; 14 15BEGIN { use_ok('XS::APItest') }; 16 17$| = 1; 18 19 is (DPeek ($/), 'PVMG("\n"\0)', '$/'); 20 is (DPeek ($\), 'PVMG()', '$\\'); 21 is (DPeek ($.), 'PVMG()', '$.'); 22 is (DPeek ($,), 'UNDEF', '$,'); 23 is (DPeek ($;), 'PV("\34"\0)', '$;'); 24 is (DPeek ($"), 'PV(" "\0)', '$"'); 25 is (DPeek ($:), 'PVMG(" \n-"\0)', '$:'); 26 is (DPeek ($~), 'PVMG()', '$~'); 27 is (DPeek ($^), 'PVMG()', '$^'); 28 is (DPeek ($=), 'PVMG()', '$='); 29 is (DPeek ($-), 'PVMG()', '$-'); 30like (DPeek ($!), qr'^PVMG\("', '$!'); 31if ($^O eq 'VMS') { 32 # VMS defines COMPLEX_STATUS and upgrades $? to PVLV 33 is (DPeek ($?), 'PVLV()', '$?'); 34} else { 35 is (DPeek ($?), 'PVMG()', '$?'); 36} 37 is (DPeek ($|), 'PVMG(1)', '$|'); 38 39 "abc" =~ m/(b)/; # Don't know why these magic vars have this content 40like (DPeek ($1), qr'^PVMG\("', ' $1'); 41 is (DPeek ($`), 'PVMG()', ' $`'); 42 is (DPeek ($&), 'PVMG()', ' $&'); 43 is (DPeek ($'), 'PVMG()', " \$'"); 44 45 is (DPeek (undef), 'SV_UNDEF', 'undef'); 46 is (DPeek (1), 'IV(1)', 'constant 1'); 47 is (DPeek (""), 'PV(""\0)', 'constant ""'); 48 is (DPeek (1.), 'NV(1)', 'constant 1.'); 49 is (DPeek (\1), '\IV(1)', 'constant \1'); 50 is (DPeek (\\1), '\\\IV(1)', 'constant \\\1'); 51 52 is (DPeek (\@ARGV), '\AV()', '\@ARGV'); 53 is (DPeek (\@INC), '\AV()', '\@INC'); 54 is (DPeek (\%INC), '\HV()', '\%INC'); 55 is (DPeek (*STDOUT), 'GV()', '*STDOUT'); 56 is (DPeek (sub {}), '\CV(__ANON__)', 'sub {}'); 57 58{ our ($VAR, @VAR, %VAR); 59 open VAR, "<", $^X or die "Can't open $^X: $!"; 60 sub VAR {} 61 format VAR = 62. 63 64 is (DPeek ( $VAR), 'UNDEF', ' $VAR undef'); 65 is (DPeek (\$VAR), '\UNDEF', '\$VAR undef'); 66 $VAR = 1; 67 is (DPeek ($VAR), 'IV(1)', ' $VAR 1'); 68 is (DPeek (\$VAR), '\IV(1)', '\$VAR 1'); 69 $VAR = ""; 70 is (DPeek ($VAR), 'PVIV(""\0)', ' $VAR ""'); 71 is (DPeek (\$VAR), '\PVIV(""\0)', '\$VAR ""'); 72 $VAR = "\xa8"; 73 is (DPeek ($VAR), 'PVIV("\250"\0)', ' $VAR "\xa8"'); 74 is (DPeek (\$VAR), '\PVIV("\250"\0)', '\$VAR "\xa8"'); 75 SKIP: { 76 $] <= 5.008001 and skip "UTF8 tests useless in this ancient perl version", 1; 77 $VAR = "a\x0a\x{20ac}"; 78 is (DPeek ($VAR), 'PVIV("a\n\342\202\254"\0) [UTF8 "a\n\x{20ac}"]', 79 ' $VAR "a\x0a\x{20ac}"'); 80 } 81 $VAR = sub { "VAR" }; 82 is (DPeek ($VAR), '\CV(__ANON__)', ' $VAR sub { "VAR" }'); 83 is (DPeek (\$VAR), '\\\CV(__ANON__)', '\$VAR sub { "VAR" }'); 84 $VAR = 0; 85 86 is (DPeek (\&VAR), '\CV(VAR)', '\&VAR'); 87 is (DPeek ( *VAR), 'GV()', ' *VAR'); 88 89 is (DPeek (*VAR{GLOB}), '\GV()', ' *VAR{GLOB}'); 90like (DPeek (*VAR{SCALAR}), qr'\\PV(IV|MG)\(0\)',' *VAR{SCALAR}'); 91 is (DPeek (*VAR{ARRAY}), '\AV()', ' *VAR{ARRAY}'); 92 is (DPeek (*VAR{HASH}), '\HV()', ' *VAR{HASH}'); 93 is (DPeek (*VAR{CODE}), '\CV(VAR)', ' *VAR{CODE}'); 94 is (DPeek (*VAR{IO}), '\IO()', ' *VAR{IO}'); 95 is (DPeek (*VAR{FORMAT}),$]<5.008?'SV_UNDEF':'\FM()',' *VAR{FORMAT}'); 96 } 97 981; 99