]> granicus.if.org Git - python/commit
bpo-36725: Refactor regrtest multiprocessing code (GH-12961)
authorVictor Stinner <vstinner@redhat.com>
Fri, 26 Apr 2019 06:40:25 +0000 (08:40 +0200)
committerGitHub <noreply@github.com>
Fri, 26 Apr 2019 06:40:25 +0000 (08:40 +0200)
commit3cde440f20a9db75fb2c4e65e8e4d04a53216a2d
treec867159d768e27d5c92bd7dc4bef8d749255baa6
parent87d23a041d9efb743c5680ac23305ddddf300e51
bpo-36725: Refactor regrtest multiprocessing code (GH-12961)

Rewrite run_tests_multiprocess() function as a new MultiprocessRunner
class with multiple methods to better report errors and stop
immediately when needed.

Changes:

* Worker processes are now killed immediately if tests are
  interrupted or if a test does crash (CHILD_ERROR): worker
  processes are killed.
* Rewrite how errors in a worker thread are reported to
  the main thread. No longer ignore BaseException or parsing errors
  silently.
* Remove 'finished' variable: use worker.is_alive() instead
* Always compute omitted tests. Add Regrtest.get_executed() method.
Lib/test/libregrtest/main.py
Lib/test/libregrtest/runtest.py
Lib/test/libregrtest/runtest_mp.py
Lib/test/test_regrtest.py
Misc/NEWS.d/next/Tests/2019-04-26-04-12-29.bpo-36725.B8-ghi.rst [new file with mode: 0644]