mergedhumanPR #255Transport
Fail closed on invalid fault-rule numbers
- Validate every current fault-rule numeric field before a run starts.
Description
The pitch.
## Summary - Validate every current fault-rule numeric field before a run starts. - Require exact integer `nth >= 1`, finite non-negative delay, and finite drop rate in `[0, 1]`. - Reject booleans, strings, negative values, NaN, infinity, and out-of-range values even when a field is unused by the chosen action. - Keep the shipped JSON schema synchronized with the runtime model. ## Why Malformed fault values could silently change test meaning: negative delays were clamped, out-of-range rates became always-or-never behavior, and positive infinity could enter the event queue. A test harness must fail closed on invalid fault configuration rather than produce a misleading run. This fail-closed requirement was surfaced while reviewing legacy PR #8 from @mariagorskikh. This is a fresh implementation against current `main`; no contributor code was executed or copied. ## Scope boundary This PR validates the existing drop, duplicate, delay, and drop-rate rules. It does not adopt the legacy latency-model plugin, jitter distributions, bandwidth, queue, partition, or SLO policy. ## Verification - Fault/schema/tooling tests: 31 passed - Full suite: 552 passed, 8 existing warnings - Diff check passed - Independent review: no findings for this isolated change
Try it
Open PR on GitHubView diffCheckout locally
git fetch origin pull/255/head:pr-255
git checkout pr-255