You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
test: nothing runs the ignored simlin-engine tests #915
Nothing in pre-commit or CI ran the simlin-engine tests marked #[ignore], so a test there could break, or start passing, without anyone noticing.
The ignored tier holds the heaviest checks: C-LEARN and World3 compile-and-run, large-model LTM, and the model-corpus sweeps.
Example
In July, cargo test --release -p simlin-engine --features file_io --test integration -- --ignored failed 7 tests: four DELAY FIXED models (#346), two GET DATA BETWEEN TIMES models (#347), and simulates_except_xmile, whose tracking issue had been closed while the test stayed ignored and failing.
One of the C-LEARN tests takes about 330 s in a debug build, so this tier needs an optimized build.
Why it matters
A check that never runs pins nothing; the simulates_except_xmile case went unnoticed for months.
Fix
scripts/gates.sh and the gates job in .github/workflows/ci.yaml now run every ignored engine test under an optimized profile with debug assertions, and the policy (in the job's comment) is that #[ignore] means only "needs an optimized build": a test recording a known defect asserts the defect and runs in the normal suite.
The DELAY FIXED and GET DATA models are now entries in the Vensim-output corpus gate's list of known mismatches (EXPECTED in mdl_vensim_truth.rs), and the XMILE-path tests went away with xmutil.
Re-measured on perf/tests (off the 2026-08 engine perf branch). The failure list in the description is now partly stale: there are 4 failures in the simulate.rs ignored tier today, not 7, and two of the three named non-DELAY-FIXED tests no longer exist. Posting the corrected state so nobody starts from the old list.
What the ignored simulate:: tier looks like now
--list --ignored on the engine integration binary reports 7 simulate:: entries:
still #[ignore]d, still failing — #346 (DELAY FIXED ring-buffer semantics)
simulates_except_xmile
no longer exists as a test. It is now a comment at src/simlin-engine/tests/integration/simulate.rs:2024-2028 recording that xmutil drops EXCEPT semantics and subscript mappings in XMILE conversion, so only the MDL path is covered (simulates_except / simulates_except2, both running).
simulates_getdata_xmile / _mdl
no longer exist as tests. Also a comment now, at simulate.rs:2240-2244, giving the same reason the issue does (xmutil strips GET DATA BETWEEN TIMES; #347).
So the "seventh failure with no live tracking issue" that this issue was largely written around — simulates_except_xmile — has since been converted from a permanently-failing #[ignore]d test into a documented comment. That is arguably the right resolution for an xmutil-side gap, and it removes the specific instance, but it does not address what this issue is actually about: nothing runs the tier, so nobody would have learned about that conversion (or a regression) either way. The issue should stay open on its own terms.
Runtime of the whole ignored tier, for the lane design
The other half of the problem is that a naive lane would need a budget. Timed at 8 threads on a 16c/32t machine (debug build), the full -p simlin-engine --test integration -- --ignored set:
One test is 330 s on its own, so this is a #657-shaped release lane, not something that fits the default debug run — which also answers the "are these still ignored for time?" question: yes, and by a wide margin. (metasd_expansion_tier_heavy was also on this list; it is gone as of perf/tests, where the metasd expansion tier became one test per model and its five models now run by default.)
Suggested edits to this issue: correct the failure list to the four DELAY FIXED tests, drop the simulates_except_xmile "untracked seventh" framing (or reframe it as "the conversion to a comment happened unobserved, which is the same failure mode"), and note that any lane needs an expected-fail set covering #346 plus a budget that tolerates a 330 s test.
changed the title [-]test: nothing runs the simlin-engine `#[ignore]`d tier; 7 tests fail there today (one untracked)[/-][+]test: nothing runs the ignored simlin-engine tests[/+]on Oct 12, 2026
scripts/gates.sh runs every ignored simlin-engine test (--lib and --test integration, --ignored) under the optimized gates profile, and the gates job in .github/workflows/ci.yaml:161-192 runs it on every push and PR to main (PR #1080). Every remaining engine #[ignore] is a runtime-only gate; the DELAY FIXED models now run by default as refuses_delayfixed_* (tests/integration/simulate.rs:3152-3178) and DELAY FIXED / GET DATA are known-mismatch rows in mdl_vensim_truth.rs:257-334.
Activity
engine: make implicit-helper identity a name, not a hash-ordered posi…
bpowers commentedon Aug 10, 2026
Re-measured on
perf/tests(off the 2026-08 engine perf branch). The failure list in the description is now partly stale: there are 4 failures in thesimulate.rsignored tier today, not 7, and two of the three named non-DELAY-FIXED tests no longer exist. Posting the corrected state so nobody starts from the old list.What the ignored
simulate::tier looks like now--list --ignoredon the engine integration binary reports 7simulate::entries:Running them (
--ignored simulate::, debug build):Reconciliation with the description's list of 7
simulates_delayfixed_xmile/_mdl/delayfixed2_xmile/_mdl#[ignore]d, still failing — #346 (DELAY FIXED ring-buffer semantics)simulates_except_xmilesrc/simlin-engine/tests/integration/simulate.rs:2024-2028recording that xmutil drops EXCEPT semantics and subscript mappings in XMILE conversion, so only the MDL path is covered (simulates_except/simulates_except2, both running).simulates_getdata_xmile/_mdlsimulate.rs:2240-2244, giving the same reason the issue does (xmutil strips GET DATA BETWEEN TIMES; #347).So the "seventh failure with no live tracking issue" that this issue was largely written around —
simulates_except_xmile— has since been converted from a permanently-failing#[ignore]d test into a documented comment. That is arguably the right resolution for an xmutil-side gap, and it removes the specific instance, but it does not address what this issue is actually about: nothing runs the tier, so nobody would have learned about that conversion (or a regression) either way. The issue should stay open on its own terms.Runtime of the whole ignored tier, for the lane design
The other half of the problem is that a naive lane would need a budget. Timed at 8 threads on a 16c/32t machine (debug build), the full
-p simlin-engine --test integration -- --ignoredset:simulate_ltm_wasm::discovery_clearn_matches_vm_wasmsimulate_ltm::clearn_with_ltm_simulates_model_vars_identicallysimulate_ltm_pinned::clearn_pinned_climate_loop_is_scoredsimulate::simulates_clearn_wasmwrld3_ltm_panic::wrld3_element_level_enumeration_is_uncappedltm_discovery_large_models::clearn_ltm_discovery_compilessimulate::clearn_ltm_partials_all_parsesimulate_ltm_wasm::discovery_world3_matches_vm_wasmsimulate::compiles_and_runs_clearn_structuralmdl_roundtrip::write_mdl_for_vensim_validationOne test is 330 s on its own, so this is a #657-shaped release lane, not something that fits the default debug run — which also answers the "are these still ignored for time?" question: yes, and by a wide margin. (
metasd_expansion_tier_heavywas also on this list; it is gone as ofperf/tests, where the metasd expansion tier became one test per model and its five models now run by default.)Suggested edits to this issue: correct the failure list to the four DELAY FIXED tests, drop the
simulates_except_xmile"untracked seventh" framing (or reframe it as "the conversion to a comment happened unobserved, which is the same failure mode"), and note that any lane needs an expected-fail set covering #346 plus a budget that tolerates a 330 s test.engine: performance pass on compile, simulation, and the LTM path (#1021
[-]test: nothing runs the simlin-engine `#[ignore]`d tier; 7 tests fail there today (one untracked)[/-][+]test: nothing runs the ignored simlin-engine tests[/+]bpowers commentedon Oct 12, 2026
Closing: already fixed on main.
scripts/gates.sh runs every ignored simlin-engine test (--lib and --test integration,
--ignored) under the optimizedgatesprofile, and thegatesjob in .github/workflows/ci.yaml:161-192 runs it on every push and PR to main (PR #1080). Every remaining engine#[ignore]is a runtime-only gate; the DELAY FIXED models now run by default asrefuses_delayfixed_*(tests/integration/simulate.rs:3152-3178) and DELAY FIXED / GET DATA are known-mismatch rows in mdl_vensim_truth.rs:257-334.