use Devel::Peek;
-print "1..18\n";
+print "1..19\n";
our $DEBUG = 0;
open(SAVERR, ">&STDERR") or die "Can't dup STDERR: $!";
if (open(IN, "peek$$")) {
local $/;
$pattern =~ s/\$ADDR/0x[[:xdigit:]]+/g;
+ $pattern =~ s/\$FLOAT/(?:\\d*\\.\\d+(?:e[-+]\\d+)?|\\d+)/g;
print $pattern, "\n" if $DEBUG;
my $dump = <IN>;
print $dump, "\n" if $DEBUG;
FLAGS = \\(POK,pPOK\\)
PV = $ADDR "foo"\\\0
CUR = 3
- LEN = 4'
+ LEN = \\d+'
);
do_test( 2,
FLAGS = \\(.*POK,READONLY,pPOK\\)
PV = $ADDR "bar"\\\0
CUR = 3
- LEN = 4');
+ LEN = \\d+');
do_test( 3,
$b = 123,
NV = 789\\.(?:1(?:000+\d+)?|0999+\d+)
PV = $ADDR "789"\\\0
CUR = 3
- LEN = 4');
+ LEN = \\d+');
do_test( 8,
0xabcd,
FLAGS = \\(POK,pPOK\\)
PV = $ADDR "foo"\\\0
CUR = 3
- LEN = 4');
+ LEN = \\d+');
my $c_pattern;
if ($type eq 'N') {
REFCNT = 2
FLAGS = \\(SHAREKEYS\\)
IV = 1
- NV = 0
+ NV = $FLOAT
ARRAY = $ADDR \\(0:7, 1:1\\)
hash quality = 100.0%
KEYS = 1
FLAGS = $ADDR
EGV = $ADDR\\t"a"');
+if (ord('A') == 193) {
+do_test(18,
+ chr(256).chr(0).chr(512),
+'SV = PV\\($ADDR\\) at $ADDR
+ REFCNT = 1
+ FLAGS = \\((?:PADBUSY,PADTMP,)?POK,READONLY,pPOK,UTF8\\)
+ PV = $ADDR "\\\214\\\101\\\0\\\235\\\101"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\]
+ CUR = 5
+ LEN = \\d+');
+} else {
do_test(18,
chr(256).chr(0).chr(512),
'SV = PV\\($ADDR\\) at $ADDR
REFCNT = 1
- FLAGS = \\(PADBUSY,PADTMP,POK,READONLY,pPOK,UTF8\\)
- PV = $ADDR "\\\304\\\200\\\0\\\310\\\200"\\\0 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"
+ FLAGS = \\((?:PADBUSY,PADTMP,)?POK,READONLY,pPOK,UTF8\\)
+ PV = $ADDR "\\\304\\\200\\\0\\\310\\\200"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\]
CUR = 5
- LEN = 6');
+ LEN = \\d+');
+}
+
+if (ord('A') == 193) {
+do_test(19,
+ {chr(256)=>chr(512)},
+'SV = RV\\($ADDR\\) at $ADDR
+ REFCNT = 1
+ FLAGS = \\(ROK\\)
+ RV = $ADDR
+ SV = PVHV\\($ADDR\\) at $ADDR
+ REFCNT = 2
+ FLAGS = \\(SHAREKEYS,HASKFLAGS\\)
+ UV = 1
+ NV = $FLOAT
+ ARRAY = $ADDR \\(0:7, 1:1\\)
+ hash quality = 100.0%
+ KEYS = 1
+ FILL = 1
+ MAX = 7
+ RITER = -1
+ EITER = $ADDR
+ Elt "\\\214\\\101" \[UTF8 "\\\x\{100\}"\] HASH = $ADDR
+ SV = PV\\($ADDR\\) at $ADDR
+ REFCNT = 1
+ FLAGS = \\(POK,pPOK,UTF8\\)
+ PV = $ADDR "\\\235\\\101"\\\0 \[UTF8 "\\\x\{200\}"\]
+ CUR = 2
+ LEN = \\d+');
+} else {
+do_test(19,
+ {chr(256)=>chr(512)},
+'SV = RV\\($ADDR\\) at $ADDR
+ REFCNT = 1
+ FLAGS = \\(ROK\\)
+ RV = $ADDR
+ SV = PVHV\\($ADDR\\) at $ADDR
+ REFCNT = 2
+ FLAGS = \\(SHAREKEYS,HASKFLAGS\\)
+ UV = 1
+ NV = 0
+ ARRAY = $ADDR \\(0:7, 1:1\\)
+ hash quality = 100.0%
+ KEYS = 1
+ FILL = 1
+ MAX = 7
+ RITER = -1
+ EITER = $ADDR
+ Elt "\\\304\\\200" \[UTF8 "\\\x\{100\}"\] HASH = $ADDR
+ SV = PV\\($ADDR\\) at $ADDR
+ REFCNT = 1
+ FLAGS = \\(POK,pPOK,UTF8\\)
+ PV = $ADDR "\\\310\\\200"\\\0 \[UTF8 "\\\x\{200\}"\]
+ CUR = 2
+ LEN = \\d+');
+}
END {
1 while unlink("peek$$");