mirror of
https://github.com/PX4/PX4-Autopilot.git
synced 2026-05-27 18:27:05 +08:00
mavsdk_tests: remove waitforgz helper, add sleep
This is an attempt to workaround the gz spawn timeout in CI. Let's just hard-code a sleep before spawning the model.
This commit is contained in:
@@ -9,6 +9,7 @@ import psutil # type: ignore
|
|||||||
import signal
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
|
import time
|
||||||
from logger_helper import color, colorize
|
from logger_helper import color, colorize
|
||||||
import process_helper as ph
|
import process_helper as ph
|
||||||
from typing import Any, Dict, List, NoReturn, TextIO, Optional
|
from typing import Any, Dict, List, NoReturn, TextIO, Optional
|
||||||
@@ -382,14 +383,6 @@ class Tester:
|
|||||||
self.verbose)
|
self.verbose)
|
||||||
self.active_runners.append(gzserver_runner)
|
self.active_runners.append(gzserver_runner)
|
||||||
|
|
||||||
waitforgz_runner = ph.WaitforgzRunner(
|
|
||||||
os.getcwd(),
|
|
||||||
log_dir,
|
|
||||||
test['model'],
|
|
||||||
case,
|
|
||||||
self.verbose)
|
|
||||||
self.active_runners.append(waitforgz_runner)
|
|
||||||
|
|
||||||
gzmodelspawn_runner = ph.GzmodelspawnRunner(
|
gzmodelspawn_runner = ph.GzmodelspawnRunner(
|
||||||
os.getcwd(),
|
os.getcwd(),
|
||||||
log_dir,
|
log_dir,
|
||||||
@@ -428,6 +421,11 @@ class Tester:
|
|||||||
.format(runner.name))
|
.format(runner.name))
|
||||||
break
|
break
|
||||||
|
|
||||||
|
# Workaround to prevent gz not being able to communicate
|
||||||
|
# with gzserver
|
||||||
|
if runner.name == "gzserver":
|
||||||
|
time.sleep(10)
|
||||||
|
|
||||||
if abort:
|
if abort:
|
||||||
self.stop_runners()
|
self.stop_runners()
|
||||||
sys.exit(1)
|
sys.exit(1)
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import os
|
|||||||
import atexit
|
import atexit
|
||||||
import subprocess
|
import subprocess
|
||||||
import threading
|
import threading
|
||||||
import pathlib
|
|
||||||
import errno
|
import errno
|
||||||
from typing import Any, Dict, List, TextIO, Optional
|
from typing import Any, Dict, List, TextIO, Optional
|
||||||
|
|
||||||
@@ -31,7 +30,6 @@ class Runner:
|
|||||||
self.start_time = time.time()
|
self.start_time = time.time()
|
||||||
self.log_dir = log_dir
|
self.log_dir = log_dir
|
||||||
self.log_filename = ""
|
self.log_filename = ""
|
||||||
self.wait_until_complete = False
|
|
||||||
self.stop_thread: Any[threading.Event] = None
|
self.stop_thread: Any[threading.Event] = None
|
||||||
|
|
||||||
def set_log_filename(self, log_filename: str) -> None:
|
def set_log_filename(self, log_filename: str) -> None:
|
||||||
@@ -62,11 +60,6 @@ class Runner:
|
|||||||
self.stop_thread = threading.Event()
|
self.stop_thread = threading.Event()
|
||||||
self.thread = threading.Thread(target=self.process_output)
|
self.thread = threading.Thread(target=self.process_output)
|
||||||
self.thread.start()
|
self.thread.start()
|
||||||
if self.wait_until_complete:
|
|
||||||
timeout_s = 10.0
|
|
||||||
if self.wait(timeout_s) != 0:
|
|
||||||
raise TimeoutError("Command '{}' not completed within {}"
|
|
||||||
.format(self.cmd, timeout_s))
|
|
||||||
|
|
||||||
def process_output(self) -> None:
|
def process_output(self) -> None:
|
||||||
assert self.process.stdout is not None
|
assert self.process.stdout is not None
|
||||||
@@ -211,24 +204,6 @@ class GzserverRunner(Runner):
|
|||||||
self.env[var] = os.environ[var]
|
self.env[var] = os.environ[var]
|
||||||
|
|
||||||
|
|
||||||
class WaitforgzRunner(Runner):
|
|
||||||
def __init__(self,
|
|
||||||
workspace_dir: str,
|
|
||||||
log_dir: str,
|
|
||||||
model: str,
|
|
||||||
case: str,
|
|
||||||
verbose: bool):
|
|
||||||
super().__init__(log_dir, model, case, verbose)
|
|
||||||
self.name = "waitforgz"
|
|
||||||
self.cwd = workspace_dir
|
|
||||||
self.env = {"PATH": os.environ['PATH'],
|
|
||||||
"HOME": os.environ['HOME']}
|
|
||||||
script_dir = pathlib.Path(__file__).parent.absolute()
|
|
||||||
self.cmd = os.path.join(script_dir, "waitforgz.sh")
|
|
||||||
self.args = []
|
|
||||||
self.wait_until_complete = True
|
|
||||||
|
|
||||||
|
|
||||||
class GzmodelspawnRunner(Runner):
|
class GzmodelspawnRunner(Runner):
|
||||||
def __init__(self,
|
def __init__(self,
|
||||||
workspace_dir: str,
|
workspace_dir: str,
|
||||||
@@ -252,7 +227,6 @@ class GzmodelspawnRunner(Runner):
|
|||||||
self.model + "/" + self.model + ".sdf",
|
self.model + "/" + self.model + ".sdf",
|
||||||
"--model-name", self.model,
|
"--model-name", self.model,
|
||||||
"-x", "1.01", "-y", "0.98", "-z", "0.83"]
|
"-x", "1.01", "-y", "0.98", "-z", "0.83"]
|
||||||
self.wait_until_complete = True
|
|
||||||
|
|
||||||
|
|
||||||
class GzclientRunner(Runner):
|
class GzclientRunner(Runner):
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#!/usr/bin/env bash
|
|
||||||
|
|
||||||
while gz stats -d 0 2>&1 | grep -q "An instance of Gazebo is not running."; do
|
|
||||||
echo "Gazebo not running yet ..."
|
|
||||||
done
|
|
||||||
Reference in New Issue
Block a user