A bunch of people has helped out improving running the test suite in parallel
(refs: nodejs/node#4476). What left to be done now is to roll it out in CI. The tricky part here is that passing -j $(prtconf stuff) is that its not cross platform and is plain wrong on some systems (smartos). Passing -J to test.py won't work either since it uses pythons multiprocessing.cpu_count() which similar to /proc/cpu will be way off on some os'es (hi, smartos).
My idea was that we could start rolling out the environment variable JOBS= which would reflect the amount of parallel threads we want a slave to use. If this is found in Makefile (or vcbuild), we pass it to -j $JOBS; otherwise we move on as usual (no -j).
Thoughts? Downsides?
Edit: elaborating on -J in python.
A bunch of people has helped out improving running the test suite in parallel
(refs: nodejs/node#4476). What left to be done now is to roll it out in CI. The tricky part here is that passing
-j $(prtconf stuff)is that its not cross platform and is plain wrong on some systems (smartos). Passing-Jtotest.pywon't work either since it uses pythonsmultiprocessing.cpu_count()which similar to/proc/cpuwill be way off on some os'es (hi, smartos).My idea was that we could start rolling out the environment variable
JOBS=which would reflect the amount of parallel threads we want a slave to use. If this is found inMakefile(orvcbuild), we pass it to-j $JOBS; otherwise we move on as usual (no-j).Thoughts? Downsides?
Edit: elaborating on
-Jin python.