Data-Undump
view release on metacpan or search on metacpan
t/01_undump.t view on Meta::CPAN
use strict;
use warnings;
use Test::More;
use Test::LongString;
use Data::Undump qw(undump);
use Data::Dumper;
our @dump;
{
local $/="";
while (<DATA>) {
chomp;
push @dump, $_;
}
}
plan tests => 1 + 3 * @dump;
pass();
sub dd { return Data::Dumper->new([$_[0]])->Purity(1)->Useqq(1)->Sortkeys(1)->Dump() }
sub check {
my $dump= shift;
my $undumped= dd(my $struct= undump($dump));
my $show_diag= !is( $@||undef, undef, "after undump \$\@ was false");
my $evaled= dd(eval($dump));
$show_diag += !($dump eq "undef"
? pass("undumping undef")
: isnt($struct, undef, "undump returned something"));
$show_diag += !is_string($undumped,$evaled,"undump and eval agree");
$show_diag and diag($dump);
}
check($_) for @dump;
BEGIN {
@dump= (
" 'foo' ",
' "foo" ',
);
}
__DATA__
1
0
123013.139
-1234.59
0.41
-0.13
123
''
"foo"
'foo'
undef
[]
{}
{ foo => 'bar' }
{ foo => bar => baz => undef }
[ 1 ]
( run in 0.307 second using v1.01-cache-2.11-cpan-ec4f86ec37b )