test(json): pin s64 MIN/MAX writer bytes; move scratch to .sx-tmp
Close the coverage gap from attempt 1: example 0713 now builds integer fields holding s64 MIN (-9223372036854775808) and s64 MAX (9223372036854775807) — plus zero, a small negative, and a small positive — and asserts the EXACT emitted bytes. This permanently pins the edge that write_int is specifically engineered for (folding positives into negative space so MIN's non-representable-positive magnitude serializes correctly). s64 MIN is expressed as (0 - 9223372036854775807 - 1) because its magnitude is not a representable positive s64 literal. Test hygiene: stream to a repo-local, gitignored .sx-tmp/ path (created if missing) instead of a fixed /tmp name, and unlink it right after read-back so nothing leaks. Writer/model logic and src/ are untouched.
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
doc: {"name":"a\"b\n","tab":"x\ty","bs":"c\\d","ctrl":"\u0001","n":-7,"ok":true,"nil":null,"xs":[1,-2,3],"nested":{"k":"v"}}
|
||||
doc: {"name":"a\"b\n","tab":"x\ty","bs":"c\\d","ctrl":"\u0001","n":-7,"zero":0,"pos":7,"min":-9223372036854775808,"max":9223372036854775807,"ok":true,"nil":null,"xs":[1,-2,3],"nested":{"k":"v"}}
|
||||
buffer-exact: ok
|
||||
buffer-len: ok
|
||||
overflow-raised: ok
|
||||
|
||||
Reference in New Issue
Block a user