Files
solvecraft/harness/cpp
Brett Lawson ddec10be10 difftest: reject the HANG-26, UB-119 and UB-165 guard cases instead of deferring them
An input that crashes or hangs the C++ reference is rejected, decided from
the inputs or the Rust side, never deferred (as for topology.face_p1's
UB-137 trap). The three units whose guards still deferred such inputs now
return Output::rejected from run_cpp, naming the upstream issue:

- offset.offset_geometry_creation: run_cpp follows the Rust script first and
  rejects a script that stops at the HANG-26 (FaceuseOffset self-intersection
  of a surface of revolution) or HANG-27 (EdgeuseOffset distance bound) op.
  The shim's -6 stop stays as a safety net.
- primitive.api_primitives: run_cpp rejects a pyramid whose Rust build
  returns find_outer_loops' "index out of range", exactly where upstream reads
  past sOutLoops (UB-119). The C++ no longer runs these inputs.
- topology.brep_p7: run_cpp rejects MakeFaceWithCurves with a curve on
  surface, 3D curves and no UV curves past its input checks (UB-165), the
  shim's -2 predicate with the Rust degeneracy tests.

16, 5 and 3 rejected: exactly the former guard deferrals; no other outcome
changed. Unit notes, upstream-issues and findings updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-23 22:27:44 -07:00
..