Complete StructuredData parity and parser hardening (#37)
This commit is contained in:
15
README.md
15
README.md
@@ -107,5 +107,20 @@ ZigZag `int32`, little-endian IEEE-754 fixed64 values, 16-byte UUIDs, bounded
|
||||
length-delimited containers, and wire-type-aware unknown-field skipping. The
|
||||
schema remains an internal compatibility format; native encoders emit stable
|
||||
sorted maps and accept the exact optional LLSD Protobuf header.
|
||||
Cross-format conversion follows the reference's format-specific boundaries:
|
||||
|
||||
| Format | Round-trip behavior |
|
||||
| --- | --- |
|
||||
| Binary LLSD | All regular OSD variants are lossless; raw `OSDLlsdXml` is unsupported. |
|
||||
| Notation LLSD | All regular OSD variants are lossless; raw `OSDLlsdXml` is unsupported. |
|
||||
| XML LLSD | Regular variants are lossless; raw `OSDLlsdXml` is injected as an element and therefore decodes as that element's ordinary OSD value. |
|
||||
| JSON OSD | Booleans, integers, reals, nonempty strings, maps, and arrays retain structure; UUID, date, and URI become strings, binary becomes an integer array, and undefined, empty strings, and raw XML become JSON `null`. |
|
||||
| Protobuf OSD | Regular variants are lossless within the reference schema's date range and whole-second precision; raw `OSDLlsdXml` maps to undefined. |
|
||||
|
||||
Checked-in malformed corpora and bounded deterministic mutations exercise all
|
||||
five parsers without an external fuzzing runtime. They cover truncation, tags,
|
||||
lengths, payloads, delimiters, nesting, entity rejection, contextual errors,
|
||||
and the parser resource limits. Every encoder sorts map keys where necessary,
|
||||
so serialization is deterministic across platforms.
|
||||
The controlled audit aggregates every expected failure by standardized C#
|
||||
member ID and rejects unrelated fixture, assertion, compile, or symbol errors.
|
||||
|
||||
Reference in New Issue
Block a user