Parallel execution consists in launching n workers and pushing elements from the test queue to the workers until the queue is empty:
workers are created with functions that are supposed to work on Windows, no fork or exec.
parallel execution is the default, guessing the number of available CPUs.
-j0 allows running sequentially in a single process while -j1 is also sequential but will use one worker process.
I'm somewhat confident that we can use this internally if I'm around to fix any issue. I did some testing on the semgrep repo where we have some errors possibly due to tests that share temporary files.
PR checklist:
[x] Purpose of the code is evident to future readers
[x] Tests are included or a PR comment includes a reproducible test plan
[x] Documentation is up-to-date
[ ] A changelog entry was added to CHANGES.md for any user-facing change
Parallel execution consists in launching n workers and pushing elements from the test queue to the workers until the queue is empty:
-j0
allows running sequentially in a single process while-j1
is also sequential but will use one worker process.I'm somewhat confident that we can use this internally if I'm around to fix any issue. I did some testing on the semgrep repo where we have some errors possibly due to tests that share temporary files.
PR checklist:
CHANGES.md
for any user-facing changeCheck out
CONTRIBUTING.md
for more details.