1 #!./perl -- -*- mode: cperl; cperl-indent-level: 4 -*-
6 unless (find PerlIO::Layer 'perlio') { # no perlio, no PerlIO::scalar.
7 print "1..0 # Skip: not perlio\n";
19 @prgs = split "########\n", <DATA>;
25 plan tests => scalar @prgs;
29 sub unctrl { print dumpvar::unctrl($_[0]), "\n" }
30 sub uniescape { print dumpvar::uniescape($_[0]), "\n" }
31 sub stringify { print dumpvar::stringify($_[0]), "\n" }
35 sub new { my $class = shift; bless [ @_ ], $class }
39 sub new { my $class = shift; bless [ @_ ], $class }
41 use overload '""' => sub { "Bar<@{$_[0]}>" };
45 my $foo = Foo->new(1..5);
46 my $bar = Bar->new(1..5);
49 my($prog, $expected) = split(/\nEXPECT\n?/, $_);
50 # TODO: dumpvar::stringify() is controlled by a pile of package
51 # dumpvar variables: $printUndef, $unctrl, $quoteHighBit, $bareStringify,
52 # and so forth. We need to test with various settings of those.
53 my $out = tie *STDOUT, 'TieOut';
58 ok(0, "$prog - $ERR");
60 if ($expected =~ m:^/:) {
61 like($$out, $expected, $prog);
63 is($$out, $expected, $prog);
71 bless( \(my $self), $_[0] );
76 $$self .= join('', @_);
81 substr( $$self, 0, length($$self), '' );
119 /^'SCALAR\(0x[0-9a-f]+\)'$/i
123 /^'ARRAY\(0x[0-9a-f]+\)'$/i
127 /^'HASH\(0x[0-9a-f]+\)'$/i
131 /^'CODE\(0x[0-9a-f]+\)'$/i
135 /^'GLOB\(0x[0-9a-f]+\)'$/i
139 /^'Foo=ARRAY\(0x[0-9a-f]+\)'$/i
143 /^'Bar=ARRAY\(0x[0-9a-f]+\)'$/i
157 dumpValue("\x{100}");
161 dumpValue("1\n2\n3");