[Python-Dev] Making "-j0" the default setting for the test suite?

Nick Coghlan ncoghlan at gmail.com
Tue Jan 30 21:23:21 EST 2018


On 30 January 2018 at 02:39, Victor Stinner <victor.stinner at gmail.com> wrote:
>> * "-j1" would explicitly turn off multiprocessing
>
> Running tests "sequentially" but run them in one subprocess per test
> file is interesting for tests isolation. Runing tests one by one
> reduces the risk of triggering a race condition (test only failing
> when the system load is high).
>
> -jN was always documented as "use multiprocessing".
>
> Maybe we need a new option to explicitly disable multiprocessing instead?
>
>    vstinner at apu$ ./python -m test
>    Run tests sequentially
>
> vs
>
>    vstinner at apu$ ./python -m test -j1
>    Run tests in parallel using 1 child processes

Hmm, that's a good point.

Maybe a less intrusive alternative would be akin to what we did with
the configure script for non-optimised builds: when we display the
total duration at the end, append a note in the serial execution case.

Something like:

    Total duration: 16 minutes 33 seconds (serial execution, pass
'-j0' for parallel execution)

Such a change would be a safe way to nudge new contributors towards
"./python -m test -j0" for faster local testing, without risking
backwards compatibility issues with existing test suite invocations in
other contexts.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Python-Dev mailing list