mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-10-22 16:02:30 +02:00
Make leaktrace.t as a regular test
This commit is contained in:
58
perl/t/50_leaktrace.t
Executable file
58
perl/t/50_leaktrace.t
Executable file
@@ -0,0 +1,58 @@
|
||||
#!perl -w
|
||||
use strict;
|
||||
use Test::Requires { 'Test::LeakTrace' => 0.13 };
|
||||
use Test::More;
|
||||
|
||||
use Data::MessagePack;
|
||||
|
||||
my $simple_data = "xyz";
|
||||
my $complex_data = {
|
||||
a => 'foo',
|
||||
b => 42,
|
||||
c => undef,
|
||||
d => [qw(bar baz)],
|
||||
e => 3.14,
|
||||
};
|
||||
|
||||
note 'pack';
|
||||
|
||||
no_leaks_ok {
|
||||
my $s = Data::MessagePack->pack($complex_data);
|
||||
};
|
||||
|
||||
no_leaks_ok {
|
||||
eval { Data::MessagePack->pack([\*STDIN]) };
|
||||
note $@;
|
||||
$@ or warn "# it must die";
|
||||
};
|
||||
|
||||
note 'unpack';
|
||||
|
||||
my $s = Data::MessagePack->pack($simple_data);
|
||||
my $c = Data::MessagePack->pack($complex_data);
|
||||
|
||||
no_leaks_ok {
|
||||
my $data = Data::MessagePack->unpack($s);
|
||||
};
|
||||
|
||||
no_leaks_ok {
|
||||
my $data = Data::MessagePack->unpack($c);
|
||||
};
|
||||
|
||||
no_leaks_ok {
|
||||
my $broken = $s;
|
||||
chop $broken;
|
||||
eval { Data::MessagePack->unpack($broken) };
|
||||
note $@;
|
||||
$@ or warn "# it must die";
|
||||
};
|
||||
|
||||
note 'stream';
|
||||
|
||||
no_leaks_ok {
|
||||
my $up = Data::MessagePack::Unpacker->new();
|
||||
$up->execute($c);
|
||||
my $data = $up->data();
|
||||
};
|
||||
|
||||
done_testing;
|
Reference in New Issue
Block a user