Files
sunnypilot/selfdrive/test/process_replay/test_regen.py
Kacper Rączy 3aa74c28fc 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>
2023-10-05 13:59:00 -07:00

49 lines
1.8 KiB
Python
Executable File

#!/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()