mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-02-09 10:43:19 -05:00
test: kill process group to avoid dangling processes
This commit is contained in:
parent
de5512e28d
commit
451b96f7d2
1 changed files with 6 additions and 13 deletions
|
@ -19,6 +19,7 @@ import datetime
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
import shutil
|
import shutil
|
||||||
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import tempfile
|
import tempfile
|
||||||
|
@ -548,9 +549,11 @@ def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage=
|
||||||
|
|
||||||
all_passed = all(map(lambda test_result: test_result.was_successful, test_results)) and coverage_passed
|
all_passed = all(map(lambda test_result: test_result.was_successful, test_results)) and coverage_passed
|
||||||
|
|
||||||
# This will be a no-op unless failfast is True in which case there may be dangling
|
# Clean up dangling processes if any. This may only happen with --failfast option.
|
||||||
# processes which need to be killed.
|
# Killing the process group will also terminate the current process but that is
|
||||||
job_queue.kill_and_join()
|
# not an issue
|
||||||
|
if len(job_queue.jobs):
|
||||||
|
os.killpg(os.getpgid(0), signal.SIGKILL)
|
||||||
|
|
||||||
sys.exit(not all_passed)
|
sys.exit(not all_passed)
|
||||||
|
|
||||||
|
@ -647,16 +650,6 @@ class TestHandler:
|
||||||
print('.', end='', flush=True)
|
print('.', end='', flush=True)
|
||||||
dot_count += 1
|
dot_count += 1
|
||||||
|
|
||||||
def kill_and_join(self):
|
|
||||||
"""Send SIGKILL to all jobs and block until all have ended."""
|
|
||||||
procs = [i[2] for i in self.jobs]
|
|
||||||
|
|
||||||
for proc in procs:
|
|
||||||
proc.kill()
|
|
||||||
|
|
||||||
for proc in procs:
|
|
||||||
proc.wait()
|
|
||||||
|
|
||||||
|
|
||||||
class TestResult():
|
class TestResult():
|
||||||
def __init__(self, name, status, time):
|
def __init__(self, name, status, time):
|
||||||
|
|
Loading…
Add table
Reference in a new issue