Browse Source

mavsdk_tests: don't stall on timeout

sbg
Julian Oes 5 years ago
parent
commit
0edc2aa334
  1. 13
      test/mavsdk_tests/mavsdk_test_runner.py
  2. 6
      test/mavsdk_tests/process_helper.py

13
test/mavsdk_tests/mavsdk_test_runner.py

@ -415,10 +415,21 @@ class Tester: @@ -415,10 +415,21 @@ class Tester:
self.verbose)
self.active_runners.append(mavsdk_tests_runner)
abort = False
for runner in self.active_runners:
runner.set_log_filename(
self.determine_logfile_path(log_dir, runner.name))
runner.start()
try:
runner.start()
except TimeoutError:
abort = True
print("A timeout happened for runner: {}"
.format(runner.name))
break
if abort:
self.stop_runners()
sys.exit(1)
def stop_runners(self) -> None:
for runner in self.active_runners:

6
test/mavsdk_tests/process_helper.py

@ -8,7 +8,7 @@ import subprocess @@ -8,7 +8,7 @@ import subprocess
import threading
import pathlib
import errno
from typing import Dict, List, TextIO, Optional
from typing import Any, Dict, List, TextIO, Optional
class Runner:
@ -32,6 +32,7 @@ class Runner: @@ -32,6 +32,7 @@ class Runner:
self.log_dir = log_dir
self.log_filename = ""
self.wait_until_complete = False
self.stop_thread: Any[threading.Event] = None
def set_log_filename(self, log_filename: str) -> None:
self.log_filename = log_filename
@ -97,6 +98,9 @@ class Runner: @@ -97,6 +98,9 @@ class Runner:
def stop(self) -> int:
atexit.unregister(self.stop)
if not self.stop_thread:
return 0
self.stop_thread.set()
returncode = self.process.poll()

Loading…
Cancel
Save