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.
27 lines
912 B
27 lines
912 B
#!/usr/bin/env python3
|
|
from parameterized import parameterized
|
|
import unittest
|
|
|
|
from openpilot.selfdrive.car.gm.values import CAMERA_ACC_CAR, CAR, FINGERPRINTS, GM_RX_OFFSET
|
|
|
|
CAMERA_DIAGNOSTIC_ADDRESS = 0x24b
|
|
|
|
|
|
class TestGMFingerprint(unittest.TestCase):
|
|
@parameterized.expand(FINGERPRINTS.items())
|
|
def test_can_fingerprints(self, car_model, fingerprints):
|
|
self.assertGreater(len(fingerprints), 0)
|
|
|
|
# Trailblazer is in dashcam
|
|
if car_model != CAR.TRAILBLAZER:
|
|
self.assertTrue(all(len(finger) for finger in fingerprints))
|
|
|
|
# The camera can sometimes be communicating on startup
|
|
if car_model in CAMERA_ACC_CAR - {CAR.TRAILBLAZER}:
|
|
for finger in fingerprints:
|
|
for required_addr in (CAMERA_DIAGNOSTIC_ADDRESS, CAMERA_DIAGNOSTIC_ADDRESS + GM_RX_OFFSET):
|
|
self.assertEqual(finger.get(required_addr), 8, required_addr)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
unittest.main()
|
|
|