From 9e08f0b1bbba138fa7cb1cd5dce8b0e208e28a67 Mon Sep 17 00:00:00 2001 From: Dom <168790843+firestar5683@users.noreply.github.com> Date: Thu, 22 Oct 2026 23:45:07 -0500 Subject: [PATCH] Align GM startup tests with retained lateral intent --- .../aol/tests/test_gm_startup_main.py | 26 ++++++++++++++----- prebuilt.json | 2 +- 2 files changed, 21 insertions(+), 7 deletions(-) diff --git a/openpilot/starpilot/aol/tests/test_gm_startup_main.py b/openpilot/starpilot/aol/tests/test_gm_startup_main.py index 2fc843c5c8..ea89907e03 100644 --- a/openpilot/starpilot/aol/tests/test_gm_startup_main.py +++ b/openpilot/starpilot/aol/tests/test_gm_startup_main.py @@ -133,7 +133,8 @@ def test_cold_parser_main_readiness_then_actual_commands_without_main_edge(index selected.aol_card_intent.update(cs, fault_active=disarm, now_ns=now) selected.observe_aol_calibration(cs, now, False) allowed, pause_lat, pause_long = selected.aol_card_intent.output(cs) - assert allowed == (main and not incomplete) + assert allowed == main # Readiness pauses output, not the driver's MAIN intent. + assert (pause_lat, pause_long) == (incomplete, incomplete) assert not selected.aol_card_intent._main_cycle_required intent = IntentState(selected.slc_producer_session, tick + 1, now, now, now + 30_000_000, allowed, pause_lat, pause_long, True, allowed) @@ -224,11 +225,11 @@ def test_all_actual_gm_configuration_policies_cold_main_then_critical_recovery() events.add(EventName.calibrationIncomplete) owner.update(cs, fault_active=False) owner.observe_calibration(cs, events=events.to_msg()) - assert not owner.output(cs)[0] and not owner._calibration_rearm_required + assert owner.output(cs) == (True, True, True) and not owner._calibration_rearm_required for _ in range(10): owner.update(cs, fault_active=None) owner.observe_calibration(cs, events=None) # onroadEvents publishes sparsely. - assert not owner.output(cs)[0] and not owner._calibration_rearm_required + assert owner.output(cs) == (True, True, True) and not owner._calibration_rearm_required owner.update(cs, fault_active=False) owner.observe_calibration(cs, events=[]) assert owner.output(cs)[0] and not owner.startup_calibration_pending @@ -253,7 +254,8 @@ def test_all_actual_gm_configuration_policies_cold_main_then_critical_recovery() @pytest.mark.parametrize('fault', ['calibrationInvalid', 'calibrationRecalibrating', 'controlsMismatch', 'processNotRunning']) -def test_cold_mixed_or_critical_fault_never_uses_readiness_exception(fault): +@pytest.mark.parametrize('immediate', [False, True]) +def test_cold_soft_warning_retains_intent_but_immediate_fault_never_does(fault, immediate): from openpilot.starpilot.car.gm.aol import intent_disarming_fault cp = factory_params(alpha=False) cs = structs.CarState(canValid=True, gearShifter='drive') @@ -261,7 +263,19 @@ def test_cold_mixed_or_critical_fault_never_uses_readiness_exception(fault): events = Events() events.add(EventName.calibrationIncomplete) events.add(getattr(EventName, fault)) - assert intent_disarming_fault(cp, events.to_msg(), cs, startup_calibration_pending=True) + messages = events.to_msg() + if immediate: + messages[-1].immediateDisable = True + expected_disarm = immediate or fault == 'controlsMismatch' + assert intent_disarming_fault(cp, messages, cs, startup_calibration_pending=True) == expected_disarm + with OpenpilotPrefix(): + params = Params() + params.put_bool('AlwaysOnLateral', True, block=True) + owner = create_intent(cp, read_settings(params), policy_for(cp)) + owner.update(cs, fault_active=expected_disarm) + owner.observe_calibration(cs, events=messages) + assert owner.output(cs) == (not expected_disarm, True, True) + assert owner._main_cycle_required == expected_disarm def test_explicit_off_stays_off_and_gm_main_mapping_follows_physical_level(): @@ -345,7 +359,7 @@ def test_cold_native_transport_reset_is_not_a_readiness_recovery(): events.add(EventName.calibrationIncomplete) owner.update(cs, fault_active=False) owner.observe_calibration(cs, events=events.to_msg()) - assert not owner.output(cs)[0] + assert owner.output(cs) == (True, True, True) owner.update(cs, fault_active=True) # Existing Card transport-reset result. owner.observe_calibration(cs, events=events.to_msg()) owner.update(cs, fault_active=False) diff --git a/prebuilt.json b/prebuilt.json index 9211b9dd86..b3fdd5cafa 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "d911846587235475eedf79e358bdd25e1612eb5069409987b65312768270d74a", "schema_version": 1} +{"protected_inventory_sha256": "9ec33c166d80f04fccdaee9a917679f69742ad6af0480f84bcb3cb451673121e", "schema_version": 1}