fix(linear-static-3d-euler-beam): reject CLI option values
This commit is contained in:
@@ -1289,3 +1289,42 @@
|
||||
Step 27 can consume only its `physics_evidence` after Step 26 passes.
|
||||
- concerns: none; no critical implementation, environment, numerical, or
|
||||
upstream-contract blocker remains.
|
||||
|
||||
### Step 24 Review Fix Round 1 — option-token output rejection
|
||||
|
||||
- review_trigger: the approved CLI contract classifies repeated `--output`
|
||||
and every unknown option as usage error exit 2. The original three-argument
|
||||
parser treated the value position as an arbitrary nonempty path, so an
|
||||
option token could advance into input analysis instead.
|
||||
- RED-repeated-option: after adding
|
||||
`{missingInput,"--output","--output"}` to the existing exact
|
||||
`LinearStaticCli.ReturnsEveryExactExitCodeAndOrderedDiagnostic` test,
|
||||
`cmake --build .harness/build --config Debug --target
|
||||
fesa_integration_tests` exited 0 and the focused CTest exited 1. Actual exit
|
||||
was 3 and stderr contained no `cli-usage`, rather than expected exit 2.
|
||||
- GREEN-repeated-option: rejecting the literal repeated token made the same
|
||||
focused test pass 1/1.
|
||||
- RED-unknown-option: the reviewer then identified the general unknown-option
|
||||
case. Adding `{missingInput,"--output","--bogus"}` before broadening the
|
||||
production condition again produced build exit 0 and focused CTest exit 1;
|
||||
actual exit was 3 with no `cli-usage`.
|
||||
- production_fix: explicit output form now requires a nonempty third argument
|
||||
that does not begin with `-`. Both a repeated known option and an unknown
|
||||
option token are rejected before any input or output access, while ordinary
|
||||
output paths retain the approved behavior.
|
||||
- GREEN-focused: rebuilding `fesa_integration_tests` exited 0 under `/W4 /WX`;
|
||||
the unchanged exact focused test passed 1/1 with both option cases pinned.
|
||||
- independent_review: Critical 0, unresolved Important 0. The reviewer reran
|
||||
exact Step 24 10/10, discovery 83, full 83/83, comparison 176 rows/16
|
||||
metrics passed, and reference diff/status clean.
|
||||
- remaining_minor: the test-only comparator independently pins float64 result
|
||||
file types but relies on the Step 23 writer self-check/full-suite schema test
|
||||
for exact uint64 endianness and every compound member file dtype/UTF-8. This
|
||||
is defense-in-depth negative coverage, not a reproducible approved-pipeline
|
||||
false pass.
|
||||
- remaining_minor: the inherited diagnostic sorter is not a literal
|
||||
implementation of future multi-source declaration/internal-ID ordering, but
|
||||
no V0 single-input CLI misordering is reproducible.
|
||||
- remaining_minor: the Step 23 `libmmd.dll` guard remains unconditional across
|
||||
alternate HDF5 targets; it is correct for the approved shared-HDF5
|
||||
environment and is an external portability limitation.
|
||||
|
||||
Reference in New Issue
Block a user