From 6dff9ba47f41325fb0b5b0ec8dd14c4ffb2d4e15 Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Thu, 22 Oct 2026 21:28:13 -0500 Subject: [PATCH] Test unsupported Nissan AOL safety words --- .../opendbc/safety/tests/test_nissan.py | 35 +++++++++++++++++++ prebuilt.json | 2 +- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/opendbc_repo/opendbc/safety/tests/test_nissan.py b/opendbc_repo/opendbc/safety/tests/test_nissan.py index db03f61534..4cca2d4e71 100755 --- a/opendbc_repo/opendbc/safety/tests/test_nissan.py +++ b/opendbc_repo/opendbc/safety/tests/test_nissan.py @@ -99,5 +99,40 @@ class TestNissanLeafSafety(TestNissanSafety): pass +class TestNissanUnsupportedAolProfile(unittest.TestCase): + def test_unsupported_words_deny_every_nissan_transmit(self): + safety = common.libsafety_py.libsafety + packer = common.CANPackerSafety("nissan_x_trail_2017_generated") + cancel = packer.make_can_msg_safety("CRUISE_THROTTLE", 2, {"CANCEL_BUTTON": 1}) + hud = common.make_msg(0, 0x2B1) + try: + safety.set_alternative_experience(0) + self.assertEqual(safety.set_safety_hooks(CarParams.SafetyModel.nissan, 0), 0) + self.assertTrue(safety.safety_tx_hook(cancel)) + self.assertTrue(safety.safety_tx_hook(hud)) + for param in (2, 3, 5, 0xFFFF): + with self.subTest(param=param): + safety.set_alternative_experience(32) + self.assertEqual(safety.set_safety_hooks(CarParams.SafetyModel.nissan, param), 0) + safety.init_tests() + safety.set_controls_allowed(True) + safety.set_aol_test_heartbeat(True) + safety.aol_set_host_request(3) + self.assertEqual(safety.aol_get_permission_mask(), 0) + self.assertFalse(safety.safety_tx_hook(cancel)) + self.assertFalse(safety.safety_tx_hook(hud)) + for addr, bus, length in ((0x169, 0, 8), (0x2B1, 0, 8), (0x4CC, 0, 8), + (0x20B, 2, 6), (0x20B, 1, 6), (0x280, 2, 8)): + self.assertFalse(safety.safety_tx_hook(common.make_msg(bus, addr, length))) + # Leaving the unsupported profile restores the ordinary TX catalog. + safety.set_alternative_experience(0) + self.assertEqual(safety.set_safety_hooks(CarParams.SafetyModel.nissan, 0), 0) + self.assertTrue(safety.safety_tx_hook(cancel)) + self.assertTrue(safety.safety_tx_hook(hud)) + finally: + safety.set_alternative_experience(0) + safety.set_safety_hooks(CarParams.SafetyModel.noOutput, 0) + + if __name__ == "__main__": unittest.main() diff --git a/prebuilt.json b/prebuilt.json index f1c4bc61ad..e46fec2722 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "42fc1f2e5fa03b715453bd816ac12bd7d82e88747c87f2bac2b229f4f1d134ba", "schema_version": 1} +{"protected_inventory_sha256": "bc73128f64375aeaa2cc25116f849afc41ab04877d790ab3762b558df33d8743", "schema_version": 1}