message: test: kill process group to avoid dangling processes
diff: @@ -19,6 +19,7 @@ import datetime
  import os
  import time
  import shutil
  +import signal
  import subprocess
  import sys
  import tempfile
  @@ -546,9 +547,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
  - # This will be a no-op unless failfast is True in which case there may be dangling
  - # processes which need to be killed.
  - job_queue.kill_and_join()
  + # Clean up dangling processes if any. This may only happen with --failfast option.
  + # Killing the process group will also terminate the current process but that is
  + # not an issue
  + if len(job_queue.jobs):
  + os.killpg(os.getpgid(0), signal.SIGKILL)
  sys.exit(not all_passed)
  @@ -645,16 +648,6 @@ class TestHandler:
  print('.', end='', flush=True)
  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():
  def __init__(self, name, status, time):
  