raylib screenshots: test onroad (#36369)

* test onroad

* person

* onroad alert

* mid and full

* all

* can do this

* tf

* tf

* clean up
pull/36384/head
Shane Smiskol 6 days ago committed by GitHub
parent 80a8df0643
commit b29b1964ba
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
  1. 75
      selfdrive/ui/tests/test_ui/raylib_screenshots.py

@ -19,6 +19,9 @@ from openpilot.selfdrive.test.helpers import with_processes
from openpilot.selfdrive.selfdrived.alertmanager import set_offroad_alert
from openpilot.system.updated.updated import parse_release_notes
AlertSize = log.SelfdriveState.AlertSize
AlertStatus = log.SelfdriveState.AlertStatus
TEST_DIR = pathlib.Path(__file__).parent
TEST_OUTPUT_DIR = TEST_DIR / "raylib_report"
SCREENSHOTS_DIR = TEST_OUTPUT_DIR / "screenshots"
@ -126,6 +129,71 @@ def setup_experimental_mode_description(click, pm: PubMaster):
click(1200, 280) # expand description for experimental mode
def setup_onroad(click, pm: PubMaster):
ds = messaging.new_message('deviceState')
ds.deviceState.started = True
ps = messaging.new_message('pandaStates', 1)
ps.pandaStates[0].pandaType = log.PandaState.PandaType.dos
ps.pandaStates[0].ignitionLine = True
driverState = messaging.new_message('driverStateV2')
driverState.driverStateV2.leftDriverData.faceOrientation = [0, 0, 0]
for _ in range(5):
pm.send('deviceState', ds)
pm.send('pandaStates', ps)
pm.send('driverStateV2', driverState)
ds.clear_write_flag()
ps.clear_write_flag()
driverState.clear_write_flag()
time.sleep(0.05)
def setup_onroad_sidebar(click, pm: PubMaster):
setup_onroad(click, pm)
click(100, 100) # open sidebar
def setup_onroad_small_alert(click, pm: PubMaster):
setup_onroad(click, pm)
alert = messaging.new_message('selfdriveState')
alert.selfdriveState.alertSize = AlertSize.small
alert.selfdriveState.alertText1 = "Small Alert"
alert.selfdriveState.alertText2 = "This is a small alert"
alert.selfdriveState.alertStatus = AlertStatus.normal
for _ in range(5):
pm.send('selfdriveState', alert)
alert.clear_write_flag()
time.sleep(0.05)
def setup_onroad_medium_alert(click, pm: PubMaster):
setup_onroad(click, pm)
alert = messaging.new_message('selfdriveState')
alert.selfdriveState.alertSize = AlertSize.mid
alert.selfdriveState.alertText1 = "Medium Alert"
alert.selfdriveState.alertText2 = "This is a medium alert"
alert.selfdriveState.alertStatus = AlertStatus.userPrompt
for _ in range(5):
pm.send('selfdriveState', alert)
alert.clear_write_flag()
time.sleep(0.05)
def setup_onroad_full_alert(click, pm: PubMaster):
setup_onroad(click, pm)
alert = messaging.new_message('selfdriveState')
alert.selfdriveState.alertSize = AlertSize.full
alert.selfdriveState.alertText1 = "TAKE CONTROL IMMEDIATELY"
alert.selfdriveState.alertText2 = "Calibration Invalid: Remount Device & Recalibrate"
alert.selfdriveState.alertStatus = AlertStatus.critical
for _ in range(5):
pm.send('selfdriveState', alert)
alert.clear_write_flag()
time.sleep(0.05)
CASES = {
"homescreen": setup_homescreen,
"homescreen_paired": setup_homescreen,
@ -145,6 +213,11 @@ CASES = {
"offroad_alert": setup_offroad_alert,
"confirmation_dialog": setup_confirmation_dialog,
"experimental_mode_description": setup_experimental_mode_description,
"onroad": setup_onroad,
"onroad_sidebar": setup_onroad_sidebar,
"onroad_small_alert": setup_onroad_small_alert,
"onroad_medium_alert": setup_onroad_medium_alert,
"onroad_full_alert": setup_onroad_full_alert,
}
@ -155,7 +228,7 @@ class TestUI:
def setup(self):
# Seed minimal offroad state
self.pm = PubMaster(["deviceState"])
self.pm = PubMaster(["deviceState", "pandaStates", "driverStateV2", "selfdriveState"])
ds = messaging.new_message('deviceState')
ds.deviceState.networkType = log.DeviceState.NetworkType.wifi
for _ in range(5):

Loading…
Cancel
Save