• Victor Stinner's avatar
    bpo-36725: Refactor regrtest multiprocessing code (GH-12961) · 3cde440f
    Victor Stinner authored
    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.
    3cde440f
main.py 22.5 KB