From 2852e61e40d086bb147b4424fdb8c722521e18b0 Mon Sep 17 00:00:00 2001 From: Hoang Bui <47828508+bongbui321@users.noreply.github.com> Date: Fri, 2 Feb 2024 15:06:05 -0500 Subject: [PATCH] Fix self.started value pass in metadrive test (#31153) * fix value pass * fix test --------- Co-authored-by: Justin Newberry old-commit-hash: 71236204bb78d64feb3d46680176dfb37741dc5d --- tools/sim/bridge/common.py | 8 ++++---- tools/sim/tests/test_metadrive_bridge.py | 3 +-- tools/sim/tests/test_sim_bridge.py | 5 ++--- 3 files changed, 7 insertions(+), 9 deletions(-) diff --git a/tools/sim/bridge/common.py b/tools/sim/bridge/common.py index bdd53852c0..91ab0b6f07 100644 --- a/tools/sim/bridge/common.py +++ b/tools/sim/bridge/common.py @@ -2,7 +2,7 @@ import signal import threading import functools -from multiprocessing import Process, Queue +from multiprocessing import Process, Queue, Value from abc import ABC, abstractmethod from typing import Optional @@ -39,7 +39,7 @@ class SimulatorBridge(ABC): self._exit_event = threading.Event() self._threads = [] self._keep_alive = True - self.started = False + self.started = Value('i', False) signal.signal(signal.SIGTERM, self._on_shutdown) self._exit = threading.Event() self.simulator_state = SimulatorState() @@ -61,7 +61,7 @@ class SimulatorBridge(ABC): self.close() def close(self): - self.started = False + self.started.value = False self._exit_event.set() if self.world is not None: @@ -181,6 +181,6 @@ Ignition: {self.simulator_state.ignition} Engaged: {self.simulator_state.is_enga if self.rk.frame % 25 == 0: self.print_status() - self.started = True + self.started.value = True self.rk.keep_time() diff --git a/tools/sim/tests/test_metadrive_bridge.py b/tools/sim/tests/test_metadrive_bridge.py index 4d784956d2..6cb8e1465e 100755 --- a/tools/sim/tests/test_metadrive_bridge.py +++ b/tools/sim/tests/test_metadrive_bridge.py @@ -2,14 +2,13 @@ import pytest import unittest -from openpilot.tools.sim.run_bridge import parse_args from openpilot.tools.sim.bridge.metadrive.metadrive_bridge import MetaDriveBridge from openpilot.tools.sim.tests.test_sim_bridge import TestSimBridgeBase @pytest.mark.slow class TestMetaDriveBridge(TestSimBridgeBase): def create_bridge(self): - return MetaDriveBridge(parse_args([])) + return MetaDriveBridge(False, False) if __name__ == "__main__": diff --git a/tools/sim/tests/test_sim_bridge.py b/tools/sim/tests/test_sim_bridge.py index 850fd83bac..504914c562 100644 --- a/tools/sim/tests/test_sim_bridge.py +++ b/tools/sim/tests/test_sim_bridge.py @@ -3,7 +3,7 @@ import subprocess import time import unittest -from multiprocessing import Queue, Value +from multiprocessing import Queue from cereal import messaging from openpilot.common.basedir import BASEDIR @@ -27,7 +27,6 @@ class TestSimBridgeBase(unittest.TestCase): sm = messaging.SubMaster(['controlsState', 'onroadEvents', 'managerState']) q = Queue() bridge = self.create_bridge() - bridge.started = Value('b', False) p_bridge = bridge.run(q, retries=10) self.processes.append(p_bridge) @@ -35,7 +34,7 @@ class TestSimBridgeBase(unittest.TestCase): # Wait for bridge to startup start_waiting = time.monotonic() - while not bridge.started and time.monotonic() < start_waiting + max_time_per_step: + while not bridge.started.value and time.monotonic() < start_waiting + max_time_per_step: time.sleep(0.1) self.assertEqual(p_bridge.exitcode, None, f"Bridge process should be running, but exited with code {p_bridge.exitcode}")