You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
1.3 KiB
42 lines
1.3 KiB
#!/usr/bin/env python3
|
|
from cereal import car
|
|
import unittest
|
|
|
|
from selfdrive.car.toyota.values import CAR, DBC, TSS2_CAR, ANGLE_CONTROL_CAR, FW_VERSIONS
|
|
|
|
Ecu = car.CarParams.Ecu
|
|
|
|
|
|
class TestToyotaInterfaces(unittest.TestCase):
|
|
def test_angle_car_set(self):
|
|
self.assertTrue(len(ANGLE_CONTROL_CAR - TSS2_CAR) == 0)
|
|
|
|
def test_tss2_dbc(self):
|
|
# We make some assumptions about TSS2 platforms,
|
|
# like looking up certain signals only in this DBC
|
|
for car_model, dbc in DBC.items():
|
|
if car_model in TSS2_CAR:
|
|
self.assertEqual(dbc["pt"], "toyota_nodsu_pt_generated")
|
|
|
|
def test_essential_ecus(self):
|
|
# Asserts standard ECUs exist for each platform
|
|
common_ecus = {Ecu.fwdRadar, Ecu.fwdCamera}
|
|
for car_model, ecus in FW_VERSIONS.items():
|
|
with self.subTest(car_model=car_model):
|
|
present_ecus = {ecu[0] for ecu in ecus}
|
|
missing_ecus = common_ecus - present_ecus
|
|
self.assertEqual(len(missing_ecus), 0)
|
|
|
|
# Some exceptions for other common ECUs
|
|
if car_model not in (CAR.ALPHARD_TSS2,):
|
|
self.assertIn(Ecu.abs, present_ecus)
|
|
|
|
if car_model not in (CAR.MIRAI,):
|
|
self.assertIn(Ecu.engine, present_ecus)
|
|
|
|
if car_model not in (CAR.PRIUS_V, CAR.LEXUS_CTH):
|
|
self.assertIn(Ecu.eps, present_ecus)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|