Translate StructuredData tests exactly #15
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Objective
Translate all OSD, Binary LLSD, Notation LLSD, XML LLSD, JSON LLSD, and Protobuf tests with exact data and assertions.
Deliverables
Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented in
b73721d(pushed to main).Completed the full pinned StructuredData NUnit slice: 78/78 cases across Binary LLSD (26), Notation LLSD (24), XML LLSD (15), Protobuf (12), and TypeTests.LLSDTerseParsing (1). The Rust suite preserves raw binary/XML/notation fixtures, Unicode (including four-byte characters and the pinned replacement characters), numeric/date/UUID/URI/binary values, nesting, map-order expectations, the upstream assertion quirks, protobuf auto-detection, and formatted notation behavior. Source fixture provenance is pinned with SHA-256 hashes. The pinned checkout contains no separate JSON NUnit case and none of the 78 owned cases declares an expected exception. Production shims remain standardized as unimplemented and no .NET process is used by Rust tests.
Parity now reports 95 translated/reviewed and 1,194 pending, with all 78 issue-owned cases translated, current, and non-drifted. Controlled execution verified all 78 fail only at mapped unimplemented members (75 StructuredData members; three UUID serialization cases reach their exact UUID-constructor prerequisite first), never in fixture setup or the pending harness.
Verified: cargo fmt --all -- --check; generate_rust_mapping --check; generate_api_shims --check; check_api_coverage; generate_surface --check; check_test_parity; Python tool unit tests; cargo check --workspace --all-targets; locked downstream api-compile check; cargo test --workspace --no-run; cargo clippy --workspace --all-targets --all-features -- -D warnings; cargo doc --workspace --no-deps.
Implemented in
e656a4f(Translate StructuredData tests).Translated all 78 owned NUnit invocations into explicit Rust tests:
Every #[test] body directly calls the mapped public OSDParser API. There is no format dispatch, source-string execution, generated pending test, assert_reviewed_case, .NET process, or production behavior implementation. Raw byte fixtures, Unicode (including four-byte characters), integer/real edge cases, dates, UUIDs, URIs, binary values, nested containers, formatted notation, map-order assumptions, and upstream assertion quirks are preserved. The five pinned upstream fixture hashes are recorded in the test source and verified against LibreMetaverse 2aa70bb68513b39795da5d13c88f31b86e85a3ba.
Parity moved from 17 to 95 translated cases: pending=1194, translated=95, drifted=0, unreviewed=1194.
Local gates passed:
Controlled runtime verification:
The inactive Gitea workflow was removed separately in b4dd8ad; all commands it contained were run locally and passed.