1 | BEGIN { $| = 1; print "1..19\n"; } |
1 | BEGIN { $| = 1; print "1..31\n"; } |
2 | |
2 | |
3 | use utf8; |
3 | use utf8; |
4 | use JSON::XS; |
4 | use JSON::XS; |
5 | |
5 | |
6 | our $test; |
6 | our $test; |
7 | sub ok($) { |
7 | sub ok($) { |
8 | print $_[0] ? "" : "not ", "ok ", ++$test, "\n"; |
8 | print $_[0] ? "" : "not ", "ok ", ++$test, "\n"; |
9 | } |
9 | } |
|
|
10 | |
|
|
11 | eval { JSON::XS->new->encode ([\-1]) }; ok $@ =~ /cannot encode reference/; |
|
|
12 | eval { JSON::XS->new->encode ([\undef]) }; ok $@ =~ /cannot encode reference/; |
|
|
13 | eval { JSON::XS->new->encode ([\2]) }; ok $@ =~ /cannot encode reference/; |
|
|
14 | eval { JSON::XS->new->encode ([\{}]) }; ok $@ =~ /cannot encode reference/; |
|
|
15 | eval { JSON::XS->new->encode ([\[]]) }; ok $@ =~ /cannot encode reference/; |
|
|
16 | eval { JSON::XS->new->encode ([\\1]) }; ok $@ =~ /cannot encode reference/; |
10 | |
17 | |
11 | eval { JSON::XS->new->allow_nonref (1)->decode ('"\u1234\udc00"') }; ok $@ =~ /missing high /; |
18 | eval { JSON::XS->new->allow_nonref (1)->decode ('"\u1234\udc00"') }; ok $@ =~ /missing high /; |
12 | eval { JSON::XS->new->allow_nonref->decode ('"\ud800"') }; ok $@ =~ /missing low /; |
19 | eval { JSON::XS->new->allow_nonref->decode ('"\ud800"') }; ok $@ =~ /missing low /; |
13 | eval { JSON::XS->new->allow_nonref (1)->decode ('"\ud800\u1234"') }; ok $@ =~ /surrogate pair /; |
20 | eval { JSON::XS->new->allow_nonref (1)->decode ('"\ud800\u1234"') }; ok $@ =~ /surrogate pair /; |
14 | |
21 | |
… | |
… | |
25 | eval { JSON::XS->new->allow_nonref->decode ("\"\n\"") }; ok $@ =~ /invalid character/; |
32 | eval { JSON::XS->new->allow_nonref->decode ("\"\n\"") }; ok $@ =~ /invalid character/; |
26 | eval { JSON::XS->new->allow_nonref (1)->decode ("\"\x01\"") }; ok $@ =~ /invalid character/; |
33 | eval { JSON::XS->new->allow_nonref (1)->decode ("\"\x01\"") }; ok $@ =~ /invalid character/; |
27 | eval { JSON::XS->new->decode ('[5') }; ok $@ =~ /parsing array/; |
34 | eval { JSON::XS->new->decode ('[5') }; ok $@ =~ /parsing array/; |
28 | eval { JSON::XS->new->decode ('{"5"') }; ok $@ =~ /':' expected/; |
35 | eval { JSON::XS->new->decode ('{"5"') }; ok $@ =~ /':' expected/; |
29 | eval { JSON::XS->new->decode ('{"5":null') }; ok $@ =~ /parsing object/; |
36 | eval { JSON::XS->new->decode ('{"5":null') }; ok $@ =~ /parsing object/; |
|
|
37 | |
|
|
38 | eval { JSON::XS->new->decode (undef) }; ok $@ =~ /malformed/; |
|
|
39 | eval { JSON::XS->new->decode (\5) }; ok !!$@; # Can't coerce readonly |
30 | eval { JSON::XS->new->decode ('{"5":5 5') }; ok $@ =~ /parsing object/; |
40 | eval { JSON::XS->new->decode ([]) }; ok $@ =~ /malformed/; |
|
|
41 | eval { JSON::XS->new->decode (\*STDERR) }; ok $@ =~ /malformed/; |
|
|
42 | eval { JSON::XS->new->decode (*STDERR) }; ok !!$@; # cannot coerce GLOB |
|
|
43 | |
|
|
44 | eval { from_json ("\"\xa0") }; ok $@ =~ /malformed.*character/; |
|
|
45 | eval { from_json ("\"\xa0\"") }; ok $@ =~ /malformed.*character/; |
|
|
46 | |