diff --git a/selfdrive/test/process_replay/process_replay.py b/selfdrive/test/process_replay/process_replay.py index 9a2a161562..4691dcb402 100755 --- a/selfdrive/test/process_replay/process_replay.py +++ b/selfdrive/test/process_replay/process_replay.py @@ -493,3 +493,14 @@ def cpp_replay_process(cfg, lr, fingerprint=None): managed_processes[cfg.proc_name].stop() return log_msgs + + +def check_enabled(msgs): + for msg in msgs: + if msg.which() == "carParams": + if msg.carParams.notCar: + return True + elif msg.which() == "controlsState": + if msg.controlsState.active: + return True + return False diff --git a/selfdrive/test/process_replay/regen.py b/selfdrive/test/process_replay/regen.py index 475da14b2f..4374cf9905 100755 --- a/selfdrive/test/process_replay/regen.py +++ b/selfdrive/test/process_replay/regen.py @@ -16,7 +16,7 @@ from common.transformations.camera import eon_f_frame_size, eon_d_frame_size, ti from selfdrive.car.fingerprints import FW_VERSIONS from selfdrive.manager.process import ensure_running from selfdrive.manager.process_config import managed_processes -from selfdrive.test.process_replay.process_replay import setup_env +from selfdrive.test.process_replay.process_replay import setup_env, check_enabled from selfdrive.test.update_ci_routes import upload_route from tools.lib.route import Route from tools.lib.framereader import FrameReader @@ -151,7 +151,7 @@ def replay_cameras(lr, frs): frames = None if fr is not None: - print(f"Decomressing frames {s}") + print(f"Decompressing frames {s}") frames = [] for i in tqdm(range(fr.frame_count)): img = fr.get(i, pix_fmt='yuv420p')[0] @@ -242,8 +242,13 @@ def regen_segment(lr, frs=None, outdir=FAKEDATA): del vs - r = params.get("CurrentRoute", encoding='utf-8') - return os.path.join(outdir, r + "--0") + segment = params.get("CurrentRoute", encoding='utf-8') + "--0" + seg_path = os.path.join(outdir, segment) + # check to make sure openpilot is engaged in the route + if not check_enabled(LogReader(os.path.join(seg_path, "rlog.bz2"))): + raise Exception(f"Route never enabled: {segment}") + + return seg_path def regen_and_save(route, sidx, upload=False, use_route_meta=False): diff --git a/selfdrive/test/process_replay/test_processes.py b/selfdrive/test/process_replay/test_processes.py index 409f2f1a85..d29183f1b5 100755 --- a/selfdrive/test/process_replay/test_processes.py +++ b/selfdrive/test/process_replay/test_processes.py @@ -7,7 +7,7 @@ from typing import Any from selfdrive.car.car_helpers import interface_names from selfdrive.test.openpilotci import get_url from selfdrive.test.process_replay.compare_logs import compare_logs -from selfdrive.test.process_replay.process_replay import CONFIGS, replay_process +from selfdrive.test.process_replay.process_replay import CONFIGS, replay_process, check_enabled from tools.lib.logreader import LogReader @@ -68,14 +68,7 @@ def test_process(cfg, lr, cmp_log_fn, ignore_fields=None, ignore_msgs=None): # check to make sure openpilot is engaged in the route if cfg.proc_name == "controlsd": - for msg in log_msgs: - if msg.which() == "carParams": - if msg.carParams.notCar: - break - if msg.which() == "controlsState": - if msg.controlsState.active: - break - else: + if not check_enabled(log_msgs): segment = cmp_log_fn.split("/")[-1].split("_")[0] raise Exception(f"Route never enabled: {segment}")