mirror of
https://github.com/firestar5683/StarPilot.git
synced 2026-11-12 23:43:44 +08:00
Avoid unnecessary AOL recovery profile validation
This commit is contained in:
@@ -168,3 +168,26 @@ def test_stock_location_never_retains_intent_through_independent_fault(family, f
|
||||
if expected:
|
||||
assert baseline == (card.aol_transport_feedback.lateral_baseline_ns, card.aol_transport_feedback.lateral_native_ns)
|
||||
|
||||
|
||||
|
||||
@pytest.mark.parametrize('family', ['canfd_radar', 'canfd_lka', 'canfd_lka_alt', 'canfd_camera', 'canfd_ccnc_camera'])
|
||||
def test_healthy_stock_aol_skips_fault_recovery_profile_validation(family):
|
||||
with ExitStack() as cleanup:
|
||||
sd, drive, card, receive, state = stock_family_callers(cleanup, family)
|
||||
for tick in range(2, 5):
|
||||
axis, _, command = drive(tick, observed_state=state, panda_controls_allowed=False, native_request_long=False)
|
||||
assert axis.lateralActive and command.latActive
|
||||
assert receive(10_000_000_000 + tick * 10_000_000, state=state,
|
||||
axis=sd.pm.messages['aolAxisState'], event=sd.pm.messages['onroadEvents'])
|
||||
feedback = card.aol_transport_feedback
|
||||
axis = card.sm['aolAxisState']
|
||||
with mock.patch('openpilot.starpilot.aol.transport_pause.stock_lateral_user_event') as user_profile, \
|
||||
mock.patch('opendbc.car.hyundai.canfd_stock_aol.qualified') as canfd_profile, \
|
||||
mock.patch('opendbc.car.hyundai.canfd_angle_aol.qualified') as angle_profile, \
|
||||
mock.patch('opendbc.car.hyundai.classic_scc_aol.qualified') as classic_profile:
|
||||
assert not feedback._temporary_host_intent_current(card.sm, card.CP, state, axis,
|
||||
int(card.sm.logMonoTime['aolAxisState']), 10_040_000_001, latched=True,
|
||||
producer=card.slc_producer_session)
|
||||
for profile in (user_profile, canfd_profile, angle_profile, classic_profile):
|
||||
profile.assert_not_called()
|
||||
assert card.aol_card_intent.allowed_latch
|
||||
|
||||
@@ -119,7 +119,9 @@ def test_temporary_lag_never_masks_real_fault_or_invalid_proof(fault):
|
||||
elif fault == 'source_age':
|
||||
proof.aolAxisState.sourceCarStateMonoTime -= 30_000_001
|
||||
elif fault == 'cancel':
|
||||
from dataclasses import replace
|
||||
from opendbc.car.structs import car
|
||||
card.aol_card_intent.settings = replace(card.aol_card_intent.settings, cancel_actions=(9, 0, 0))
|
||||
state.buttonEvents = [car.CarState.ButtonEvent(type=car.CarState.ButtonEvent.Type.cancel, pressed=True)]
|
||||
elif fault == 'settings_disabled':
|
||||
from dataclasses import replace
|
||||
|
||||
@@ -531,11 +531,12 @@ class TransportPauseFeedback:
|
||||
|
||||
# PCM-off != AOL toggle: after output withdrawal retain prior intent only for
|
||||
# location faults/matched EPS recovery; native/session/source checks remain.
|
||||
stock_angle = cp.brand == 'hyundai' and angle_qualified(cp, marked_only=True)
|
||||
stock_hkg = cp.brand == 'hyundai' and (stock_angle or stock_canfd_qualified(cp, marked_only=True) or
|
||||
recovering_user = bool((location_fault or eps_recovery) and users)
|
||||
stock_angle = recovering_user and cp.brand == 'hyundai' and angle_qualified(cp, marked_only=True)
|
||||
stock_hkg = recovering_user and cp.brand == 'hyundai' and (stock_angle or stock_canfd_qualified(cp, marked_only=True) or
|
||||
stock_classic_qualified(cp, marked_only=True))
|
||||
stock_user = stock_lateral_user_event(cp)
|
||||
stock_temporary_user = bool((location_fault or eps_recovery) and (stock_hkg or cp.brand == 'chrysler' and chrysler_qualified(cp, marked_only=True) or
|
||||
stock_user = stock_lateral_user_event(cp) if recovering_user else None
|
||||
stock_temporary_user = bool(recovering_user and (stock_hkg or cp.brand == 'chrysler' and chrysler_qualified(cp, marked_only=True) or
|
||||
cp.brand == 'ford' and ford_qualified(cp, marked_only=True) or cp.brand == 'nissan' and nissan_qualified(cp, marked_only=True)
|
||||
or cp.brand == 'subaru' and subaru_qualified(cp, marked_only=True)
|
||||
or cp.brand == 'mazda' and mazda_qualified(cp, marked_only=True)
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
{"protected_inventory_sha256": "d883a2889150d0426b0cd382349553be92033bbb3017d381ffe7fe7efa5661b5", "schema_version": 1}
|
||||
{"protected_inventory_sha256": "1d1ba61d19622cec24db89557681495ff4c3743205d975e95c8a12607e592957", "schema_version": 1}
|
||||
|
||||
Reference in New Issue
Block a user