diff --git a/selfdrive/selfdrived/tests/test_alertmanager.py b/selfdrive/selfdrived/tests/test_alertmanager.py index b9a6c9d0a67c34..030b7d4515c2f2 100644 --- a/selfdrive/selfdrived/tests/test_alertmanager.py +++ b/selfdrive/selfdrived/tests/test_alertmanager.py @@ -11,7 +11,6 @@ def test_duration(self): Enforce that an alert lasts for max(alert duration, duration the alert is added) """ for duration in range(1, 100): - print('duration', duration) alert = None while not isinstance(alert, Alert): event = random.choice([e for e in EVENTS.values() if len(e)]) @@ -19,47 +18,41 @@ def test_duration(self): alert.duration = duration + # check two cases: + # - alert is added to AM for <= the alert's duration + # - alert is added to AM for > alert's duration + for greater in (True, False): + if greater: + add_duration = duration + random.randint(1, 10) + else: + add_duration = random.randint(1, duration) + show_duration = max(duration, add_duration) + + AM = AlertManager() + for frame in range(duration+10): + if frame < add_duration: + AM.add_many(frame, [alert, ]) + AM.process_alerts(frame, set()) + + shown = AM.current_alert != EmptyAlert + should_show = frame <= show_duration + assert shown == should_show, f"{frame=} {add_duration=} {duration=}" + # check one case: # - if alert is re-added to AM before it ends the duration is extended if duration > 1: AM = AlertManager() show_duration = duration * 2 for frame in range(duration * 2 + 10): - print(frame) if frame == 0: AM.add_many(frame, [alert, ]) - print('added!') if frame == duration: # add alert one frame before it ends assert AM.current_alert == alert AM.add_many(frame, [alert, ]) - print('added!') AM.process_alerts(frame, set()) - print('alert', AM.current_alert) shown = AM.current_alert != EmptyAlert should_show = frame <= show_duration - print('shown', shown, 'should_show', should_show) - print() assert shown == should_show, f"{frame=} {duration=}" - - # # check two cases: - # # - alert is added to AM for <= the alert's duration - # # - alert is added to AM for > alert's duration - # for greater in (True, False): - # if greater: - # add_duration = duration + random.randint(1, 10) - # else: - # add_duration = random.randint(1, duration) - # show_duration = max(duration, add_duration) - # - # AM = AlertManager() - # for frame in range(duration+10): - # if frame < add_duration: - # AM.add_many(frame, [alert, ]) - # AM.process_alerts(frame, set()) - # - # shown = AM.current_alert != EmptyAlert - # should_show = frame <= show_duration - # assert shown == should_show, f"{frame=} {add_duration=} {duration=}"