Return of the IVUV-preservation, now seems to be happy even
[p5sagit/p5-mst-13.2.git] / t / lib / peek.t
index 0b62802..288d3bd 100644 (file)
@@ -2,7 +2,7 @@
 
 BEGIN {
     chdir 't' if -d 't';
-    unshift @INC, '../lib';
+    @INC = '../lib';
     require Config; import Config;
     if ($Config{'extensions'} !~ /\bPeek\b/) {
         print "1..0 # Skip: Devel::Peek was not built\n";
@@ -15,19 +15,22 @@ use Devel::Peek;
 print "1..17\n";
 
 our $DEBUG = 0;
+open(SAVERR, ">&STDERR") or die "Can't dup STDERR: $!";
 
 sub do_test {
     my $pattern = pop;
-    if (open(STDERR,">peek$$")) {
+    if (open(OUT,">peek$$")) {
+       open(STDERR, ">&OUT") or die "Can't dup OUT: $!";
        Dump($_[1]);
-       close(STDERR);
+       open(STDERR, ">&SAVERR") or die "Can't restore STDERR: $!";
+       close(OUT);
        if (open(IN, "peek$$")) {
            local $/;
            $pattern =~ s/\$ADDR/0x[[:xdigit:]]+/g;
            print $pattern, "\n" if $DEBUG;
            my $dump = <IN>;
            print $dump, "\n"    if $DEBUG;
-           print "[$dump] vs [$pattern]\nnot " unless $dump =~ /$pattern/m;
+           print "[$dump] vs [$pattern]\nnot " unless $dump =~ /$pattern/ms;
            print "ok $_[0]\n";
            close(IN);
        } else {
@@ -41,7 +44,7 @@ sub do_test {
 our   $a;
 our   $b;
 my    $c;
-local $d;
+local $d = 0;
 
 do_test( 1,
        $a = "foo",
@@ -85,10 +88,10 @@ do_test( 5,
 
 do_test( 6,
         $c + $d,
-'SV = NV\\($ADDR\\) at $ADDR
+'SV = IV\\($ADDR\\) at $ADDR
   REFCNT = 1
-  FLAGS = \\(PADTMP,NOK,pNOK\\)
-  NV = 456');
+  FLAGS = \\(PADTMP,IOK,pIOK\\)
+  IV = 456');
 
 ($d = "789") += 0.1;
 
@@ -107,8 +110,8 @@ do_test( 8,
         0xabcd,
 'SV = IV\\($ADDR\\) at $ADDR
   REFCNT = 1
-  FLAGS = \\(.*IOK,READONLY,pIOK,IsUV\\)
-  UV = 43981');
+  FLAGS = \\(.*IOK,READONLY,pIOK\\)
+  IV = 43981');
 
 do_test( 9,
         undef,
@@ -151,12 +154,10 @@ do_test(11,
       FLAGS = \\(IOK,pIOK\\)
       IV = 123
     Elt No. 1
-    SV = PVNV\\($ADDR\\) at $ADDR
+    SV = IV\\($ADDR\\) at $ADDR
       REFCNT = 1
-      FLAGS = \\(IOK,NOK,pIOK,pNOK\\)
-      IV = 456
-      NV = 456
-      PV = 0');
+      FLAGS = \\(IOK,pIOK\\)
+      IV = 456');
 
 do_test(12,
        {$b=>$c},
@@ -177,12 +178,10 @@ do_test(12,
     RITER = -1
     EITER = 0x0
     Elt "123" HASH = $ADDR
-    SV = PVNV\\($ADDR\\) at $ADDR
+    SV = IV\\($ADDR\\) at $ADDR
       REFCNT = 1
-      FLAGS = \\(IOK,NOK,pIOK,pNOK\\)
-      IV = 456
-      NV = 456
-      PV = 0');
+      FLAGS = \\(IOK,pIOK\\)
+      IV = 456');
 
 do_test(13,
         sub(){@_},
@@ -201,10 +200,12 @@ do_test(13,
     ROOT = $ADDR
     XSUB = 0x0
     XSUBANY = 0
-    GVGV::GV = $ADDR\\t"main" :: "__ANON__"
-    FILE = ".+\\b(?i:peek\\.t)"
+    GVGV::GV = $ADDR\\t"main" :: "__ANON__[^"]*"
+    FILE = ".*\\b(?i:peek\\.t)"
     DEPTH = 0
-    FLAGS = 0x4
+(?:    MUTEXP = $ADDR
+    OWNER = $ADDR
+)?    FLAGS = 0x4
     PADLIST = $ADDR
     OUTSIDE = $ADDR \\(MAIN\\)');
 
@@ -215,7 +216,7 @@ do_test(14,
   FLAGS = \\(ROK\\)
   RV = $ADDR
   SV = PVCV\\($ADDR\\) at $ADDR
-    REFCNT = 3
+    REFCNT = (3|4)
     FLAGS = \\(\\)
     IV = 0
     NV = 0
@@ -225,9 +226,11 @@ do_test(14,
     XSUB = 0x0
     XSUBANY = 0
     GVGV::GV = $ADDR\\t"main" :: "do_test"
-    FILE = ".+\\b(?i:peek\\.t)"
+    FILE = ".*\\b(?i:peek\\.t)"
     DEPTH = 1
-    FLAGS = 0x0
+(?:    MUTEXP = $ADDR
+    OWNER = $ADDR
+)?    FLAGS = 0x0
     PADLIST = $ADDR
       \\d+\\. $ADDR \\("\\$pattern" \\d+-\\d+\\)
      \\d+\\. $ADDR \\(FAKE "\\$DEBUG" 0-\\d+\\)
@@ -275,15 +278,13 @@ do_test(17,
        *a,
 'SV = PVGV\\($ADDR\\) at $ADDR
   REFCNT = 5
-  FLAGS = \\(GMG,SMG,MULTI\\)
+  FLAGS = \\(GMG,SMG,MULTI(?:,IN_PAD)?\\)
   IV = 0
   NV = 0
   MAGIC = $ADDR
     MG_VIRTUAL = &PL_vtbl_glob
     MG_TYPE = \'\\*\'
     MG_OBJ = $ADDR
-    MG_LEN = 1
-    MG_PTR = $ADDR "a"
   NAME = "a"
   NAMELEN = 1
   GvSTASH = $ADDR\\t"main"
@@ -298,10 +299,10 @@ do_test(17,
     CVGEN = 0x0
     GPFLAGS = 0x0
     LINE = \\d+
-    FILE = ".+\\b(?i:peek\\.t)"
+    FILE = ".*\\b(?i:peek\\.t)"
     FLAGS = $ADDR
     EGV = $ADDR\\t"a"');
 
 END {
-  unlink("peek$$");
+  1 while unlink("peek$$");
 }