X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=ext%2FDevel%2FPeek%2FPeek.t;h=77c468d252acaecfbca29109b4d69cb0942d2f38;hb=b5c19bd7c15bd02a18c3c2b80b6f602827ecdbcc;hp=1d51ce5d4fdc26e648bcbbc0a4de870fed425bbf;hpb=993318545d74a9d06ae4a37be84d1b19882b129d;p=p5sagit%2Fp5-mst-13.2.git diff --git a/ext/Devel/Peek/Peek.t b/ext/Devel/Peek/Peek.t index 1d51ce5..77c468d 100644 --- a/ext/Devel/Peek/Peek.t +++ b/ext/Devel/Peek/Peek.t @@ -12,7 +12,7 @@ BEGIN { use Devel::Peek; -print "1..21\n"; +print "1..22\n"; our $DEBUG = 0; open(SAVERR, ">&STDERR") or die "Can't dup STDERR: $!"; @@ -85,7 +85,7 @@ do_test( 5, $c = 456, 'SV = IV\\($ADDR\\) at $ADDR REFCNT = 1 - FLAGS = \\(PADBUSY,PADMY,IOK,pIOK\\) + FLAGS = \\(PADMY,IOK,pIOK\\) IV = 456'); # If perl is built with PERL_PRESERVE_IVUV then maths is done as integers @@ -206,7 +206,7 @@ do_test(13, RV = $ADDR SV = PVCV\\($ADDR\\) at $ADDR REFCNT = 2 - FLAGS = \\(PADBUSY,PADMY,POK,pPOK,ANON\\) + FLAGS = \\(PADMY,POK,pPOK,ANON,WEAKOUTSIDE\\) IV = 0 NV = 0 PROTOTYPE = "" @@ -220,7 +220,8 @@ do_test(13, DEPTH = 0 (?: MUTEXP = $ADDR OWNER = $ADDR -)? FLAGS = 0x4 +)? FLAGS = 0x404 + OUTSIDE_SEQ = \\d+ PADLIST = $ADDR PADNAME = $ADDR\\($ADDR\\) PAD = $ADDR\\($ADDR\\) OUTSIDE = $ADDR \\(MAIN\\)'); @@ -247,11 +248,12 @@ do_test(14, (?: MUTEXP = $ADDR OWNER = $ADDR )? FLAGS = 0x0 + OUTSIDE_SEQ = \\d+ PADLIST = $ADDR PADNAME = $ADDR\\($ADDR\\) PAD = $ADDR\\($ADDR\\) - \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$pattern" - \\d+\\. $ADDR<\\d+> FAKE \\(\\d+,\\d+\\) "\\$DEBUG" - \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$dump" + \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$pattern" + \\d+\\. $ADDR<\\d+> FAKE "\\$DEBUG" flags=0x0 index=0 + \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$dump" OUTSIDE = $ADDR \\(MAIN\\)'); do_test(15, @@ -262,7 +264,7 @@ do_test(15, RV = $ADDR SV = PVMG\\($ADDR\\) at $ADDR REFCNT = 1 - FLAGS = \\(OBJECT,RMG\\) + FLAGS = \\(OBJECT,SMG\\) IV = 0 NV = 0 PV = 0 @@ -325,7 +327,7 @@ do_test(18, chr(256).chr(0).chr(512), 'SV = PV\\($ADDR\\) at $ADDR REFCNT = 1 - FLAGS = \\((?:PADBUSY,PADTMP,)?POK,READONLY,pPOK,UTF8\\) + FLAGS = \\((?:PADTMP,)?POK,READONLY,pPOK,UTF8\\) PV = $ADDR "\\\214\\\101\\\0\\\235\\\101"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\] CUR = 5 LEN = \\d+'); @@ -334,7 +336,7 @@ do_test(18, chr(256).chr(0).chr(512), 'SV = PV\\($ADDR\\) at $ADDR REFCNT = 1 - FLAGS = \\((?:PADBUSY,PADTMP,)?POK,READONLY,pPOK,UTF8\\) + FLAGS = \\((?:PADTMP,)?POK,READONLY,pPOK,UTF8\\) PV = $ADDR "\\\304\\\200\\\0\\\310\\\200"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\] CUR = 5 LEN = \\d+'); @@ -400,7 +402,7 @@ do_test(20, $x, 'SV = PVMG\\($ADDR\\) at $ADDR REFCNT = 1 - FLAGS = \\(PADBUSY,PADMY,SMG,POK,pPOK\\) + FLAGS = \\(PADMY,SMG,POK,pPOK\\) IV = 0 NV = 0 PV = $ADDR ""\\\0 @@ -412,6 +414,11 @@ do_test(20, MG_FLAGS = 0x01 MINMATCH'); +# +# TAINTEDDIR is not set on: OS2, AMIGAOS, WIN32, MSDOS +# environment variables may be invisibly case-forced, hence the (?i:PATH) +# C is turned into an IV on VMS hence the (?:IV)? +# do_test(21, $ENV{PATH}=@ARGV, # scalar(@ARGV) is a handy known tainted value 'SV = PVMG\\($ADDR\\) at $ADDR @@ -425,10 +432,17 @@ do_test(21, MAGIC = $ADDR MG_VIRTUAL = &PL_vtbl_envelem MG_TYPE = PERL_MAGIC_envelem\\(e\\) - MG_FLAGS = 0x01 +(?: MG_FLAGS = 0x01 TAINTEDDIR - MG_LEN = 4 - MG_PTR = $ADDR "PATH" +)? MG_LEN = -?\d+ + MG_PTR = $ADDR (?:"(?i:PATH)"|=> HEf_SVKEY + SV = PV(?:IV)?\\($ADDR\\) at $ADDR + REFCNT = \d+ + FLAGS = \\(TEMP,POK,pPOK\\) +(?: IV = 0 +)? PV = $ADDR "(?i:PATH)"\\\0 + CUR = \d+ + LEN = \d+) MAGIC = $ADDR MG_VIRTUAL = &PL_vtbl_taint MG_TYPE = PERL_MAGIC_taint\\(t\\)'); @@ -436,3 +450,24 @@ do_test(21, END { 1 while unlink("peek$$"); } + +# blessed refs +do_test(22, + bless(\\undef, 'Foobar'), +'SV = RV\\($ADDR\\) at $ADDR + REFCNT = 1 + FLAGS = \\(ROK\\) + RV = $ADDR + SV = PVMG\\($ADDR\\) at $ADDR + REFCNT = 2 + FLAGS = \\(OBJECT,ROK\\) + IV = -?\d+ + NV = $FLOAT + RV = $ADDR + SV = NULL\\(0x0\\) at $ADDR + REFCNT = \d+ + FLAGS = \\(READONLY\\) + PV = $ADDR "" + CUR = 0 + LEN = 0 + STASH = $ADDR\s+"Foobar"');