|
|
@ -10,17 +10,20 @@ from selfdrive.car.fingerprints import _FINGERPRINTS as FINGERPRINTS |
|
|
|
class TestCanFingerprint(unittest.TestCase): |
|
|
|
class TestCanFingerprint(unittest.TestCase): |
|
|
|
@parameterized.expand([(c, f) for c, f in FINGERPRINTS.items()]) |
|
|
|
@parameterized.expand([(c, f) for c, f in FINGERPRINTS.items()]) |
|
|
|
def test_can_fingerprint(self, car_model, fingerprints): |
|
|
|
def test_can_fingerprint(self, car_model, fingerprints): |
|
|
|
# Tests online fingerprinting function on offline fingerprints |
|
|
|
"""Tests online fingerprinting function on offline fingerprints""" |
|
|
|
|
|
|
|
|
|
|
|
for fingerprint in fingerprints: # can have multiple fingerprints for each platform |
|
|
|
for fingerprint in fingerprints: # can have multiple fingerprints for each platform |
|
|
|
can = messaging.new_message('can', 1) |
|
|
|
can = messaging.new_message('can', 1) |
|
|
|
can.can = [log.CanData(address=address, dat=b'\x00' * length) |
|
|
|
can.can = [log.CanData(address=address, dat=b'\x00' * length, src=src) |
|
|
|
for address, length in fingerprint.items()] |
|
|
|
for address, length in fingerprint.items() for src in (0, 1)] |
|
|
|
|
|
|
|
|
|
|
|
fingerprint_iter = iter([can]) |
|
|
|
fingerprint_iter = iter([can]) |
|
|
|
empty_can = messaging.new_message('can', 0) |
|
|
|
empty_can = messaging.new_message('can', 0) |
|
|
|
car_fingerprint, finger = can_fingerprint(lambda: next(fingerprint_iter, empty_can)) # noqa: B023 |
|
|
|
car_fingerprint, finger = can_fingerprint(lambda: next(fingerprint_iter, empty_can)) # noqa: B023 |
|
|
|
|
|
|
|
|
|
|
|
self.assertEqual(car_fingerprint, car_model) |
|
|
|
self.assertEqual(car_fingerprint, car_model) |
|
|
|
|
|
|
|
self.assertEqual(finger[0], fingerprint) |
|
|
|
|
|
|
|
self.assertEqual(finger[1], fingerprint) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
|
if __name__ == "__main__": |
|
|
|