|
|
@ -6,6 +6,7 @@ import platform |
|
|
|
from collections import OrderedDict |
|
|
|
from collections import OrderedDict |
|
|
|
from dataclasses import dataclass, field |
|
|
|
from dataclasses import dataclass, field |
|
|
|
from typing import Dict, List, Optional, Callable |
|
|
|
from typing import Dict, List, Optional, Callable |
|
|
|
|
|
|
|
from tqdm import tqdm |
|
|
|
|
|
|
|
|
|
|
|
import cereal.messaging as messaging |
|
|
|
import cereal.messaging as messaging |
|
|
|
from cereal import car |
|
|
|
from cereal import car |
|
|
@ -340,9 +341,9 @@ def replay_process_with_name(name, lr, *args, **kwargs): |
|
|
|
return replay_process(cfg, lr, *args, **kwargs) |
|
|
|
return replay_process(cfg, lr, *args, **kwargs) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def replay_process(cfg, lr, fingerprint=None, return_all_logs=False): |
|
|
|
def replay_process(cfg, lr, fingerprint=None, return_all_logs=False, disable_progress=False): |
|
|
|
all_msgs = list(lr) |
|
|
|
all_msgs = list(lr) |
|
|
|
process_logs = _replay_single_process(cfg, all_msgs, fingerprint) |
|
|
|
process_logs = _replay_single_process(cfg, all_msgs, fingerprint, disable_progress) |
|
|
|
|
|
|
|
|
|
|
|
if return_all_logs: |
|
|
|
if return_all_logs: |
|
|
|
keys = set(cfg.subs) |
|
|
|
keys = set(cfg.subs) |
|
|
@ -356,7 +357,7 @@ def replay_process(cfg, lr, fingerprint=None, return_all_logs=False): |
|
|
|
return log_msgs |
|
|
|
return log_msgs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _replay_single_process(cfg, lr, fingerprint): |
|
|
|
def _replay_single_process(cfg, lr, fingerprint, disable_progress): |
|
|
|
with OpenpilotPrefix(): |
|
|
|
with OpenpilotPrefix(): |
|
|
|
controlsState = None |
|
|
|
controlsState = None |
|
|
|
initialized = False |
|
|
|
initialized = False |
|
|
@ -404,7 +405,7 @@ def _replay_single_process(cfg, lr, fingerprint): |
|
|
|
|
|
|
|
|
|
|
|
# Do the replay |
|
|
|
# Do the replay |
|
|
|
cnt = 0 |
|
|
|
cnt = 0 |
|
|
|
for msg in pub_msgs: |
|
|
|
for msg in tqdm(pub_msgs, disable=disable_progress): |
|
|
|
with Timeout(cfg.timeout, error_msg=f"timed out testing process {repr(cfg.proc_name)}, {cnt}/{len(pub_msgs)} msgs done"): |
|
|
|
with Timeout(cfg.timeout, error_msg=f"timed out testing process {repr(cfg.proc_name)}, {cnt}/{len(pub_msgs)} msgs done"): |
|
|
|
resp_sockets, end_of_cycle = cfg.subs, True |
|
|
|
resp_sockets, end_of_cycle = cfg.subs, True |
|
|
|
if cfg.should_recv_callback is not None: |
|
|
|
if cfg.should_recv_callback is not None: |
|
|
|