No test is weakened because Rust ownership differs.
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
Translate AppearanceManager, live appearance, baker, wearable, initial outfit, policy, Current Outfit Folder, and link-regression tests.
## Deliverables
- Port inventory/outfit fixtures, permissions, link relationships, texture/bake inputs, progress events, cancellations, and expected manager calls.
- Separate live-grid cases with explicit ignore/configuration.
- Preserve Moq interaction intent using narrow recording fakes or Mockall only where justified.
## Validation
- All offline appearance cases compile and fail only at unimplemented calls.
- Interaction order/count assertions remain explicit.
- No test is weakened because Rust ownership differs.
## 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:48 +00:00
Implemented and pushed in a78f9fb.\n\nImplemented:\n- translated all 120 NUnit invocations from AppearanceLiveTests, AppearanceManagerTests, AppearanceTests, BakerTests, BatchLinkTests, CurrentOutfitFolderTests, and MisclassifiedLinkRegressionTests into explicit Rust tests\n- preserved exact case IDs/body hashes, inputs, assertions, tolerances, error variants, identity/ordering checks, callbacks, and friend-assembly-only tests as owning-crate unit tests\n- kept production behavior at standardized NotImplemented boundaries while extending only the callable Rust mappings needed by the tests\n- consolidated live credentials in the existing compatibility helper and applied the same GRID_USER/GRID_PASSWORD/GRID_LOGIN_URL handling to the three earlier network live tests\n- kept .env ignored and updated parity/handover metadata\n\nVerification:\n- parity: 455 translated, 11 ignored-live, 4 benchmark, 819 pending, 0 drifted\n- #21 inventory: 112 ordinary + 8 live = 120 exact cases, matching all seven upstream source files\n- with credentials present, all 8 new live cases ran (0 ignored) and reached the GridClient NotImplemented boundary\n- isolated #21 run: 119 expected NotImplemented failures, 1 real constant assertion pass, 0 malformed/compile failures\n- cargo fmt --check\n- generator checks, API coverage, parity check, and Python tool tests\n- cargo check --workspace --all-targets\n- locked downstream API compile check\n- cargo test --workspace --no-run\n- cargo clippy --workspace --all-targets --all-features -- -D warnings\n- cargo doc --workspace --no-deps\n\nReview found no placeholders, generated source strings, dispatch tests, weakened assertions, parity drift, or additional non-RLV appearance/outfit C# test files in this scope.
Implemented and pushed in a78f9fb.\n\nImplemented:\n- translated all 120 NUnit invocations from AppearanceLiveTests, AppearanceManagerTests, AppearanceTests, BakerTests, BatchLinkTests, CurrentOutfitFolderTests, and MisclassifiedLinkRegressionTests into explicit Rust tests\n- preserved exact case IDs/body hashes, inputs, assertions, tolerances, error variants, identity/ordering checks, callbacks, and friend-assembly-only tests as owning-crate unit tests\n- kept production behavior at standardized NotImplemented boundaries while extending only the callable Rust mappings needed by the tests\n- consolidated live credentials in the existing compatibility helper and applied the same GRID_USER/GRID_PASSWORD/GRID_LOGIN_URL handling to the three earlier network live tests\n- kept .env ignored and updated parity/handover metadata\n\nVerification:\n- parity: 455 translated, 11 ignored-live, 4 benchmark, 819 pending, 0 drifted\n- #21 inventory: 112 ordinary + 8 live = 120 exact cases, matching all seven upstream source files\n- with credentials present, all 8 new live cases ran (0 ignored) and reached the GridClient NotImplemented boundary\n- isolated #21 run: 119 expected NotImplemented failures, 1 real constant assertion pass, 0 malformed/compile failures\n- cargo fmt --check\n- generator checks, API coverage, parity check, and Python tool tests\n- cargo check --workspace --all-targets\n- locked downstream API compile check\n- cargo test --workspace --no-run\n- cargo clippy --workspace --all-targets --all-features -- -D warnings\n- cargo doc --workspace --no-deps\n\nReview found no placeholders, generated source strings, dispatch tests, weakened assertions, parity drift, or additional non-RLV appearance/outfit C# test files in this scope.
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
Translate AppearanceManager, live appearance, baker, wearable, initial outfit, policy, Current Outfit Folder, and link-regression tests.
Deliverables
Validation
Prerequisite
Milestone 02 must provide the complete callable public API shim. Keep all production behavior standardized as unimplemented.
Project constraints
Implemented and pushed in a78f9fb.\n\nImplemented:\n- translated all 120 NUnit invocations from AppearanceLiveTests, AppearanceManagerTests, AppearanceTests, BakerTests, BatchLinkTests, CurrentOutfitFolderTests, and MisclassifiedLinkRegressionTests into explicit Rust tests\n- preserved exact case IDs/body hashes, inputs, assertions, tolerances, error variants, identity/ordering checks, callbacks, and friend-assembly-only tests as owning-crate unit tests\n- kept production behavior at standardized NotImplemented boundaries while extending only the callable Rust mappings needed by the tests\n- consolidated live credentials in the existing compatibility helper and applied the same GRID_USER/GRID_PASSWORD/GRID_LOGIN_URL handling to the three earlier network live tests\n- kept .env ignored and updated parity/handover metadata\n\nVerification:\n- parity: 455 translated, 11 ignored-live, 4 benchmark, 819 pending, 0 drifted\n- #21 inventory: 112 ordinary + 8 live = 120 exact cases, matching all seven upstream source files\n- with credentials present, all 8 new live cases ran (0 ignored) and reached the GridClient NotImplemented boundary\n- isolated #21 run: 119 expected NotImplemented failures, 1 real constant assertion pass, 0 malformed/compile failures\n- cargo fmt --check\n- generator checks, API coverage, parity check, and Python tool tests\n- cargo check --workspace --all-targets\n- locked downstream API compile check\n- cargo test --workspace --no-run\n- cargo clippy --workspace --all-targets --all-features -- -D warnings\n- cargo doc --workspace --no-deps\n\nReview found no placeholders, generated source strings, dispatch tests, weakened assertions, parity drift, or additional non-RLV appearance/outfit C# test files in this scope.