Repository navigation
test: write #46's remaining fuzz properties and complex fixtures - #193
Conversation
…ixtures - Lane isolation, write by write: across every checkpoint a lane slot is written once and never changes, no lane-body node gets a top-level `items`, and each (node, lane) activates exactly once. - Validator soundness: graphs the validator refuses are forced past it and shown to misbehave as each refusal says they would. - Timing schedules over generated shapes: two different per-node latency schedules with the same failures give the same output. - The refinement-loop-with-a-scatter and lane-switch fixtures. The two engine bugs these surfaced are fixed in their own PRs. Closes tinyhumansai#46
|
Warning Review limit reached
This review includes 5 billable files and costs up to $1.25. Or wait 4 minutes for your next included review. View limit details
|
Tiny Sweeper reviewReviewed head: Verdict: Ready for maintainer review · Priority: none Diagnostics and supporting detailsFull summaryPull request purpose (title): test: write #46's remaining fuzz properties and complex fixtures. This pull-request is titled "test: write #46's remaining fuzz properties and complex fixtures" and its description says it lands the remaining fuzz properties and complex fixtures from issue #46, with no engine code changes. Review snapshot
Completeness: Complete What changedFive test files change with 1201 additions and 1 deletion: two new complex-graph fixture bodies folded into the existing suite through a new `include!` line, and three new or extended fuzz targets. A trusted base-to-head comparison is not available for this push, so no push delta is described. Features
Tests
FindingsNo active actionable findings. Before mergeNone. Agent review detailscritique
security
tests
commits
description
Evidence and run details
|
Summary
The remaining fuzz properties and complex fixtures from #46. Test-only: no engine code changes.
tests/fuzz_lane_isolation_tests.rs): across every checkpoint boundary of a scatter run (run_with_checkpointer), a lane slot is written once and never changes, and no lane-body node gets a top-levelitems. AcrossStepPhase::Afterframes, each (node, lane) activates exactly once. It varies rows, body length, the lane cap, andon_error: continue/routeendings.tests/fuzz_validator_soundness_tests.rs): each refused graph is checked to failcompilewith the expected reason, then forced in through aCompiledWorkflow { graph }literal and shown to misbehave. Cases: an off-cycle merge in a loop, condition labels onto_port, a gather with no scatter, a scatter with no gather, a nested scatter, a loop inside a lane, an edge to an unknown node, and no trigger. A proptest mutates generated branches intoInvalidConditionRouting.tests/fuzz_timing_tests.rs): a per-node yield-count schedule plus injected failures. Two different schedules with the same failure set give the same stable output. Scheduler stamps and runner-numbered spawn tickets are excluded.tests/complex_graphs/loop_scatter_and_lane_switch_tests.rs): a refinement loop whose body scatters, and a lane with aswitchand anon_error: routearm under everyon_lane_errorpolicy. Both assert final state and the RunObserver order.Closes #46
#46 checklist
tests/complex_graphs/composition_tests.rs:6).composition_tests.rs:122).switchand anon_error: routearm under everyon_lane_error, with observer order. Added. Partial coverage landed earlier inconcurrency_and_failures_tests.rs:134,:181.tests/loop_e2e/loop_e2e_part_01_tests.rs:350).max_concurrency. Landed earlier (concurrency_and_failures_tests.rs:27,parallel_e2e.rs:225).tests/fuzz_cancellation_tests.rs:170,:214).$replaceround-trip. Landed earlier (src/engine_merge_tests.rs:71,:88).fuzz_scatter_tests.rs:98.fuzz_timing_tests.rs:132.proptest-regressions/,tests/reference_workflows_tests.rs:30).Found while writing these, fixed in their own PRs
fix/gather-current-pass-lanes.fix/deterministic-parallel-error.fix/lane-never-writes-top-level.Validation
On a Linux build host, merged onto main 8b22179:
cargo test --workspace --all-features --locked: 2869 passed, 0 failed, 35 ignored (main: 2856 / 35; no new ignores).fuzz_timing_tests3/3,fuzz_lane_isolation_tests,fuzz_validator_soundness_tests(9 tests),complex_graphs_tests(7 tests).-D warnings, fmt,cargo +1.88.0 check --all-features(MSRV), rustdoc-D warnings.