✅ added more tests from recent nst's JSONTestSuite
This commit is contained in:
parent
567fe9b7a0
commit
4639bb2c8f
321 changed files with 813 additions and 0 deletions
55
test/data/nst_json_testsuite2/README.md
Normal file
55
test/data/nst_json_testsuite2/README.md
Normal file
|
@ -0,0 +1,55 @@
|
|||
# JSON Parsing Test Suite
|
||||
A comprehensive test suite for RFC 8259 compliant JSON parsers
|
||||
|
||||
This repository was created as an appendix to the article [Parsing JSON is a Minefield 💣](http://seriot.ch/parsing_json.php).
|
||||
|
||||
**/parsers/**
|
||||
|
||||
This directory contains several parsers and tiny wrappers to turn the parsers into JSON validators, by returning a specific value.
|
||||
|
||||
- `0` the parser did accept the content
|
||||
- `1` the parser did reject the content
|
||||
- `>1` the process did crash
|
||||
- `timeout` happens after 5 seconds
|
||||
|
||||
**/test\_parsing/**
|
||||
|
||||
The name of these files tell if their contents should be accepted or rejected.
|
||||
|
||||
- `y_` content must be accepted by parsers
|
||||
- `n_` content must be rejected by parsers
|
||||
- `i_` parsers are free to accept or reject content
|
||||
|
||||
**/test\_transform/**
|
||||
|
||||
These files contain weird structures and characters that parsers may understand differently, eg:
|
||||
|
||||
- huge numbers
|
||||
- dictionaries with similar keys
|
||||
- NULL characters
|
||||
- escaped invalid strings
|
||||
|
||||
These files were used to produce `results/transform.html`.
|
||||
|
||||
**/run_tests.py**
|
||||
|
||||
Run all parsers with all files:
|
||||
|
||||
$ python3 run_tests.py
|
||||
|
||||
Run all parsers with a specific file:
|
||||
|
||||
$ python3 run_tests.py file.json
|
||||
|
||||
Run specific parsers with all files:
|
||||
|
||||
$ echo '["Python 2.7.10", "Python 3.5.2"]' > python_only.json
|
||||
$ python3 run_tests.py --filter=python_only.json
|
||||
|
||||
The script writes logs in `results/logs.txt`.
|
||||
|
||||
The script then reads `logs.txt` and generates `results/parsing.html`.
|
||||
|
||||
**/results/**
|
||||
|
||||
<img src="results/pruned_results.png" alt="JSON Parsing Tests" />
|
Loading…
Add table
Add a link
Reference in a new issue