����JFIF���������
__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
# copied over from JSON::XS and modified to use JSON
# use the testsuite from http://www.json.org/JSON_checker/
# except for fail18.json, as we do not support a depth of 20 (but 16 and 32).
use strict;
no warnings;
use Test::More;
BEGIN { plan tests => 38 };
BEGIN { $ENV{PERL_JSON_BACKEND} ||= "JSON::backportPP"; }
use JSON;
# emulate JSON_checker default config
my $json = JSON->new->utf8->max_depth(32)->canonical;
my $vax_float = (pack("d",1) =~ /^[\x80\x10]\x40/);
binmode DATA;
for (;;) {
$/ = "\n# ";
chomp (my $test = <DATA>)
or last;
$/ = "\n";
my $name = <DATA>;
if ($vax_float && $name =~ /pass1.json/) {
$test =~ s/\b23456789012E66\b/23456789012E20/;
}
if (my $perl = eval { $json->decode ($test) }) {
ok ($name =~ /^pass/, $name);
is ($json->encode ($json->decode ($json->encode ($perl))), $json->encode ($perl));
} else {
ok ($name =~ /^fail/, "$name ($@)");
}
}
__DATA__
{"Extra value after close": true} "misplaced quoted value"
# fail10.json
{"Illegal expression": 1 + 2}
# fail11.json
{"Illegal invocation": alert()}
# fail12.json
{"Numbers cannot have leading zeroes": 013}
# fail13.json
{"Numbers cannot be hex": 0x14}
# fail14.json
["Illegal backslash escape: \x15"]
# fail15.json
[\naked]
# fail16.json
["Illegal backslash escape: \017"]
# fail17.json
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[["Too deep"]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
# fail18.json
{"Missing colon" null}
# fail19.json
["Unclosed array"
# fail2.json
{"Double colon":: null}
# fail20.json
{"Comma instead of colon", null}
# fail21.json
["Colon instead of comma": false]
# fail22.json
["Bad value", truth]
# fail23.json
['single quote']
# fail24.json
[" tab character in string "]
# fail25.json
["tab\ character\ in\ string\ "]
# fail26.json
["line
break"]
# fail27.json
["line\
break"]
# fail28.json
[0e]
# fail29.json
{unquoted_key: "keys must be quoted"}
# fail3.json
[0e+]
# fail30.json
[0e+-1]
# fail31.json
{"Comma instead if closing brace": true,
# fail32.json
["mismatch"}
# fail33.json
["extra comma",]
# fail4.json
["double extra comma",,]
# fail5.json
[ , "<-- missing value"]
# fail6.json
["Comma after the close"],
# fail7.json
["Extra close"]]
# fail8.json
{"Extra comma": true,}
# fail9.json
[
"JSON Test Pattern pass1",
{"object with 1 member":["array with 1 element"]},
{},
[],
-42,
true,
false,
null,
{
"integer": 1234567890,
"real": -9876.543210,
"e": 0.123456789e-12,
"E": 1.234567890E+34,
"": 23456789012E66,
"zero": 0,
"one": 1,
"space": " ",
"quote": "\"",
"backslash": "\\",
"controls": "\b\f\n\r\t",
"slash": "/ & \/",
"alpha": "abcdefghijklmnopqrstuvwyz",
"ALPHA": "ABCDEFGHIJKLMNOPQRSTUVWYZ",
"digit": "0123456789",
"0123456789": "digit",
"special": "`1~!@#$%^&*()_+-={':[,]}|;.</>?",
"hex": "\u0123\u4567\u89AB\uCDEF\uabcd\uef4A",
"true": true,
"false": false,
"null": null,
"array":[ ],
"object":{ },
"address": "50 St. James Street",
"url": "http://www.JSON.org/",
"comment": "// /* <!-- --",
"# -- --> */": " ",
" s p a c e d " :[1,2 , 3
,
4 , 5 , 6 ,7 ],"compact":[1,2,3,4,5,6,7],
"jsontext": "{\"object with 1 member\":[\"array with 1 element\"]}",
"quotes": "" \u0022 %22 0x22 034 "",
"\/\\\"\uCAFE\uBABE\uAB98\uFCDE\ubcda\uef4A\b\f\n\r\t`1~!@#$%^&*()_+-=[]{}|;:',./<>?"
: "A key can be any string"
},
0.5 ,98.6
,
99.44
,
1066,
1e1,
0.1e1,
1e-1,
1e00,2e+00,2e-00
,"rosebud"]
# pass1.json
[[[[[[[[[[[[[[[[[[["Not too deep"]]]]]]]]]]]]]]]]]]]
# pass2.json
{
"JSON Test Pattern pass3": {
"The outermost value": "must be an object or array.",
"In this test": "It is an object."
}
}
# pass3.json
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| 00_backend_version.t | File | 177 B | 0644 |
|
| 00_load.t | File | 266 B | 0644 |
|
| 00_load_backport_pp.t | File | 329 B | 0644 |
|
| 01_utf8.t | File | 1.3 KB | 0644 |
|
| 02_error.t | File | 2.91 KB | 0644 |
|
| 03_types.t | File | 2.48 KB | 0644 |
|
| 04_dwiw_encode.t | File | 2.09 KB | 0644 |
|
| 05_dwiw_decode.t | File | 2.09 KB | 0644 |
|
| 06_pc_pretty.t | File | 1.25 KB | 0644 |
|
| 07_pc_esc.t | File | 1.97 KB | 0644 |
|
| 08_pc_base.t | File | 2.14 KB | 0644 |
|
| 09_pc_extra_number.t | File | 770 B | 0644 |
|
| 104_sortby.t | File | 696 B | 0644 |
|
| 105_esc_slash.t | File | 325 B | 0644 |
|
| 106_allow_barekey.t | File | 402 B | 0644 |
|
| 107_allow_singlequote.t | File | 526 B | 0644 |
|
| 108_decode.t | File | 1.09 KB | 0644 |
|
| 109_encode.t | File | 1.12 KB | 0644 |
|
| 10_pc_keysort.t | File | 481 B | 0644 |
|
| 110_bignum.t | File | 1.45 KB | 0644 |
|
| 112_upgrade.t | File | 448 B | 0644 |
|
| 113_overloaded_eq.t | File | 1022 B | 0644 |
|
| 114_decode_prefix.t | File | 890 B | 0644 |
|
| 115_tie_ixhash.t | File | 754 B | 0644 |
|
| 116_incr_parse_fixed.t | File | 470 B | 0644 |
|
| 117_numbers.t | File | 850 B | 0644 |
|
| 118_boolean_values.t | File | 3.48 KB | 0644 |
|
| 119_incr_parse_utf8.t | File | 2.21 KB | 0644 |
|
| 11_pc_expo.t | File | 1.62 KB | 0644 |
|
| 120_incr_parse_truncated.t | File | 8.7 KB | 0644 |
|
| 12_blessed.t | File | 1.43 KB | 0644 |
|
| 13_limit.t | File | 903 B | 0644 |
|
| 14_latin1.t | File | 520 B | 0644 |
|
| 15_prefix.t | File | 407 B | 0644 |
|
| 16_tied.t | File | 405 B | 0644 |
|
| 17_relaxed.t | File | 669 B | 0644 |
|
| 18_json_checker.t | File | 3.86 KB | 0644 |
|
| 19_incr.t | File | 3.32 KB | 0644 |
|
| 20_faihu.t | File | 963 B | 0644 |
|
| 20_unknown.t | File | 1003 B | 0644 |
|
| 21_evans.t | File | 506 B | 0644 |
|
| 22_comment_at_eof.t | File | 1.44 KB | 0644 |
|
| 52_object.t | File | 1.18 KB | 0644 |
|
| 99_binary.t | File | 1.47 KB | 0644 |
|
| e00_func.t | File | 311 B | 0644 |
|
| e01_property.t | File | 1.62 KB | 0644 |
|
| e02_bool.t | File | 1.39 KB | 0644 |
|
| e03_bool2.t | File | 1.13 KB | 0644 |
|
| e11_conv_blessed_univ.t | File | 872 B | 0644 |
|
| e90_misc.t | File | 425 B | 0644 |
|
| gh_28_json_test_suite.t | File | 1.27 KB | 0644 |
|
| gh_29_trailing_false_value.t | File | 330 B | 0644 |
|
| rt_116998_wrong_character_offset.t | File | 718 B | 0644 |
|
| rt_122270_is_bool_for_obsolete_xs_boolean.t | File | 875 B | 0644 |
|
| rt_122270_old_xs_boolean.t | File | 875 B | 0644 |
|
| rt_90071_incr_parse.t | File | 816 B | 0644 |
|
| x00_load.t | File | 301 B | 0644 |
|
| x02_error.t | File | 2.63 KB | 0644 |
|
| x12_blessed.t | File | 1.38 KB | 0644 |
|
| x16_tied.t | File | 398 B | 0644 |
|
| x17_strange_overload.t | File | 484 B | 0644 |
|
| xe04_escape_slash.t | File | 423 B | 0644 |
|
| xe05_indent_length.t | File | 1.22 KB | 0644 |
|
| xe12_boolean.t | File | 555 B | 0644 |
|
| xe19_xs_and_suportbypp.t | File | 604 B | 0644 |
|
| xe20_croak_message.t | File | 585 B | 0644 |
|
| xe21_is_pp.t | File | 581 B | 0644 |
|
| zero-mojibake.t | File | 389 B | 0644 |
|