Translate Types and Utilities parity tests
Some checks failed
Rust API gates / api-gates (push) Has been cancelled

This commit is contained in:
2026-08-08 13:58:25 +02:00
parent 39ee61525a
commit 1c0dfdc35c
19 changed files with 3482 additions and 3318 deletions

View File

@@ -27,18 +27,19 @@ Generated inventories are intentionally checked in:
types, plus two support traits referenced by public inheritance metadata.
- `api/RUST-MAPPING.tsv` records the reviewed Rust destination and complete
signature decision for all 30,789 public members.
- `tests/upstream-tests.json` records every NUnit invocation and the SHA-256 of
- `tests/upstream-tests.json` records every discovered NUnit case and the SHA-256 of
its C# method body.
- `tests/PARITY.md` maps every NUnit invocation to its Rust test name.
- `tests/PARITY.md` maps every discovered NUnit case to its Rust test name.
- `programs/upstream-programs.json` records every source file and digest for the
nine sample/tool projects.
Run `python3 tools/generate_surface.py` after deliberately changing the pinned
upstream snapshot, then run `python3 tools/extract_public_api.py` to rebuild the
authoritative metadata catalog twice and require byte-identical output. The
source generator rejects a test count other than 1,295 so upstream drift cannot
silently remove tests. Update both commit constants and review all ledger diffs
in the same change.
source generator rejects a test count other than 1,289 so upstream drift cannot
silently remove tests. The extractor masks C# comments and treats `[Test]` plus
`[TestCase]` on one parameterized method the same way as NUnit discovery. Update
both commit constants and review all ledger diffs in the same change.
### Current shell status
@@ -57,8 +58,9 @@ The current workspace is a structural baseline, not a working client:
slices expose all 3,066 final Rust-facing types and all 30,789 callable
members with real fields/constants/enum values and standardized failing
bodies;
- all 1,295 NUnit `[Test]`/`[TestCase]` invocations have compiling Rust test
entries that intentionally panic with their source identity and body hash;
- all 1,289 discovered NUnit `[Test]`/`[TestCase]` cases have compiling Rust test
entries; 17 Types/Utilities cases are semantically translated and the other
1,272 intentionally panic with their source identity and body hash;
- all nine sample/tool projects have compiling Rust binary targets;
- the 128 TestClient command source files are retained as a command inventory.
@@ -68,7 +70,7 @@ and the standalone downstream fixture names or invokes all 3,066 types and
aid, not proof of API coverage: it records declaration lines but does not fully
parse multiline signatures. Likewise, a generated `pending` test is a parity
placeholder, not a semantic translation. **The full public API signature shim
gate is complete; semantic test translation is the next stage.**
gate is complete; semantic test translation is underway.**
The avatar-facing slice preserves the C# agent, movement/camera, appearance and
outfit-policy, inventory/AIS/store, asset/cache, avatar, and animesh concepts.
@@ -316,7 +318,7 @@ The signature gate is complete only when:
### 3.2 Full semantic test-suite gate
After the full signature shim compiles, translate the entire C# test suite while
leaving all library bodies unimplemented. Every one of the 1,295 NUnit
leaving all library bodies unimplemented. Every one of the 1,289 discovered NUnit
invocations must become a Rust test with the same inputs, setup, operation,
observations, assertions, tolerances and expected error/event behavior. Shared
C# test helpers become shared Rust test helpers; embedded fixtures and literal
@@ -328,7 +330,8 @@ and semantic-review status. Reviewed tests are identified by `parity-case`
markers in hand-written Rust files, so regeneration writes only unresolved
placeholders and fails on body drift. The checked-in audit reports pending,
translated, ignored-live, benchmark, drifted, missing, duplicate, stale, and
unreviewed cases; the initial handover contains 1,295 unreviewed cases.
unreviewed cases. The initial handover contained 1,289 unreviewed cases; the
current ledger contains 17 translated/reviewed and 1,272 pending cases.
The Rust tests must call the public APIs rather than internal replacements.
Where the C# tests call internal members through friend-assembly access, record
@@ -782,7 +785,7 @@ not part of the default smoke test.
map 100% of public members to reviewed Rust signatures, and implement only
standardized failing bodies. All signatures and downstream compile fixtures
build before test translation begins.
3. **Full semantic test translation:** replace all 1,295 `pending` cases with
3. **Full semantic test translation:** replace all 1,289 `pending` cases with
exact reviewed Rust equivalents using the public shim. The entire suite
compiles and fails only at standardized unimplemented member boundaries.
4. **Types implementation:** UUID, math, enums, conversions, collections,