Translate appearance, baking, and current-outfit tests exactly #21

Closed
opened 2026-08-08 08:13:48 +00:00 by hugo · 1 comment
Owner

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.
## 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
hugo added the enhancement label 2026-08-08 08:13:48 +00:00
Author
Owner

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.
hugo closed this issue 2026-08-08 18:29:48 +00:00
Sign in to join this conversation.