mirror of
https://github.com/sunnypilot/sunnypilot.git
synced 2026-02-19 11:13:53 +08:00
* interfaces returns radarinterface old-commit-hash: 9ad1f096bfca3712320f19b1b49aa9e6ac9b68e4 * bump old-commit-hash: 20334a8b257c6037e11d02f2ba7b1f02c59f3240 * get RI from opendbc old-commit-hash: b5f6d0c48c90927926e9dd557130075aeec5edee * stash so far old-commit-hash: 5aa2c842eb152316434c17a661df05bb8af61f47 * new liveTracks message (radard expects and needs RadarData) * this should just work? * whoops * fix that * rm liveTracks from radard pm * fix proceess replay * lol fcw diff, something's not right * actually there's fcw in original route. it's pretty close * no tracks! * fix test_leads * CPU moved across procs * fix not engageable from onroadEvents * bump * fixes * bump to master * radard publishes w/ modelV2 now, so it will always be sent. check valid which radard sets using liveTracks avg freq * fix that (it works!) * combine join * bump * bump * deprecate * why * fix incorrect args * remove cumLagMs from process_replay * update refs
32 lines
1.2 KiB
Python
32 lines
1.2 KiB
Python
import cereal.messaging as messaging
|
|
|
|
from opendbc.car.toyota.values import CAR as TOYOTA
|
|
from openpilot.selfdrive.test.process_replay import replay_process_with_name
|
|
|
|
|
|
class TestLeads:
|
|
def test_radar_fault(self):
|
|
# if there's no radar-related can traffic, radard should either not respond or respond with an error
|
|
# this is tightly coupled with underlying car radar_interface implementation, but it's a good sanity check
|
|
def single_iter_pkg():
|
|
# single iter package, with meaningless cans and empty carState/modelV2
|
|
msgs = []
|
|
for _ in range(500):
|
|
can = messaging.new_message("can", 1)
|
|
cs = messaging.new_message("carState")
|
|
cp = messaging.new_message("carParams")
|
|
msgs.append(can.as_reader())
|
|
msgs.append(cs.as_reader())
|
|
msgs.append(cp.as_reader())
|
|
model = messaging.new_message("modelV2")
|
|
msgs.append(model.as_reader())
|
|
|
|
return msgs
|
|
|
|
msgs = [m for _ in range(3) for m in single_iter_pkg()]
|
|
out = replay_process_with_name("card", msgs, fingerprint=TOYOTA.TOYOTA_COROLLA_TSS2)
|
|
states = [m for m in out if m.which() == "liveTracks"]
|
|
failures = [not state.valid and len(state.liveTracks.errors) for state in states]
|
|
|
|
assert len(states) == 0 or all(failures)
|