--- JSON-XS/t/02_error.t 2007/03/29 02:45:49 1.3 +++ JSON-XS/t/02_error.t 2018/11/15 20:49:12 1.8 @@ -1,7 +1,8 @@ -BEGIN { $| = 1; print "1..25\n"; } +BEGIN { $| = 1; print "1..35\n"; } use utf8; use JSON::XS; +no warnings; our $test; sub ok($) { @@ -19,7 +20,7 @@ eval { JSON::XS->new->allow_nonref->decode ('"\ud800"') }; ok $@ =~ /missing low /; eval { JSON::XS->new->allow_nonref (1)->decode ('"\ud800\u1234"') }; ok $@ =~ /surrogate pair /; -eval { JSON::XS->new->decode ('null') }; ok $@ =~ /allow_nonref/; +eval { JSON::XS->new->allow_nonref (0)->decode ('null') }; ok $@ =~ /allow_nonref/; eval { JSON::XS->new->allow_nonref (1)->decode ('+0') }; ok $@ =~ /malformed/; eval { JSON::XS->new->allow_nonref->decode ('.2') }; ok $@ =~ /malformed/; eval { JSON::XS->new->allow_nonref (1)->decode ('bare') }; ok $@ =~ /malformed/; @@ -34,4 +35,17 @@ eval { JSON::XS->new->decode ('[5') }; ok $@ =~ /parsing array/; eval { JSON::XS->new->decode ('{"5"') }; ok $@ =~ /':' expected/; eval { JSON::XS->new->decode ('{"5":null') }; ok $@ =~ /parsing object/; -eval { JSON::XS->new->decode ('{"5":5 5') }; ok $@ =~ /parsing object/; + +eval { JSON::XS->new->decode (undef) }; ok $@ =~ /malformed/; +eval { JSON::XS->new->decode (\5) }; ok !!$@; # Can't coerce readonly +eval { JSON::XS->new->decode ([]) }; ok $@ =~ /malformed/; +eval { JSON::XS->new->decode (\*STDERR) }; ok $@ =~ /malformed/; +eval { JSON::XS->new->decode (*STDERR) }; ok !!$@; # cannot coerce GLOB + +eval { decode_json ("\"\xa0") }; ok $@ =~ /malformed.*character/; +eval { decode_json ("\"\xa0\"") }; ok $@ =~ /malformed.*character/; +eval { decode_json ("1\x01") }; ok $@ =~ /garbage after/; +eval { decode_json ("1\x00") }; ok $@ =~ /garbage after/; +eval { decode_json ("\"\"\x00") }; ok $@ =~ /garbage after/; +eval { decode_json ("[]\x00") }; ok $@ =~ /garbage after/; +