Commit | Line | Data |
a231da50 |
1 | use strictures 1; |
2 | use Test::More; |
3 | use Data::Dumper::ToXS::Test; |
4 | use Data::Dumper; |
95076525 |
5 | use Devel::Peek qw(SvREFCNT); |
6 | use Scalar::Util qw(isweak); |
a231da50 |
7 | |
8 | my @fix = do 't/fixtures.pl' or die "t/fixtures.pl: $@"; |
9 | |
10 | $Data::Dumper::Sortkeys = 1; |
c77361b0 |
11 | $Data::Dumper::Deparse = 1; |
12 | |
13 | my (%source, %result); |
a231da50 |
14 | |
15 | foreach my $f (@fix) { |
c77361b0 |
16 | my $d = Dumper($source{$f->[0]} = $f->[1]); |
17 | my $l = Dumper($result{$f->[0]} = Data::Dumper::ToXS::Test->can($f->[0])->()); |
a231da50 |
18 | is($l, $d, "Round tripped ${\$f->[0]} ok"); |
19 | } |
20 | |
95076525 |
21 | { |
22 | my $r = $result{weaken_1}; |
23 | ok(isweak($r->[1]), 'Weak element is weak'); |
24 | is(SvREFCNT(${$r->[1]}), 2, 'Refcount of target correct'); |
25 | } |
26 | |
a231da50 |
27 | done_testing; |