diff --git a/opendbc_repo/opendbc/safety/tests/test_gm_camera_acc_pedal.py b/opendbc_repo/opendbc/safety/tests/test_gm_camera_acc_pedal.py index 4fbd21cbf8..d972a7eaf7 100644 --- a/opendbc_repo/opendbc/safety/tests/test_gm_camera_acc_pedal.py +++ b/opendbc_repo/opendbc/safety/tests/test_gm_camera_acc_pedal.py @@ -12,7 +12,10 @@ from opendbc.safety.tests.libsafety import libsafety_py class TestGmCameraAccPedal(unittest.TestCase): def setUp(self): - self.safety = libsafety_py.libsafety + self.configure_native(libsafety_py.libsafety) + + def configure_native(self, native): + self.safety = native self.release = self.safety.set_safety_hooks(CarParams.SafetyModel.allOutput, 0) != 0 self.packer = CANPacker(DBC[CAR.CHEVROLET_SILVERADO][Bus.pt]) self.cp = SimpleNamespace(carFingerprint=CAR.CHEVROLET_SILVERADO) diff --git a/opendbc_repo/opendbc/safety/tests/test_gm_cc_pedal.py b/opendbc_repo/opendbc/safety/tests/test_gm_cc_pedal.py index c343431385..470a3f2308 100644 --- a/opendbc_repo/opendbc/safety/tests/test_gm_cc_pedal.py +++ b/opendbc_repo/opendbc/safety/tests/test_gm_cc_pedal.py @@ -17,7 +17,10 @@ def crc(data): class TestGmCcPedal(unittest.TestCase): def setUp(self): - self.safety = libsafety_py.libsafety + self.configure_native(libsafety_py.libsafety) + + def configure_native(self, native): + self.safety = native self.packer = CANPacker('gm_global_a_powertrain_generated') self.init(0xC180) @@ -297,3 +300,24 @@ class TestGmCcPedal(unittest.TestCase): self.safety.set_timer(100001) self.assertFalse(self.safety.safety_tx_hook(self.command(2))) self.assertTrue(self.safety.safety_tx_hook(self.command(2, 0.))) + + +def test_release_interceptor_guards_keep_stock_steering_without_mutating_default_native(): + """Execute the existing physical-traffic guards on a real RELEASE library.""" + from opendbc.safety.tests.test_gm_camera_acc_pedal import TestGmCameraAccPedal + + default, default_path = libsafety_py.libsafety, libsafety_py.libpath + release = libsafety_py.ffi.dlopen(libsafety_py._build_libsafety(release=True)) + volt = TestGmCcPedal(methodName='test_volt_cc_exact_records_and_release_denial') + camera = TestGmCameraAccPedal(methodName='test_exact_profiles_and_stock_without_pedal_or_gear') + try: + volt.configure_native(release) + volt.test_volt_cc_exact_records_and_release_denial() + camera.configure_native(release) + assert camera.release + camera.test_exact_profiles_and_stock_without_pedal_or_gear() + finally: + volt.doCleanups() + camera.doCleanups() + assert libsafety_py.libsafety is default + assert libsafety_py.libpath == default_path diff --git a/prebuilt.json b/prebuilt.json index 4fad1daa9e..1cf40778fa 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "9328db5991b9b00ad2744212ff945b578e270783a2a0c96bc5b054308129338f", "schema_version": 1} +{"protected_inventory_sha256": "efd5f01b16f5629c00da62d3e832b576f70f4a212ffc264ee783c393ed8f5545", "schema_version": 1}