Fix small JSON bugs, bring in test suite

Just decided to "harden" the JSON parser a little bit with the test
suite from https://github.com/nst/JSONTestSuite. Now I'm pretty sure
that we can handle whatever JSON docker throws at us.
This commit is contained in:
John Doty 2024-08-06 09:22:11 -07:00
parent 9ef5515f01
commit 8a60f89110
128 changed files with 231 additions and 19 deletions

14
resources/json/README.md Normal file
View file

@ -0,0 +1,14 @@
# Test JSON
This directory contains test JSON files from https://github.com/nst/JSONTestSuite as of commit 984defc.
It only has the positive and questionable JSON inputs, as our JSON parser is extremely forgiving, by design.
## Filtered tests
Some of the questionable tests have been removed:
- `i_structure_UTF-8_BOM_empty_object.json` removed because we don't handle BOMs.
- `i_string_utf16LE_no_BOM.json` removed because we don't speak UTF16.
- `i_string_utf16BE_no_BOM.json` removed because we don't speak UTF16.
- `i_string_UTF-16LE_with_BOM.json` removed because we don't speak UTF16.

View file

@ -0,0 +1 @@
[123.456e-789]

View file

@ -0,0 +1 @@
[0.4e00669999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999969999999006]

View file

@ -0,0 +1 @@
[-1e+9999]

View file

@ -0,0 +1 @@
[1.5e+9999]

View file

@ -0,0 +1 @@
[-123123e100000]

View file

@ -0,0 +1 @@
[123123e100000]

View file

@ -0,0 +1 @@
[123e-10000000]

View file

@ -0,0 +1 @@
[-123123123123123123123123123123]

View file

@ -0,0 +1 @@
[100000000000000000000]

View file

@ -0,0 +1 @@
[-237462374673276894279832749832423479823246327846]

View file

@ -0,0 +1 @@
{"\uDFAA":0}

View file

@ -0,0 +1 @@
["\uDADA"]

View file

@ -0,0 +1 @@
["\uD888\u1234"]

View file

@ -0,0 +1 @@
["譌・ム淫"]

View file

@ -0,0 +1 @@
["<22><><EFBFBD>"]

View file

@ -0,0 +1 @@
["\uD800\n"]

View file

@ -0,0 +1 @@
["\uDd1ea"]

View file

@ -0,0 +1 @@
["\uD800\uD800\n"]

View file

@ -0,0 +1 @@
["\ud800"]

View file

@ -0,0 +1 @@
["\ud800abc"]

View file

@ -0,0 +1 @@
["<22>"]

View file

@ -0,0 +1 @@
["\uDd1e\uD834"]

View file

@ -0,0 +1 @@
["И"]

View file

@ -0,0 +1 @@
["\uDFAA"]

View file

@ -0,0 +1 @@
["<22>"]

View file

@ -0,0 +1 @@
["<22><><EFBFBD><EFBFBD>"]

View file

@ -0,0 +1 @@
["<22><>"]

View file

@ -0,0 +1 @@
["<22>ソソソソ"]

View file

@ -0,0 +1 @@
["<22>€€€€"]

View file

@ -0,0 +1 @@
["<22><>"]

View file

@ -0,0 +1 @@
[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]

View file

@ -0,0 +1 @@
[[] ]

View file

@ -0,0 +1 @@
[""]

View file

@ -0,0 +1 @@
[]

View file

@ -0,0 +1 @@
["a"]

View file

@ -0,0 +1 @@
[false]

View file

@ -0,0 +1 @@
[null, 1, "1", {}]

View file

@ -0,0 +1 @@
[null]

View file

@ -0,0 +1,2 @@
[1
]

View file

@ -0,0 +1 @@
[1]

View file

@ -0,0 +1 @@
[1,null,null,null,2]

View file

@ -0,0 +1 @@
[2]

View file

@ -0,0 +1 @@
[123e65]

View file

