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.
tl;dr
A parallel test suite should be as simple as
deno test --parallel, but our test suite is somehow still not working great in that scenario, so this approach takes a bit of extra work. Every time a new test is added (or every time we want to update the timing file because we think the relative runtimes have significantly changed), we need to collect a full slow run.That's done by
QUARTO_TEST_TIMING=1 ./run-tests.sh, which will recreate thetests/timing.txtfile.With that file in place,
./run-parallel-tests.shuses a simple scheduler to run our test suite across a large number of parallelized individual./run-tests.shcall.The report is also a little uglier, but it's functional enough: there's a global "test failed" output if any of the tests fail, and then you have to scroll up to find the test.
A 6x speedup seems worth the effort, though. There's still a largeish improvement to be done by splitting
smoke/smoke-all.test.tsas a special case, but this will get us going.