Add 0715-modules-json-suite as the single comprehensive pinned suite for std.json (mirrors 0711 for std.hash), alongside the focused 0713/0714 demos: - ROUND-TRIP build->write->parse->write over a document covering EVERY value kind (a string with every escape form \" \\ \b \f \n \r \t plus a \u00XX control, integers 0 / negative / s64 MIN / s64 MAX, bool, null, array, nested object) with insertion-order assertions, exact writer bytes, and parse-then-rewrite idempotence. - DECODE positives: \/, the full named-escape set, \uXXXX (BMP 1- and 2-byte) plus a surrogate pair, the escaped control forms, and raw multi-byte UTF-8 round-tripping through writer + reader. - MALFORMED matrix: one assertion per JsonParseError variant and its key edges (UnexpectedToken, UnexpectedEnd, BadEscape, BadNumber incl. leading zero / lone '-' / fraction / exponent / overflow, TrailingGarbage, BadControlChar), each asserted to raise. Pure test work: src/ and library/ untouched, no json.sx change needed. Every model is built through an explicit Arena allocator (heap discipline).
41 lines
797 B
Plaintext
41 lines
797 B
Plaintext
doc: {"esc":"\"\\\b\t\n\f\r\u0001","zero":0,"neg":-7,"min":-9223372036854775808,"max":9223372036854775807,"ok":true,"nil":null,"xs":[1,-2,3],"nested":{"k":"v"}}
|
|
rt-exact: ok
|
|
rt-len: ok
|
|
rt-idempotent: ok
|
|
st-count: ok
|
|
st-order: ok
|
|
st-esc: ok
|
|
st-zero: ok
|
|
st-neg: ok
|
|
st-min: ok
|
|
st-max: ok
|
|
st-bool: ok
|
|
st-null: ok
|
|
st-xs: ok
|
|
st-nested: ok
|
|
dec-slash: ok
|
|
dec-escapes: ok
|
|
dec-surrogate: ok
|
|
dec-esc-ctrl: ok
|
|
rt-utf8: ok
|
|
err-token-literal: ok
|
|
err-token-key: ok
|
|
err-token-comma: ok
|
|
err-end-object: ok
|
|
err-end-array: ok
|
|
err-end-string: ok
|
|
err-esc-unknown: ok
|
|
err-esc-bad-hex: ok
|
|
err-esc-surrogate: ok
|
|
err-num-leadzero: ok
|
|
err-num-lonedash: ok
|
|
err-num-fraction: ok
|
|
err-num-exponent: ok
|
|
err-num-overflow: ok
|
|
err-trail-array: ok
|
|
err-trail-scalar: ok
|
|
err-ctrl-tab: ok
|
|
err-ctrl-lf: ok
|
|
err-ctrl-nul: ok
|
|
=== DONE ===
|