Files
sx/examples/expected/0715-modules-json-suite.stdout
agra 1905d35507 F2.3: pin std.json round-trip + malformed-input suite (examples/0715)
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).
2026-06-04 02:57:32 +03:00

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 ===