@ -0,0 +1 @@
[0e+1]

View file

@ -0,0 +1 @@
[0e1]

View file

@ -0,0 +1 @@
[ 4]

View file

@ -0,0 +1 @@
[-0.000000000000000000000000000000000000000000000000000000000000000000000000000001]

View file

@ -0,0 +1 @@
[20e1]

View file

@ -0,0 +1 @@
[-0]

View file

@ -0,0 +1 @@
[-123]

View file

@ -0,0 +1 @@
[-1]

View file

@ -0,0 +1 @@
[-0]

View file

@ -0,0 +1 @@
[1E22]

View file

@ -0,0 +1 @@
[1E-2]

View file

@ -0,0 +1 @@
[1E+2]

View file

@ -0,0 +1 @@
[123e45]

View file

@ -0,0 +1 @@
[123.456e78]

View file

@ -0,0 +1 @@
[1e-2]

View file

@ -0,0 +1 @@
[1e+2]

View file

@ -0,0 +1 @@
[123]

View file

@ -0,0 +1 @@
[123.456789]

1
resources/json/y_object.json Executable file
View file

@ -0,0 +1 @@
{"asd":"sdf", "dfg":"fgh"}

View file

@ -0,0 +1 @@
{"asd":"sdf"}

View file

@ -0,0 +1 @@
{"a":"b","a":"c"}

View file

@ -0,0 +1 @@
{"a":"b","a":"b"}

View file

@ -0,0 +1 @@
{}

View file

@ -0,0 +1 @@
{"":0}

View file

@ -0,0 +1 @@
{"foo\u0000bar": 42}

View file

@ -0,0 +1 @@
{ "min": -1.0e+28, "max": 1.0e+28 }

View file

@ -0,0 +1 @@
{"x":[{"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}], "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"}

View file

@ -0,0 +1 @@
{"a":[]}

View file

@ -0,0 +1 @@
{"title":"\u041f\u043e\u043b\u0442\u043e\u0440\u0430 \u0417\u0435\u043c\u043b\u0435\u043a\u043e\u043f\u0430" }

View file

@ -0,0 +1,3 @@
{
"a": "b"
}

View file

@ -0,0 +1 @@
["\u0060\u012a\u12AB"]

View file

@ -0,0 +1 @@
["\uD801\udc37"]

View file

@ -0,0 +1 @@
["\ud83d\ude39\ud83d\udc8d"]

View file

@ -0,0 +1 @@
["\"\\\/\b\f\n\r\t"]

View file

@ -0,0 +1 @@
["\\u0000"]

View file

@ -0,0 +1 @@
["\""]

View file

@ -0,0 +1 @@
["a/*b*/c/*d//e"]

View file

@ -0,0 +1 @@
["\\a"]

View file

@ -0,0 +1 @@
["\\n"]

View file

@ -0,0 +1 @@
["\u0012"]

View file

@ -0,0 +1 @@
["\uFFFF"]

View file

@ -0,0 +1 @@
["asd"]

View file

@ -0,0 +1 @@
[ "asd"]

View file

@ -0,0 +1 @@
["\uDBFF\uDFFF"]

View file

@ -0,0 +1 @@
["new\u00A0line"]

View file

@ -0,0 +1 @@
["􏿿"]

View file

@ -0,0 +1 @@
["￿"]

View file

@ -0,0 +1 @@
["\u0000"]

View file

@ -0,0 +1 @@
["\u002c"]

View file

@ -0,0 +1 @@
["π"]

View file

@ -0,0 +1 @@
["𛿿"]

View file

@ -0,0 +1 @@
["asd "]

View file

@ -0,0 +1 @@
" "

View file

@ -0,0 +1 @@
["\uD834\uDd1e"]

View file

@ -0,0 +1 @@
["\u0821"]

View file

@ -0,0 +1 @@
["\u0123"]

Some files were not shown because too many files have changed in this diff Show more