parent
952def7abf
commit
e7dddaeb7e
3 changed files with 0 additions and 59 deletions
@ -1,57 +0,0 @@ |
||||
import os |
||||
import pytest |
||||
import time |
||||
import subprocess |
||||
|
||||
from cereal import log |
||||
import cereal.messaging as messaging |
||||
from openpilot.common.basedir import BASEDIR |
||||
from openpilot.common.timeout import Timeout |
||||
from openpilot.selfdrive.test.helpers import set_params_enabled |
||||
|
||||
EventName = log.OnroadEvent.EventName |
||||
|
||||
|
||||
@pytest.mark.tici |
||||
def test_time_to_onroad(): |
||||
# launch |
||||
set_params_enabled() |
||||
manager_path = os.path.join(BASEDIR, "system/manager/manager.py") |
||||
proc = subprocess.Popen(["python", manager_path]) |
||||
|
||||
start_time = time.monotonic() |
||||
sm = messaging.SubMaster(['selfdriveState', 'deviceState', 'onroadEvents']) |
||||
try: |
||||
# wait for onroad. timeout assumes panda is up to date |
||||
with Timeout(10, "timed out waiting to go onroad"): |
||||
while not sm['deviceState'].started: |
||||
sm.update(100) |
||||
|
||||
# wait for engageability |
||||
try: |
||||
with Timeout(10, "timed out waiting for engageable"): |
||||
initialized = False |
||||
while True: |
||||
sm.update(100) |
||||
|
||||
if sm.seen['onroadEvents'] and not any(EventName.selfdriveInitializing == e.name for e in sm['onroadEvents']): |
||||
initialized = True |
||||
|
||||
if initialized: |
||||
sm.update(100) |
||||
assert sm['selfdriveState'].engageable, f"events: {sm['onroadEvents']}" |
||||
break |
||||
finally: |
||||
print(f"onroad events: {sm['onroadEvents']}") |
||||
print(f"engageable after {time.monotonic() - start_time:.2f}s") |
||||
|
||||
# once we're enageable, must stay for the next few seconds |
||||
st = time.monotonic() |
||||
while (time.monotonic() - st) < 10.: |
||||
sm.update(100) |
||||
assert sm.all_alive(), sm.alive |
||||
assert sm['selfdriveState'].engageable, f"events: {sm['onroadEvents']}" |
||||
finally: |
||||
proc.terminate() |
||||
if proc.wait(20) is None: |
||||
proc.kill() |
Loading…
Reference in new issue