message: test: Repair failfast option for test runner
diff: @@ -529,8 +529,11 @@ def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage=
  max_len_name = len(max(test_list, key=len))
  test_count = len(test_list)
  + all_passed = True
  i = 0
  while i < test_count:
  + if failfast and not all_passed:
  + break
  for test_result, testdir, stdout, stderr in job_queue.get_next():
  test_results.append(test_result)
  i += 1
  @@ -540,6 +543,7 @@ def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage=
  elif test_result.status == "Skipped":
  logging.debug("%s skipped" % (done_str))
  else:
  + all_passed = False
  print("%s failed, Duration: %s s\n" % (done_str, test_result.time))
  print(BOLD[1] + 'stdout:\n' + BOLD[0] + stdout + '\n')
  print(BOLD[1] + 'stderr:\n' + BOLD[0] + stderr + '\n')
  @@ -573,7 +577,7 @@ def run_tests(*, test_list, src_dir, build_dir, tmpdir, jobs=1, enable_coverage=
  if not os.listdir(tmpdir):
  os.rmdir(tmpdir)
  - all_passed = all(map(lambda test_result: test_result.was_successful, test_results)) and coverage_passed
  + all_passed = all_passed and coverage_passed
  # 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
  