--- JSON-XS/t/02_error.t 2007/03/23 15:10:55 1.2 +++ JSON-XS/t/02_error.t 2007/03/31 14:20:06 1.4 @@ -1,4 +1,4 @@ -BEGIN { $| = 1; print "1..19\n"; } +BEGIN { $| = 1; print "1..29\n"; } use utf8; use JSON::XS; @@ -8,6 +8,13 @@ print $_[0] ? "" : "not ", "ok ", ++$test, "\n"; } +eval { JSON::XS->new->encode ([\-1]) }; ok $@ =~ /cannot encode reference/; +eval { JSON::XS->new->encode ([\undef]) }; ok $@ =~ /cannot encode reference/; +eval { JSON::XS->new->encode ([\2]) }; ok $@ =~ /cannot encode reference/; +eval { JSON::XS->new->encode ([\{}]) }; ok $@ =~ /cannot encode reference/; +eval { JSON::XS->new->encode ([\[]]) }; ok $@ =~ /cannot encode reference/; +eval { JSON::XS->new->encode ([\\1]) }; ok $@ =~ /cannot encode reference/; + eval { JSON::XS->new->allow_nonref (1)->decode ('"\u1234\udc00"') }; ok $@ =~ /missing high /; eval { JSON::XS->new->allow_nonref->decode ('"\ud800"') }; ok $@ =~ /missing low /; eval { JSON::XS->new->allow_nonref (1)->decode ('"\ud800\u1234"') }; ok $@ =~ /surrogate pair /; @@ -27,4 +34,9 @@ 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