Commit | Line | Data |
---|---|---|
d5424315 DG |
1 | use strict; |
2 | use Test::More; | |
3 | ||
4 | BEGIN { plan tests => 11 }; | |
5 | ||
6 | BEGIN { $ENV{PERL_JSON_BACKEND} = 0; } | |
7 | ||
8 | use JSON::PP; | |
9 | ||
10 | ||
11 | my $def = 512; | |
12 | ||
13 | my $js = JSON::PP->new; | |
14 | ||
15 | { | |
16 | local $^W = undef; # avoid for warning 'Deep recursion on subroutin' | |
17 | ||
18 | ok (!eval { $js->decode (("[" x ($def + 1)) . ("]" x ($def + 1))) }); | |
19 | ok (ref $js->decode (("[" x $def) . ("]" x $def))); | |
20 | ok (ref $js->decode (("{\"\":" x ($def - 1)) . "[]" . ("}" x ($def - 1)))); | |
21 | ok (!eval { $js->decode (("{\"\":" x $def) . "[]" . ("}" x $def)) }); | |
22 | ||
23 | ok (ref $js->max_depth (32)->decode (("[" x 32) . ("]" x 32))); | |
24 | ||
25 | ok ($js->max_depth(1)->encode ([])); | |
26 | ok (!eval { $js->encode ([[]]), 1 }); | |
27 | ||
28 | ok ($js->max_depth(2)->encode ([{}])); | |
29 | ok (!eval { $js->encode ([[{}]]), 1 }); | |
30 | ||
31 | ok (eval { ref $js->max_size (8)->decode ("[ ]") }); | |
32 | eval { $js->max_size (8)->decode ("[ ]") }; ok ($@ =~ /max_size/); | |
33 | ||
34 | } |