Replace the placeholder-only test generator with a durable parity harness that tracks one reviewed Rust case per upstream NUnit invocation.
Deliverables
Extend the parity catalog with stable C# test IDs, parameter-case identity, body hash, Rust location, category, fixture dependencies, and semantic-review status.
Preserve manually translated tests across regeneration and fail on upstream drift.
Port common assertion helpers, deterministic clock/network fakes, byte fixtures, and test-data loading infrastructure.
Add reports for pending, translated, ignored-live, benchmark, and drifted cases.
CI reports missing, duplicate, stale, or unreviewed cases.
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
## Objective
Replace the placeholder-only test generator with a durable parity harness that tracks one reviewed Rust case per upstream NUnit invocation.
## Deliverables
- Extend the parity catalog with stable C# test IDs, parameter-case identity, body hash, Rust location, category, fixture dependencies, and semantic-review status.
- Preserve manually translated tests across regeneration and fail on upstream drift.
- Port common assertion helpers, deterministic clock/network fakes, byte fixtures, and test-data loading infrastructure.
- Add reports for pending, translated, ignored-live, benchmark, and drifted cases.
## Validation
- Regeneration cannot overwrite reviewed Rust tests.
- Catalog count remains exactly 1,295 upstream invocations unless the pinned source changes deliberately.
- CI reports missing, duplicate, stale, or unreviewed cases.
## Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
## Project constraints
- Translate the original test semantics exactly; do not weaken assertions, tolerances, inputs, errors, ordering, or interaction expectations.
- Tests must exercise the mapped Rust API and must never call LibreMetaverse/.NET as their implementation.
- Expected C# exceptions map to specific Rust error variants; an unimplemented panic must remain a failure.
- Do not implement production behavior during this milestone. Update parity metadata and handover status with the change.
hugo
added this to the 03 - Full semantic test translation milestone 2026-08-08 08:13:44 +00:00
Rebuilt NUnit discovery around stable source/case IDs, parameter identities, C# body hashes, categories, fixture dependencies, Rust locations, semantic-review state, and Rust test-body hashes.
Corrected the real pinned invocation count to 1,289. The old 1,295 inventory contained five commented-out Test attributes plus one redundant parameterless Test marker on a TestCase method.
Replaced executable pending placeholders with a non-executable pending inventory. generated_parity.rs now contains 1,289 comments, zero tests, and zero pending calls.
Added validation that rejects empty reviewed tests, source/method dispatcher wrappers, direct pending/todo/unimplemented/not_implemented bodies, duplicates, stale IDs, missing reviewed sources, and C# or Rust body drift.
Preserved owning-crate unit-test discovery for documented internal/friend cases.
Added deterministic clock, byte, path, fixture-loading, and in-memory network helpers plus CI regeneration/parity/unit gates.
Kept the scope to issue #13: parity reports 1,289 pending, 0 translated, 0 ignored-live, 0 benchmark, 0 drifted.
Validation:
cargo fmt --all -- --check
all mapping, shim, API coverage, surface regeneration, parity, and Python unit gates
cargo check --workspace --all-targets
locked downstream API fixture
cargo test --workspace --no-run
cargo clippy with warnings denied
cargo doc --workspace --no-deps
cargo test --workspace (green)
Review against #13 found the required durable inventory and helpers complete without translating any production test family; direct test translation begins in #14.
Implemented in 80fbe87.
Implementation:
- Rebuilt NUnit discovery around stable source/case IDs, parameter identities, C# body hashes, categories, fixture dependencies, Rust locations, semantic-review state, and Rust test-body hashes.
- Corrected the real pinned invocation count to 1,289. The old 1,295 inventory contained five commented-out Test attributes plus one redundant parameterless Test marker on a TestCase method.
- Replaced executable pending placeholders with a non-executable pending inventory. generated_parity.rs now contains 1,289 comments, zero tests, and zero pending calls.
- Added validation that rejects empty reviewed tests, source/method dispatcher wrappers, direct pending/todo/unimplemented/not_implemented bodies, duplicates, stale IDs, missing reviewed sources, and C# or Rust body drift.
- Preserved owning-crate unit-test discovery for documented internal/friend cases.
- Added deterministic clock, byte, path, fixture-loading, and in-memory network helpers plus CI regeneration/parity/unit gates.
- Kept the scope to issue #13: parity reports 1,289 pending, 0 translated, 0 ignored-live, 0 benchmark, 0 drifted.
Validation:
- cargo fmt --all -- --check
- all mapping, shim, API coverage, surface regeneration, parity, and Python unit gates
- cargo check --workspace --all-targets
- locked downstream API fixture
- cargo test --workspace --no-run
- cargo clippy with warnings denied
- cargo doc --workspace --no-deps
- cargo test --workspace (green)
Review against #13 found the required durable inventory and helpers complete without translating any production test family; direct test translation begins in #14.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Objective
Replace the placeholder-only test generator with a durable parity harness that tracks one reviewed Rust case per upstream NUnit invocation.
Deliverables
Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented in
80fbe87.Implementation:
Validation:
Review against #13 found the required durable inventory and helpers complete without translating any production test family; direct test translation begins in #14.