BEGIN {
chdir 't' if -d 't';
- unshift @INC, '../lib' if -d '../lib';
+ @INC = '../lib';
+ require Config; import Config;
+ if ($Config{'extensions'} !~ /\bData\/Dumper\b/) {
+ print "1..0 # Skip: Data::Dumper was not built\n";
+ exit 0;
+ }
}
use Data::Dumper;
if (defined &Data::Dumper::Dumpxs) {
print "### XS extension loaded, will run XS tests\n";
- $TMAX = 174; $XS = 1;
+ $TMAX = 186; $XS = 1;
}
else {
print "### XS extensions not loaded, will NOT run XS tests\n";
- $TMAX = 87; $XS = 0;
+ $TMAX = 93; $XS = 0;
}
print "1..$TMAX\n";
##
$WANT = <<'EOT';
#$VAR1 = {
-# "abc\0'\efg" => "mno\0"
+# "abc\0'\efg" => "mno\0",
+# "reftest" => \\1
#};
EOT
-$foo = { "abc\000\'\efg" => "mno\000" };
+$foo = { "abc\000\'\efg" => "mno\000",
+ "reftest" => \\1,
+ };
{
local $Data::Dumper::Useqq = 1;
TEST q(Dumper($foo));
$WANT = <<"EOT";
#\$VAR1 = {
-# 'abc\0\\'\efg' => 'mno\0'
+# 'abc\0\\'\efg' => 'mno\0',
+# 'reftest' => \\\\1
#};
EOT
package main;
use Data::Dumper;
$foo = 5;
- @foo = (10,\*foo);
+ @foo = (-10,\*foo);
%foo = (a=>1,b=>\$foo,c=>\@foo);
$foo{d} = \%foo;
$foo[2] = \%foo;
#*::foo = \5;
#*::foo = [
# #0
-# 10,
+# -10,
# #1
-# '',
+# do{my $o},
# #2
# {
# 'a' => 1,
-# 'b' => '',
+# 'b' => do{my $o},
# 'c' => [],
# 'd' => {}
# }
#$foo = \*::foo;
#*::foo = \5;
#*::foo = [
-# 10,
-# '',
+# -10,
+# do{my $o},
# {
# 'a' => 1,
-# 'b' => '',
+# 'b' => do{my $o},
# 'c' => [],
# 'd' => {}
# }
##
$WANT = <<'EOT';
#@bar = (
-# 10,
+# -10,
# \*::foo,
# {}
#);
#*::foo = \@bar;
#*::foo = {
# 'a' => 1,
-# 'b' => '',
+# 'b' => do{my $o},
# 'c' => [],
# 'd' => {}
#};
##
$WANT = <<'EOT';
#$bar = [
-# 10,
+# -10,
# \*::foo,
# {}
#];
#*::foo = $bar;
#*::foo = {
# 'a' => 1,
-# 'b' => '',
+# 'b' => do{my $o},
# 'c' => [],
# 'd' => {}
#};
$WANT = <<'EOT';
#$foo = \*::foo;
#@bar = (
-# 10,
+# -10,
# $foo,
# {
# a => 1,
$WANT = <<'EOT';
#$foo = \*::foo;
#$bar = [
-# 10,
+# -10,
# $foo,
# {
# a => 1,
$WANT = <<'EOT';
#@a = (
# undef,
-# ''
+# do{my $o}
#);
#$a[1] = \$a[0];
EOT
# {
# a => \[
# {
-# c => ''
+# c => do{my $o}
# },
# {
# d => \[]
TEST q(Data::Dumper->new([$a,$b,$c],['a','b','c'])->Maxdepth(1)->Dumpxs;)
if $XS;
}
+
+{
+ $a = \$a;
+ $b = [$a];
+
+############# 175
+##
+ $WANT = <<'EOT';
+#$b = [
+# \$b->[0]
+#];
+EOT
+
+TEST q(Data::Dumper->new([$b],['b'])->Purity(0)->Dump;);
+TEST q(Data::Dumper->new([$b],['b'])->Purity(0)->Dumpxs;)
+ if $XS;
+
+############# 181
+##
+ $WANT = <<'EOT';
+#$b = [
+# \do{my $o}
+#];
+#${$b->[0]} = $b->[0];
+EOT
+
+
+TEST q(Data::Dumper->new([$b],['b'])->Purity(1)->Dump;);
+TEST q(Data::Dumper->new([$b],['b'])->Purity(1)->Dumpxs;)
+ if $XS;
+}