mirror of
https://github.com/python/cpython.git
synced 2025-08-30 13:38:43 +00:00
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.
This commit is contained in:
parent
87d23a041d
commit
3cde440f20
5 changed files with 207 additions and 154 deletions
|
@ -916,13 +916,13 @@ class ArgsTestCase(BaseTestCase):
|
|||
testname)
|
||||
self.assertEqual(output.splitlines(), all_methods)
|
||||
|
||||
@support.cpython_only
|
||||
def test_crashed(self):
|
||||
# Any code which causes a crash
|
||||
code = 'import faulthandler; faulthandler._sigsegv()'
|
||||
crash_test = self.create_test(name="crash", code=code)
|
||||
ok_test = self.create_test(name="ok")
|
||||
|
||||
tests = [crash_test, ok_test]
|
||||
tests = [crash_test]
|
||||
output = self.run_tests("-j2", *tests, exitcode=2)
|
||||
self.check_executed_tests(output, tests, failed=crash_test,
|
||||
randomize=True)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue