PM-77 native LDraw compatibility harness #
This directory is the native-only process boundary. The reusable
polymodel-ldraw-testkit crate has no filesystem, process, archive, parser, or
native dependencies and is wasm-checkable.
Commands #
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- validate
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- inventory
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- corpus
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- fuzz
cargo run --manifest-path tools/ldraw-compat-harness/Cargo.toml -- differential
differential is deliberately fail-closed: it requires Nix, builds the
pinned .#ldraw-oracle package, resolves that output with nix path-info, and
runs the C++17 oracle over the complete evidenced inventory. It never invokes
the Rust parser for the oracle result. The oracle emits ldraw-oracle-v3, and
the harness compares the generated oracle projection against a fresh oracle
run using the declared normalization rules.
Expected records are generated by the standalone oracle generator from exact fixture bytes and the pinned LDParse output. Their provenance and versioned projection rules are checked in, while the Rust adapter is exercised separately as the candidate under test. Geometry, instances, transforms, winding, TEXMAP, points, explicit edges, and H-owned conditional-line classification remain covered by their declared field-authority rules when the pinned LDParse wrapper does not expose those surfaces.