bump version on modules changed since 5.13.0
[p5sagit/p5-mst-13.2.git] / ext / XS-APItest / t / svpeek.t
1 BEGIN {
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
10 use strict;
11 use warnings;
12
13 use Test::More tests => 50;
14
15 BEGIN { 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()',                  '$-');
30 like (DPeek ($!), qr'^PVMG\("',                 '$!');
31 if ($^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
40 like (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}');
90 like (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
98 1;