Skip to content

Allow running ProGe tests more in parallel#306

Merged
pjaaskel merged 4 commits intocpc:mainfrom
gtkiku:parallel-tests
Feb 16, 2026
Merged

Allow running ProGe tests more in parallel#306
pjaaskel merged 4 commits intocpc:mainfrom
gtkiku:parallel-tests

Conversation

@gtkiku
Copy link
Contributor

@gtkiku gtkiku commented Feb 13, 2026

I've been hacking on parts related to RTL generation and running something like

./tools/scripts/systemtest.py -so ../testsuite/systemtest/procgen/ProGe && ./tools/scripts/systemtest.py -so ../testsuite/systemtest_long/procgen/ProGe

for some 'quick' checks that I haven't accidentally broken any existing functionality. That's pretty slow though, since all the tests only run single-threaded. The fix I went with here is to create a separate test directory for each test and symlink the required data files, so there's no 'real' duplication of shared resources. Does mean that .opp files have to be compiled for each test separately, which is a small downside, but at least in this case there's not that many occurences of them.

Likely won't have a significant impact on the CI runtime, but improves my current (and presumably near-future) workflow nicely. Before/after on my machine:

$ time ./tools/scripts/systemtest.py -so ../testsuite/systemtest/procgen/ProGe
[...]
real    0m24.926s
user    0m16.473s
sys     0m8.206s

$ time ./tools/scripts/systemtest.py -so ../testsuite/systemtest_long/procgen/ProGe
[...]
real    1m37.064s
user    1m31.558s
sys     0m5.601s
$ time ./tools/scripts/systemtest.py -so ../testsuite/systemtest/procgen/ProGe
[...]
real    0m6.475s
user    0m10.479s
sys     0m4.701s

$ time ./tools/scripts/systemtest.py -so ../testsuite/systemtest_long/procgen/ProGe
[...]
real    0m13.384s
user    1m38.160s
sys     0m6.141s

I also extended systemtest.py to allow passing multiple root dirs, so the total would then be

$ time ./tools/scripts/systemtest.py -so ../testsuite/systemtest/procgen/ProGe ../testsuite/systemtest_long/procgen/ProGe
[...]
real    0m14.477s
user    2m1.638s
sys     0m12.985s

This also makes it a bit easier to see what tests leave garbage files lying around, so I added some cleanup handling while I was at it.

@pjaaskel pjaaskel merged commit 763257e into cpc:main Feb 16, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants