mirror of
https://github.com/msgpack/msgpack-c.git
synced 2025-03-19 13:02:13 +01:00
40 lines
717 B
Perl
40 lines
717 B
Perl
use strict;
|
|
use warnings;
|
|
use Test::More;
|
|
use Data::MessagePack;
|
|
|
|
my @data = ( [ 1, 2, 3 ], [ 4, 5, 6 ] );
|
|
|
|
# serialize
|
|
my $buffer = '';
|
|
for my $d (@data) {
|
|
$buffer .= Data::MessagePack->pack($d);
|
|
}
|
|
|
|
# deserialize
|
|
my $cb = sub {
|
|
my ($data) = @_;
|
|
|
|
my $d = shift @data;
|
|
is_deeply $data, $d;
|
|
};
|
|
my $unpacker = Data::MessagePack::Unpacker->new();
|
|
my $nread = 0;
|
|
while (1) {
|
|
$nread = $unpacker->execute( $buffer, $nread );
|
|
if ( $unpacker->is_finished ) {
|
|
my $ret = $unpacker->data;
|
|
$cb->( $ret );
|
|
$unpacker->reset;
|
|
|
|
$buffer = substr( $buffer, $nread );
|
|
$nread = 0;
|
|
next if length($buffer) != 0;
|
|
}
|
|
last;
|
|
}
|
|
is scalar(@data), 0;
|
|
|
|
done_testing;
|
|
|