Some MSWin (ActivePerl) and AIX builds do not have Perl_sv_peek () exported
[Data-Peek.git] / t / 30_DDump-s.t
blob7da1bab2d544f9ff45b2edc49975c45192951664
1 #!/usr/bin/perl
3 use strict;
4 use warnings;
6 # I would like more tests, but contents change over every perl version
7 use Test::More tests => 5;
9 use Data::Peek;
11 $Data::Peek::has_perlio = $Data::Peek::has_perlio = 0;
13 ok (1, "DDump () NOT using PerlIO");
15 my @tests;
16 { local $/ = "==\n";
17 chomp (@tests = <DATA>);
20 # Determine what newlines this perl generates in sv_peek
21 my @nl = ("\\n") x 2;
23 my $var = "";
25 foreach my $test (@tests) {
26 my ($in, $out) = split m/\n--\n/ => $test;
27 $in eq "" and next;
28 SKIP: {
29 s/[\r\n]+/\n/g for $in, $out; # MSwin--
31 eval "\$var = $in;";
32 my $dump = DDump ($var);
34 if ($in =~ m/20ac/) {
35 if ($] < 5.008) {
36 skip "No UTF8 in ancient perl", 1;
38 else {
39 @nl = ($dump =~ m/PV = 0x\w+ "([^"]+)".*"([^"]+)"/);
40 diag "# This perl dumps \\n as (@nl)";
41 # Catch differences in \n
42 $dump =~ s/"ab\Q$nl[0]\E(.*?)"ab\Q$nl[1]\E/"ab\\n$1"ab\\n/;
46 $dump =~ s/\b0x[0-9a-f]+\b/0x****/g;
47 $dump =~ s/\b(REFCNT =) [0-9]{4,}/$1 -1/g;
49 $dump =~ s/\bLEN = [1-7]\b/LEN = 8/; # aligned at long long?
51 $dump =~ s/\bPADBUSY\b,?//g if $] < 5.010;
53 $dump =~ s/\bUV = /IV = /g if $] < 5.008;
54 $dump =~ s/,?\bIsUV\b//g if $] < 5.008;
56 $in =~ s/[\s\n]+/ /g;
57 is ($dump, $out, "DDump ($in)");
63 __END__
64 undef
66 SV = PV(0x****) at 0x****
67 REFCNT = 1
68 FLAGS = (PADMY)
69 PV = 0
73 SV = PVIV(0x****) at 0x****
74 REFCNT = 1
75 FLAGS = (PADMY,IOK,pIOK)
76 IV = 0
77 PV = 0
81 SV = PVIV(0x****) at 0x****
82 REFCNT = 1
83 FLAGS = (PADMY,IOK,pIOK)
84 IV = 1
85 PV = 0
89 SV = PVIV(0x****) at 0x****
90 REFCNT = 1
91 FLAGS = (PADMY,POK,pPOK)
92 IV = 1
93 PV = 0x**** ""\0
94 CUR = 0
95 LEN = 8