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