This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Upgrade to Math::Complex 1.48 and Math::Trig 1.13
[perl5.git] / ext / Devel / Peek / t / Peek.t
CommitLineData
99331854 1#!./perl -T
9ec58fb7
JH
2
3BEGIN {
4 chdir 't' if -d 't';
20822f61 5 @INC = '../lib';
9ec58fb7 6 require Config; import Config;
e7ecf62c 7 if ($Config{'extensions'} !~ /\bDevel\/Peek\b/) {
9ec58fb7
JH
8 print "1..0 # Skip: Devel::Peek was not built\n";
9 exit 0;
10 }
11}
12
768fd157 13BEGIN { require "./test.pl"; }
e7ecf62c 14
9248c45a
JH
15use Devel::Peek;
16
c0a413d1 17plan(50);
9248c45a
JH
18
19our $DEBUG = 0;
277ddfaf 20open(SAVERR, ">&STDERR") or die "Can't dup STDERR: $!";
9248c45a
JH
21
22sub do_test {
23 my $pattern = pop;
277ddfaf
GS
24 if (open(OUT,">peek$$")) {
25 open(STDERR, ">&OUT") or die "Can't dup OUT: $!";
9248c45a 26 Dump($_[1]);
e9569a7a
GG
27 print STDERR "*****\n";
28 Dump($_[1]); # second dump to compare with the first to make sure nothing changed.
277ddfaf
GS
29 open(STDERR, ">&SAVERR") or die "Can't restore STDERR: $!";
30 close(OUT);
9248c45a
JH
31 if (open(IN, "peek$$")) {
32 local $/;
33 $pattern =~ s/\$ADDR/0x[[:xdigit:]]+/g;
8aacddc1 34 $pattern =~ s/\$FLOAT/(?:\\d*\\.\\d+(?:e[-+]\\d+)?|\\d+)/g;
fd0854ff 35 # handle DEBUG_LEAKING_SCALARS prefix
d94a5950 36 $pattern =~ s/^(\s*)(SV =.* at )/(?:$1ALLOCATED at .*?\n)?$1$2/mg;
bf53b3a5 37
d04ba589 38 $pattern =~ s/^ *\$XSUB *\n/
34913379 39 ($] < 5.009) ? " XSUB = 0x0\n XSUBANY = 0\n" : '';
bf53b3a5 40 /mge;
d04ba589
NC
41 $pattern =~ s/^ *\$ROOT *\n/
42 ($] < 5.009) ? " ROOT = 0x0\n" : '';
43 /mge;
c84c4652
NC
44 $pattern =~ s/^ *\$IVNV *\n/
45 ($] < 5.009) ? " IV = 0\n NV = 0\n" : '';
46 /mge;
2b631c93
NC
47 $pattern =~ s/\$RV/
48 ($] < 5.011) ? 'RV' : 'IV';
49 /mge;
c0a413d1
NC
50 $pattern =~ s/^ *\$NV *\n/
51 ($] < 5.011) ? " NV = 0\n" : '';
52 /mge;
98deaf8b
NC
53 $pattern =~ s/^ *\$SUBPROCESS *\n/
54 ($] < 5.009) ? " SUBPROCESS = 0\n" : '';
55 /mge;
56
d04ba589 57
9248c45a 58 print $pattern, "\n" if $DEBUG;
e9569a7a 59 my ($dump, $dump2) = split m/\*\*\*\*\*\n/, scalar <IN>;
9248c45a 60 print $dump, "\n" if $DEBUG;
e7ecf62c 61 like( $dump, qr/\A$pattern\Z/ms );
e9569a7a
GG
62
63 local $TODO = $dump2 =~ /OOK/ ? "The hash iterator used in dump.c sets the OOK flag" : undef;
64 is($dump2, $dump);
65
9248c45a 66 close(IN);
e9569a7a 67
59d8ce62 68 return $1;
9248c45a
JH
69 } else {
70 die "$0: failed to open peek$$: !\n";
71 }
72 } else {
73 die "$0: failed to create peek$$: $!\n";
74 }
75}
76
77our $a;
78our $b;
79my $c;
208edb77 80local $d = 0;
9248c45a 81
e7ecf62c
RGS
82END {
83 1 while unlink("peek$$");
84}
bf53b3a5 85
9248c45a
JH
86do_test( 1,
87 $a = "foo",
88'SV = PV\\($ADDR\\) at $ADDR
89 REFCNT = 1
90 FLAGS = \\(POK,pPOK\\)
91 PV = $ADDR "foo"\\\0
92 CUR = 3
1badabf5 93 LEN = \\d+'
9248c45a
JH
94 );
95
96do_test( 2,
97 "bar",
98'SV = PV\\($ADDR\\) at $ADDR
99 REFCNT = 1
7766e686 100 FLAGS = \\(.*POK,READONLY,pPOK\\)
9248c45a
JH
101 PV = $ADDR "bar"\\\0
102 CUR = 3
1badabf5 103 LEN = \\d+');
9248c45a
JH
104
105do_test( 3,
106 $b = 123,
107'SV = IV\\($ADDR\\) at $ADDR
108 REFCNT = 1
109 FLAGS = \\(IOK,pIOK\\)
110 IV = 123');
111
112do_test( 4,
113 456,
114'SV = IV\\($ADDR\\) at $ADDR
115 REFCNT = 1
7766e686 116 FLAGS = \\(.*IOK,READONLY,pIOK\\)
9248c45a
JH
117 IV = 456');
118
119do_test( 5,
120 $c = 456,
121'SV = IV\\($ADDR\\) at $ADDR
122 REFCNT = 1
235cc2e3 123 FLAGS = \\(PADMY,IOK,pIOK\\)
9248c45a
JH
124 IV = 456');
125
59d8ce62
NC
126# If perl is built with PERL_PRESERVE_IVUV then maths is done as integers
127# where possible and this scalar will be an IV. If NO_PERL_PRESERVE_IVUV then
128# maths is done in floating point always, and this scalar will be an NV.
129# ([NI]) captures the type, referred to by \1 in this regexp and $type for
130# building subsequent regexps.
131my $type = do_test( 6,
9248c45a 132 $c + $d,
59d8ce62 133'SV = ([NI])V\\($ADDR\\) at $ADDR
9248c45a 134 REFCNT = 1
59d8ce62
NC
135 FLAGS = \\(PADTMP,\1OK,p\1OK\\)
136 \1V = 456');
9248c45a
JH
137
138($d = "789") += 0.1;
139
140do_test( 7,
141 $d,
142'SV = PVNV\\($ADDR\\) at $ADDR
143 REFCNT = 1
144 FLAGS = \\(NOK,pNOK\\)
78d00c47 145 IV = \d+
ac634a9a 146 NV = 789\\.(?:1(?:000+\d+)?|0999+\d+)
9248c45a
JH
147 PV = $ADDR "789"\\\0
148 CUR = 3
1badabf5 149 LEN = \\d+');
9248c45a
JH
150
151do_test( 8,
152 0xabcd,
153'SV = IV\\($ADDR\\) at $ADDR
154 REFCNT = 1
28e5dec8
JH
155 FLAGS = \\(.*IOK,READONLY,pIOK\\)
156 IV = 43981');
9248c45a
JH
157
158do_test( 9,
159 undef,
160'SV = NULL\\(0x0\\) at $ADDR
161 REFCNT = 1
162 FLAGS = \\(\\)');
163
164do_test(10,
165 \$a,
4df7f6af 166'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
167 REFCNT = 1
168 FLAGS = \\(ROK\\)
169 RV = $ADDR
170 SV = PV\\($ADDR\\) at $ADDR
171 REFCNT = 2
172 FLAGS = \\(POK,pPOK\\)
173 PV = $ADDR "foo"\\\0
174 CUR = 3
1badabf5 175 LEN = \\d+');
9248c45a 176
59d8ce62
NC
177my $c_pattern;
178if ($type eq 'N') {
179 $c_pattern = '
180 SV = PVNV\\($ADDR\\) at $ADDR
181 REFCNT = 1
182 FLAGS = \\(IOK,NOK,pIOK,pNOK\\)
183 IV = 456
184 NV = 456
185 PV = 0';
186} else {
187 $c_pattern = '
188 SV = IV\\($ADDR\\) at $ADDR
189 REFCNT = 1
190 FLAGS = \\(IOK,pIOK\\)
191 IV = 456';
192}
9248c45a
JH
193do_test(11,
194 [$b,$c],
4df7f6af 195'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
196 REFCNT = 1
197 FLAGS = \\(ROK\\)
198 RV = $ADDR
199 SV = PVAV\\($ADDR\\) at $ADDR
78c72037 200 REFCNT = 1
9248c45a 201 FLAGS = \\(\\)
9248c45a
JH
202 ARRAY = $ADDR
203 FILL = 1
204 MAX = 1
205 ARYLEN = 0x0
206 FLAGS = \\(REAL\\)
207 Elt No. 0
208 SV = IV\\($ADDR\\) at $ADDR
209 REFCNT = 1
210 FLAGS = \\(IOK,pIOK\\)
211 IV = 123
59d8ce62 212 Elt No. 1' . $c_pattern);
9248c45a
JH
213
214do_test(12,
215 {$b=>$c},
4df7f6af 216'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
217 REFCNT = 1
218 FLAGS = \\(ROK\\)
219 RV = $ADDR
220 SV = PVHV\\($ADDR\\) at $ADDR
78c72037 221 REFCNT = 1
9248c45a 222 FLAGS = \\(SHAREKEYS\\)
9248c45a 223 ARRAY = $ADDR \\(0:7, 1:1\\)
b8fa94d8 224 hash quality = 100.0%
9248c45a
JH
225 KEYS = 1
226 FILL = 1
227 MAX = 7
228 RITER = -1
229 EITER = 0x0
59d8ce62 230 Elt "123" HASH = $ADDR' . $c_pattern);
9248c45a
JH
231
232do_test(13,
233 sub(){@_},
4df7f6af 234'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
235 REFCNT = 1
236 FLAGS = \\(ROK\\)
237 RV = $ADDR
238 SV = PVCV\\($ADDR\\) at $ADDR
239 REFCNT = 2
235cc2e3 240 FLAGS = \\(PADMY,POK,pPOK,ANON,WEAKOUTSIDE\\)
c84c4652 241 $IVNV
9248c45a
JH
242 PROTOTYPE = ""
243 COMP_STASH = $ADDR\\t"main"
244 START = $ADDR ===> \\d+
245 ROOT = $ADDR
d04ba589 246 $XSUB
208edb77 247 GVGV::GV = $ADDR\\t"main" :: "__ANON__[^"]*"
084d946d 248 FILE = ".*\\b(?i:peek\\.t)"
9248c45a 249 DEPTH = 0
9856a127 250(?: MUTEXP = $ADDR
208edb77 251 OWNER = $ADDR
5b4563c8 252)? FLAGS = 0x90
a3985cdc 253 OUTSIDE_SEQ = \\d+
9248c45a 254 PADLIST = $ADDR
dd2155a4 255 PADNAME = $ADDR\\($ADDR\\) PAD = $ADDR\\($ADDR\\)
9248c45a
JH
256 OUTSIDE = $ADDR \\(MAIN\\)');
257
258do_test(14,
259 \&do_test,
4df7f6af 260'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
261 REFCNT = 1
262 FLAGS = \\(ROK\\)
263 RV = $ADDR
264 SV = PVCV\\($ADDR\\) at $ADDR
9856a127 265 REFCNT = (3|4)
9248c45a 266 FLAGS = \\(\\)
c84c4652 267 $IVNV
9248c45a
JH
268 COMP_STASH = $ADDR\\t"main"
269 START = $ADDR ===> \\d+
270 ROOT = $ADDR
d04ba589 271 $XSUB
9248c45a 272 GVGV::GV = $ADDR\\t"main" :: "do_test"
084d946d 273 FILE = ".*\\b(?i:peek\\.t)"
9248c45a 274 DEPTH = 1
9856a127 275(?: MUTEXP = $ADDR
208edb77
MG
276 OWNER = $ADDR
277)? FLAGS = 0x0
a3985cdc 278 OUTSIDE_SEQ = \\d+
9248c45a 279 PADLIST = $ADDR
dd2155a4 280 PADNAME = $ADDR\\($ADDR\\) PAD = $ADDR\\($ADDR\\)
ee6cee0c 281 \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$pattern"
b5c19bd7 282 \\d+\\. $ADDR<\\d+> FAKE "\\$DEBUG" flags=0x0 index=0
ee6cee0c 283 \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$dump"
e9569a7a 284 \\d+\\. $ADDR<\\d+> \\(\\d+,\\d+\\) "\\$dump2"
9248c45a
JH
285 OUTSIDE = $ADDR \\(MAIN\\)');
286
3ce3ed55
NC
287if ($] >= 5.011) {
288do_test(15,
289 qr(tic),
290'SV = $RV\\($ADDR\\) at $ADDR
291 REFCNT = 1
292 FLAGS = \\(ROK\\)
293 RV = $ADDR
5c35adbb 294 SV = REGEXP\\($ADDR\\) at $ADDR
288b8c02 295 REFCNT = 2
0fc92fc6 296 FLAGS = \\(OBJECT,POK,pPOK\\)
3ce3ed55 297 IV = 0
f7c278bf
NC
298 PV = $ADDR "\\(\\?-xism:tic\\)"\\\0
299 CUR = 12
0fc92fc6
YO
300 LEN = \\d+
301 STASH = $ADDR\\t"Regexp"');
3ce3ed55 302} else {
9248c45a
JH
303do_test(15,
304 qr(tic),
4df7f6af 305'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
306 REFCNT = 1
307 FLAGS = \\(ROK\\)
308 RV = $ADDR
309 SV = PVMG\\($ADDR\\) at $ADDR
310 REFCNT = 1
faf82a0b 311 FLAGS = \\(OBJECT,SMG\\)
9248c45a
JH
312 IV = 0
313 NV = 0
314 PV = 0
315 MAGIC = $ADDR
316 MG_VIRTUAL = $ADDR
14befaf4 317 MG_TYPE = PERL_MAGIC_qr\(r\)
9248c45a 318 MG_OBJ = $ADDR
28d8d7f4
YO
319 PAT = "\(\?-xism:tic\)"
320 REFCNT = 2
9248c45a 321 STASH = $ADDR\\t"Regexp"');
3ce3ed55 322}
9248c45a
JH
323
324do_test(16,
325 (bless {}, "Tac"),
4df7f6af 326'SV = $RV\\($ADDR\\) at $ADDR
9248c45a
JH
327 REFCNT = 1
328 FLAGS = \\(ROK\\)
329 RV = $ADDR
330 SV = PVHV\\($ADDR\\) at $ADDR
78c72037 331 REFCNT = 1
9248c45a 332 FLAGS = \\(OBJECT,SHAREKEYS\\)
9248c45a
JH
333 STASH = $ADDR\\t"Tac"
334 ARRAY = 0x0
335 KEYS = 0
336 FILL = 0
337 MAX = 7
338 RITER = -1
339 EITER = 0x0');
340
341do_test(17,
342 *a,
343'SV = PVGV\\($ADDR\\) at $ADDR
344 REFCNT = 5
2e5b91de 345 FLAGS = \\(MULTI(?:,IN_PAD)?\\)
9248c45a
JH
346 NAME = "a"
347 NAMELEN = 1
348 GvSTASH = $ADDR\\t"main"
349 GP = $ADDR
350 SV = $ADDR
351 REFCNT = 1
352 IO = 0x0
353 FORM = 0x0
354 AV = 0x0
355 HV = 0x0
356 CV = 0x0
357 CVGEN = 0x0
9ec58fb7 358 LINE = \\d+
084d946d 359 FILE = ".*\\b(?i:peek\\.t)"
e39917cc 360 FLAGS = $ADDR
9248c45a
JH
361 EGV = $ADDR\\t"a"');
362
cdb2dd7b
JH
363if (ord('A') == 193) {
364do_test(18,
365 chr(256).chr(0).chr(512),
366'SV = PV\\($ADDR\\) at $ADDR
367 REFCNT = 1
235cc2e3 368 FLAGS = \\((?:PADTMP,)?POK,READONLY,pPOK,UTF8\\)
cdb2dd7b
JH
369 PV = $ADDR "\\\214\\\101\\\0\\\235\\\101"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\]
370 CUR = 5
1badabf5 371 LEN = \\d+');
cdb2dd7b 372} else {
e6abe6d8
JH
373do_test(18,
374 chr(256).chr(0).chr(512),
375'SV = PV\\($ADDR\\) at $ADDR
376 REFCNT = 1
235cc2e3 377 FLAGS = \\((?:PADTMP,)?POK,READONLY,pPOK,UTF8\\)
98c991d1 378 PV = $ADDR "\\\304\\\200\\\0\\\310\\\200"\\\0 \[UTF8 "\\\x\{100\}\\\x\{0\}\\\x\{200\}"\]
e6abe6d8 379 CUR = 5
1badabf5 380 LEN = \\d+');
cdb2dd7b 381}
e6abe6d8 382
cdb2dd7b
JH
383if (ord('A') == 193) {
384do_test(19,
385 {chr(256)=>chr(512)},
4df7f6af 386'SV = $RV\\($ADDR\\) at $ADDR
cdb2dd7b
JH
387 REFCNT = 1
388 FLAGS = \\(ROK\\)
389 RV = $ADDR
390 SV = PVHV\\($ADDR\\) at $ADDR
78c72037 391 REFCNT = 1
b2caaddd 392 FLAGS = \\(SHAREKEYS,HASKFLAGS\\)
cdb2dd7b
JH
393 ARRAY = $ADDR \\(0:7, 1:1\\)
394 hash quality = 100.0%
395 KEYS = 1
396 FILL = 1
397 MAX = 7
398 RITER = -1
399 EITER = $ADDR
6cbfa5b4 400 Elt "\\\214\\\101" \[UTF8 "\\\x\{100\}"\] HASH = $ADDR
cdb2dd7b
JH
401 SV = PV\\($ADDR\\) at $ADDR
402 REFCNT = 1
403 FLAGS = \\(POK,pPOK,UTF8\\)
404 PV = $ADDR "\\\235\\\101"\\\0 \[UTF8 "\\\x\{200\}"\]
405 CUR = 2
1badabf5 406 LEN = \\d+');
cdb2dd7b 407} else {
98c991d1
JH
408do_test(19,
409 {chr(256)=>chr(512)},
4df7f6af 410'SV = $RV\\($ADDR\\) at $ADDR
98c991d1
JH
411 REFCNT = 1
412 FLAGS = \\(ROK\\)
413 RV = $ADDR
414 SV = PVHV\\($ADDR\\) at $ADDR
78c72037 415 REFCNT = 1
19692e8d 416 FLAGS = \\(SHAREKEYS,HASKFLAGS\\)
98c991d1
JH
417 ARRAY = $ADDR \\(0:7, 1:1\\)
418 hash quality = 100.0%
419 KEYS = 1
420 FILL = 1
421 MAX = 7
422 RITER = -1
423 EITER = $ADDR
424 Elt "\\\304\\\200" \[UTF8 "\\\x\{100\}"\] HASH = $ADDR
425 SV = PV\\($ADDR\\) at $ADDR
426 REFCNT = 1
427 FLAGS = \\(POK,pPOK,UTF8\\)
428 PV = $ADDR "\\\310\\\200"\\\0 \[UTF8 "\\\x\{200\}"\]
429 CUR = 2
1badabf5 430 LEN = \\d+');
cdb2dd7b 431}
98c991d1 432
99331854
YST
433my $x="";
434$x=~/.??/g;
435do_test(20,
436 $x,
437'SV = PVMG\\($ADDR\\) at $ADDR
438 REFCNT = 1
235cc2e3 439 FLAGS = \\(PADMY,SMG,POK,pPOK\\)
99331854
YST
440 IV = 0
441 NV = 0
442 PV = $ADDR ""\\\0
443 CUR = 0
1936d2a7 444 LEN = \d+
99331854
YST
445 MAGIC = $ADDR
446 MG_VIRTUAL = &PL_vtbl_mglob
447 MG_TYPE = PERL_MAGIC_regex_global\\(g\\)
448 MG_FLAGS = 0x01
449 MINMATCH');
450
f24fdb76
HS
451#
452# TAINTEDDIR is not set on: OS2, AMIGAOS, WIN32, MSDOS
453# environment variables may be invisibly case-forced, hence the (?i:PATH)
5e836f43 454# C<scalar(@ARGV)> is turned into an IV on VMS hence the (?:IV)?
d9baf692
JM
455# VMS is setting FAKE and READONLY flags. What VMS uses for storing
456# ENV hashes is also not always null terminated.
f24fdb76 457#
99331854
YST
458do_test(21,
459 $ENV{PATH}=@ARGV, # scalar(@ARGV) is a handy known tainted value
460'SV = PVMG\\($ADDR\\) at $ADDR
461 REFCNT = 1
462 FLAGS = \\(GMG,SMG,RMG,pIOK,pPOK\\)
463 IV = 0
464 NV = 0
465 PV = $ADDR "0"\\\0
466 CUR = 1
467 LEN = \d+
468 MAGIC = $ADDR
469 MG_VIRTUAL = &PL_vtbl_envelem
470 MG_TYPE = PERL_MAGIC_envelem\\(e\\)
d25a523c 471(?: MG_FLAGS = 0x01
99331854 472 TAINTEDDIR
143a3e5e
CB
473)? MG_LEN = -?\d+
474 MG_PTR = $ADDR (?:"(?i:PATH)"|=> HEf_SVKEY
5e836f43 475 SV = PV(?:IV)?\\($ADDR\\) at $ADDR
143a3e5e 476 REFCNT = \d+
11e2783c 477 FLAGS = \\(TEMP,POK,(?:FAKE,READONLY,)?pPOK\\)
f0fabfd7 478(?: IV = 0
d9baf692 479)? PV = $ADDR "(?i:PATH)"(?:\\\0)?
143a3e5e
CB
480 CUR = \d+
481 LEN = \d+)
99331854
YST
482 MAGIC = $ADDR
483 MG_VIRTUAL = &PL_vtbl_taint
484 MG_TYPE = PERL_MAGIC_taint\\(t\\)');
485
6bf47b08
SR
486# blessed refs
487do_test(22,
488 bless(\\undef, 'Foobar'),
4df7f6af 489'SV = $RV\\($ADDR\\) at $ADDR
6bf47b08
SR
490 REFCNT = 1
491 FLAGS = \\(ROK\\)
492 RV = $ADDR
493 SV = PVMG\\($ADDR\\) at $ADDR
494 REFCNT = 2
495 FLAGS = \\(OBJECT,ROK\\)
7957ad98
MB
496 IV = -?\d+
497 NV = $FLOAT
6bf47b08
SR
498 RV = $ADDR
499 SV = NULL\\(0x0\\) at $ADDR
500 REFCNT = \d+
501 FLAGS = \\(READONLY\\)
502 PV = $ADDR ""
503 CUR = 0
504 LEN = 0
505 STASH = $ADDR\s+"Foobar"');
b1886099
NC
506
507# Constant subroutines
508
509sub const () {
510 "Perl rules";
511}
512
513do_test(23,
514 \&const,
4df7f6af 515'SV = $RV\\($ADDR\\) at $ADDR
b1886099
NC
516 REFCNT = 1
517 FLAGS = \\(ROK\\)
518 RV = $ADDR
519 SV = PVCV\\($ADDR\\) at $ADDR
520 REFCNT = (2)
521 FLAGS = \\(POK,pPOK,CONST\\)
c84c4652 522 $IVNV
b1886099
NC
523 PROTOTYPE = ""
524 COMP_STASH = 0x0
d04ba589 525 $ROOT
b1886099
NC
526 XSUB = $ADDR
527 XSUBANY = $ADDR \\(CONST SV\\)
528 SV = PV\\($ADDR\\) at $ADDR
529 REFCNT = 1
530 FLAGS = \\(.*POK,READONLY,pPOK\\)
531 PV = $ADDR "Perl rules"\\\0
532 CUR = 10
533 LEN = \\d+
534 GVGV::GV = $ADDR\\t"main" :: "const"
535 FILE = ".*\\b(?i:peek\\.t)"
536 DEPTH = 0
537(?: MUTEXP = $ADDR
538 OWNER = $ADDR
f73ef291 539)? FLAGS = 0xc00
b1886099
NC
540 OUTSIDE_SEQ = 0
541 PADLIST = 0x0
542 OUTSIDE = 0x0 \\(null\\)');
2e94196c
NC
543
544# isUV should show on PVMG
545do_test(24,
546 do { my $v = $1; $v = ~0; $v },
547'SV = PVMG\\($ADDR\\) at $ADDR
548 REFCNT = 1
549 FLAGS = \\(IOK,pIOK,IsUV\\)
550 UV = \d+
551 NV = 0
552 PV = 0');
c0a413d1
NC
553
554do_test(25,
555 *STDOUT{IO},
556'SV = $RV\\($ADDR\\) at $ADDR
557 REFCNT = 1
558 FLAGS = \\(ROK\\)
559 RV = $ADDR
560 SV = PVIO\\($ADDR\\) at $ADDR
561 REFCNT = 3
562 FLAGS = \\(OBJECT\\)
563 IV = 0
564 $NV
565 STASH = $ADDR\s+"IO::Handle"
566 IFP = $ADDR
567 OFP = $ADDR
568 DIRP = 0x0
569 LINES = 0
570 PAGE = 0
571 PAGE_LEN = 60
572 LINES_LEFT = 0
573 TOP_GV = 0x0
574 FMT_GV = 0x0
575 BOTTOM_GV = 0x0
98deaf8b 576 $SUBPROCESS
c0a413d1
NC
577 TYPE = \'>\'
578 FLAGS = 0x0');