summaryrefslogtreecommitdiff
path: root/perl/t
diff options
context:
space:
mode:
authortokuhirom <tokuhirom@gmail.com>2010-08-21 16:02:23 +0900
committertokuhirom <tokuhirom@gmail.com>2010-08-21 16:02:23 +0900
commita91c1ec6d9b86a3f8f71504e0889191da13a210e (patch)
treefe06a6922ff2cb2c7d94534d43d764b0d71c42a9 /perl/t
parentc8e351b31e28042c10f7406238636c92a64a696c (diff)
downloadmsgpack-python-a91c1ec6d9b86a3f8f71504e0889191da13a210e.tar.gz
fixed segv on cyclic reference(patch by dankogai)
Diffstat (limited to 'perl/t')
-rw-r--r--perl/t/08_cycle.t25
1 files changed, 25 insertions, 0 deletions
diff --git a/perl/t/08_cycle.t b/perl/t/08_cycle.t
new file mode 100644
index 0000000..55d8427
--- /dev/null
+++ b/perl/t/08_cycle.t
@@ -0,0 +1,25 @@
+use t::Util;
+use Test::More;
+use Data::MessagePack;
+
+plan tests => 5;
+
+my $aref = [0];
+$aref->[1] = $aref;
+eval { Data::MessagePack->pack($aref) };
+ok $@, $@;
+
+my $href = {};
+$href->{cycle} = $href;
+eval { Data::MessagePack->pack($aref) };
+ok $@, $@;
+
+$aref = [0,[1,2]];
+eval { Data::MessagePack->pack($aref) };
+ok !$@;
+
+eval { Data::MessagePack->pack($aref, 3) };
+ok !$@;
+
+eval { Data::MessagePack->pack($aref, 2) };
+ok $@, $@;