CI: add regen job (#30157)
* Ability to whitelist/blacklist cars in regen_all * Add CI job for regen, running on 2 segments * Run regen_all, not regen * Use coverage run * Add test_regen * Use test_regen in ci test * Add test case names * ONNXCPU = 1 * Add mazda segment * Use RUN_CL * build cl image before running * unset PYTHONWARNINGS * Create regen cache * Replace daemons with processes * Skip ford * Skip mazda * Add comment about commented segments * Update selfdrive/test/process_replay/test_regen.py Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com> * Remove unset pythonwarnings --------- Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>pull/30183/head
parent
29f10fd2aa
commit
3aa74c28fc
3 changed files with 87 additions and 2 deletions
@ -0,0 +1,48 @@ |
||||
#!/usr/bin/env python3 |
||||
|
||||
import unittest |
||||
|
||||
from parameterized import parameterized |
||||
|
||||
from openpilot.selfdrive.test.process_replay.regen import regen_segment |
||||
from openpilot.selfdrive.test.process_replay.process_replay import check_openpilot_enabled, CONFIGS |
||||
from openpilot.selfdrive.test.openpilotci import get_url |
||||
from openpilot.tools.lib.logreader import LogReader |
||||
from openpilot.tools.lib.framereader import FrameReader |
||||
|
||||
EXCLUDED_PROCESSES = {"dmonitoringd", "dmonitoringmodeld"} |
||||
TESTED_SEGMENTS = [ |
||||
("PRIUS_C2", "0982d79ebb0de295|2021-01-04--17-13-21--13"), # TOYOTA PRIUS 2017: NEO, pandaStateDEPRECATED, no peripheralState, sensorEventsDEPRECATED |
||||
# Enable these once regen on CI becomes faster or use them for different tests running controlsd in isolation |
||||
# ("MAZDA_C3", "bd6a637565e91581|2021-10-30--15-14-53--4"), # MAZDA.CX9_2021: TICI, incomplete managerState |
||||
# ("FORD_C3", "54827bf84c38b14f|2023-01-26--21-59-07--4"), # FORD.BRONCO_SPORT_MK1: TICI |
||||
] |
||||
|
||||
|
||||
def ci_setup_data_readers(route, sidx): |
||||
lr = LogReader(get_url(route, sidx, "rlog")) |
||||
# dm disabled |
||||
frs = { |
||||
'roadCameraState': FrameReader(get_url(route, sidx, "fcamera")), |
||||
} |
||||
if next((True for m in lr if m.which() == "wideRoadCameraState"), False): |
||||
frs["wideRoadCameraState"] = FrameReader(get_url(route, sidx, "ecamera")) |
||||
|
||||
return lr, frs |
||||
|
||||
|
||||
class TestRegen(unittest.TestCase): |
||||
@parameterized.expand(TESTED_SEGMENTS) |
||||
def test_engaged(self, case_name, segment): |
||||
tested_procs = [p for p in CONFIGS if p.proc_name not in EXCLUDED_PROCESSES] |
||||
|
||||
route, sidx = segment.rsplit("--", 1) |
||||
lr, frs = ci_setup_data_readers(route, sidx) |
||||
output_logs = regen_segment(lr, frs, processes=tested_procs, disable_tqdm=True) |
||||
|
||||
engaged = check_openpilot_enabled(output_logs) |
||||
self.assertTrue(engaged, f"openpilot not engaged in {case_name}") |
||||
|
||||
|
||||
if __name__=='__main__': |
||||
unittest.main() |
Loading…
Reference in new issue