diff options
Diffstat (limited to 't/21_evans_bugrep.t')
-rw-r--r-- | t/21_evans_bugrep.t | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/t/21_evans_bugrep.t b/t/21_evans_bugrep.t new file mode 100644 index 0000000..2e6200d --- /dev/null +++ b/t/21_evans_bugrep.t @@ -0,0 +1,50 @@ +use strict; +use Test::More; + +BEGIN { plan tests => 6 }; + +BEGIN { $ENV{PERL_JSON_BACKEND} = "JSON::backportPP"; } + +BEGIN { + use lib qw(t); + use _unicode_handling; +} + + +use JSON; + +print JSON->backend, "\t", JSON->backend->VERSION, "\n"; + +my $data = ["\x{3042}\x{3044}\x{3046}\x{3048}\x{304a}", + "\x{304b}\x{304d}\x{304f}\x{3051}\x{3053}"]; + +my $j = new JSON; +my $js = $j->encode($data); +$j = undef; + +my @parts = (substr($js, 0, int(length($js) / 2)), + substr($js, int(length($js) / 2))); +$j = JSON->new; +my $object = $j->incr_parse($parts[0]); + +ok( !defined $object ); + +eval { + $j->incr_text; +}; + +like( $@, qr/incr_text can not be called when the incremental parser already started parsing/ ); + +$object = $j->incr_parse($parts[1]); + +ok( defined $object ); + +is( $object->[0], $data->[0] ); +is( $object->[1], $data->[1] ); + +eval { + $j->incr_text; +}; + +ok( !$@ ); + |