Repository navigation
Conversation
…opy, fast-loop section in unit-test A run is copy + unit index, mxbuild + boot, restore; the tests are under 1 s. So: - several test files in one call share one injection, build and boot; a file with @cleanup none gets its own boot (measured leak: a later file saw the row); --per-file opts out; --constant stays per boot - the scratch copy persists and keeps its own .mxcli and deployment/, re-synced from the live model by rsync; dropped on --cold (the gate), a new mxcli, age, no stamp or a leftover test injection; --no-cache is the old throwaway copy - unit-test.md 4a: the fast inner loop, and the measured limits of --watch (runs green against the old model when the rebuild fails) and --attach Fixture tests/wave2/test-test-scratch.sh: 61 -> 85 checks. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- .test.md specs: collected from a directory, a named one is a test file (joins the boot, no double run) - cache folder lock for the whole run; a second run waits, then uses a private cold copy - in-progress marker: an unfinished run makes the next one cold - stamp adds the Mendix version and a names+sizes hash of userlib/javasource/widgets - mprcontents/ and the .mpr are synced by checksum - own boot also for files flagged by project rollback-scan.sh (when present) - affected-tests: the deploy moment prints --cold - duplicated SPEED comment removed, constants line clarified, unit-test 4a notes on TMPDIR and per-call boot Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The scan always exits 0 and prints a summary, so any output meant every file got its own boot. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Nov 6, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
In the MTA evaluation one test file cost 95 to 227 s while the tests themselves ran in 40 to 650 ms. The time goes into the scratch copy plus unit-index rebuild (30 to 450 s, mostly I/O) and mxbuild plus boot (50 to 120 s per boot), paid again for every file.
What
project-bin/test-scratch.sh: one boot per call. All given files (.test.mdland.test.md) share onemxcli testcall. A file with@cleanup none, or one whererollback-scan.sh(from Unit tests: inputs per decision, read committed rows back, scan what rollback will not undo #689, optional) reports an A line, gets its own boot so its rows do not reach the others.--per-filekeeps the old shape..mxclianddeployment/and is re-synced from the live model each run (rsync -cformprcontents/and the.mpr). It is rebuilt cold on--cold, a new mxcli version, a different Mendix version, a changeduserlib//javasource//widgets/listing, an age over 7 days, a missing stamp, a leftover injection, or a run that did not finish.--no-cachegives the old behaviour.affected-tests.shprints--coldfor the deploy moment, so the gate never uses the warm copy.unit-test.md§4a fast inner loop (one boot per call, setMXTK_SCRATCH_DIRto a short stable folder, watch/attach are not evidence) and a paragraph intesting-shape.md.Proof (ProcureFlow, Mendix 11.15, shared heavily loaded machine)
--watch, per changeControl: a wrong expect goes red in every mode. A
@cleanup nonewriter and reader in one boot leaked (vendor count 7 instead of 6); with the split they pass. Load from other sessions made single runs vary 2 to 3 times; the phase split is in the batch notes.Tests:
test-test-scratch.sh109/0 under/bin/bash3.2 and bash 5 (new checks confirmed red when their fix is reverted),test-affected-tests.sh152/0, portability and routing checks clean.test-app-restart.shhas the same 42 failures on master and is untouched.Not included: a runtime test executor in mxcli (MTA-level 0.5 s per call). The gate needs one cold boot anyway; revisit if the inner loop is still too slow. Also found while measuring:
--watchshowed green after a failed rebuild, fixed upstream in mendixlabs/mxcli#1770.Conflicts with #688 and #689 only in
CHANGELOG.md.🤖 Generated with Claude Code