weak ref support
[p5sagit/Data-Dumper-ToXS.git] / t / basic.t
CommitLineData
a231da50 1use strictures 1;
2use Test::More;
3use Data::Dumper::ToXS::Test;
4use Data::Dumper;
95076525 5use Devel::Peek qw(SvREFCNT);
6use Scalar::Util qw(isweak);
a231da50 7
8my @fix = do 't/fixtures.pl' or die "t/fixtures.pl: $@";
9
10$Data::Dumper::Sortkeys = 1;
c77361b0 11$Data::Dumper::Deparse = 1;
12
13my (%source, %result);
a231da50 14
15foreach 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 27done_testing;