Translate wire semantics tests
This commit is contained in:
@@ -60,7 +60,8 @@ The current workspace is a structural baseline, not a working client:
|
||||
members with real fields/constants/enum values and standardized failing
|
||||
bodies;
|
||||
- all 1,289 real NUnit `[Test]`/`[TestCase]` invocations have stable catalog
|
||||
entries; pending cases do not generate executable placeholder tests;
|
||||
entries; 145 are translated, four benchmarks are reviewed, and 1,140 remain
|
||||
pending without executable placeholder tests;
|
||||
- all nine sample/tool projects have compiling Rust binary targets;
|
||||
- the 128 TestClient command source files are retained as a command inventory.
|
||||
|
||||
@@ -75,8 +76,9 @@ gate is complete; semantic test translation is the next stage.**
|
||||
The avatar-facing slice preserves the C# agent, movement/camera, appearance and
|
||||
outfit-policy, inventory/AIS/store, asset/cache, avatar, and animesh concepts.
|
||||
Long-running mapped calls retain an explicit cross-platform cancellation token
|
||||
and return the shared `NotImplemented { csharp_member }` error; events return a
|
||||
typed subscription guard so callback lifetime is visible to Rust callers.
|
||||
and return the shared `Error::NotImplemented(NotImplemented { csharp_member })`
|
||||
error; events return a typed subscription guard so callback lifetime is visible
|
||||
to Rust callers.
|
||||
|
||||
The world-facing slice preserves the C# object, parcel, terrain, grid,
|
||||
environment, estate, directory, friend, group, sound, interest-list,
|
||||
@@ -276,7 +278,7 @@ Each mapped Rust item must actually compile and be callable:
|
||||
untyped placeholder.
|
||||
|
||||
The body is the only part allowed to be fake. Fallible Rust APIs return a shared
|
||||
typed `NotImplemented { csharp_member }` error. Infallible constructors,
|
||||
typed `Error::NotImplemented(NotImplemented { csharp_member })` error. Infallible constructors,
|
||||
accessors, operators and trait methods call a shared `unimplemented_api!`
|
||||
placeholder that panics with the stable C# member ID. Constants and enum values
|
||||
must have their real values. Never return plausible defaults such as `false`,
|
||||
@@ -286,7 +288,8 @@ for the wrong reason.
|
||||
The failure contract lives in `libremetaverse-types` and every API crate exposes
|
||||
it as `crate::Error`:
|
||||
|
||||
- synchronous fallible members return `Err(NotImplemented::new(CSHARP_ID))`;
|
||||
- synchronous fallible members return
|
||||
`Err(Error::NotImplemented(NotImplemented::new(CSHARP_ID)))`;
|
||||
async members do the same when first polled and start no work first;
|
||||
- a stream-producing operation returns the typed error before exposing a
|
||||
stream; an intrinsically infallible stream factory uses `unimplemented_api!`
|
||||
@@ -330,8 +333,9 @@ and semantic-review status. Reviewed tests are identified by `parity-case`
|
||||
markers in hand-written Rust files, so regeneration records unresolved cases
|
||||
without creating fake executable tests 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,289
|
||||
unreviewed cases.
|
||||
duplicate, stale, and unreviewed cases. The initial handover contained 1,289
|
||||
unreviewed cases; the current ledger contains 145 translated, four
|
||||
benchmark-reviewed, and 1,140 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
|
||||
|
||||
Reference in New Issue
Block a user