mirror of
https://github.com/dragonpilot/dragonpilot.git
synced 2026-06-23 15:02:06 +08:00
process replay: save logs to folder (#24509)
* save logs to folder for proc replay * use fakedata dir * fix * only once and where needed
This commit is contained in:
@@ -25,6 +25,7 @@ NUMPY_TOLERANCE = 1e-7
|
||||
CI = "CI" in os.environ
|
||||
TIMEOUT = 15
|
||||
PROC_REPLAY_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
FAKEDATA = os.path.join(PROC_REPLAY_DIR, "fakedata/")
|
||||
|
||||
ProcessConfig = namedtuple('ProcessConfig', ['proc_name', 'pub_sub', 'ignore', 'init_callback', 'should_recv_callback', 'tolerance', 'fake_pubsubmaster', 'submaster_config'], defaults=({},))
|
||||
|
||||
|
||||
@@ -16,17 +16,13 @@ from common.transformations.camera import eon_f_frame_size, eon_d_frame_size, ti
|
||||
from selfdrive.car.fingerprints import FW_VERSIONS
|
||||
from selfdrive.manager.process import ensure_running
|
||||
from selfdrive.manager.process_config import managed_processes
|
||||
from selfdrive.test.process_replay.process_replay import setup_env, check_enabled
|
||||
from selfdrive.test.process_replay.process_replay import FAKEDATA, setup_env, check_enabled
|
||||
from selfdrive.test.update_ci_routes import upload_route
|
||||
from tools.lib.route import Route
|
||||
from tools.lib.framereader import FrameReader
|
||||
from tools.lib.logreader import LogReader
|
||||
|
||||
|
||||
process_replay_dir = os.path.dirname(os.path.abspath(__file__))
|
||||
FAKEDATA = os.path.join(process_replay_dir, "fakedata/")
|
||||
|
||||
|
||||
def replay_panda_states(s, msgs):
|
||||
pm = messaging.PubMaster([s, 'peripheralState'])
|
||||
rk = Ratekeeper(service_list[s].frequency, print_delay_threshold=None)
|
||||
|
||||
@@ -7,7 +7,7 @@ from typing import Any, Dict
|
||||
from selfdrive.car.car_helpers import interface_names
|
||||
from selfdrive.test.openpilotci import get_url, upload_file
|
||||
from selfdrive.test.process_replay.compare_logs import compare_logs, save_log
|
||||
from selfdrive.test.process_replay.process_replay import CONFIGS, PROC_REPLAY_DIR, check_enabled, replay_process
|
||||
from selfdrive.test.process_replay.process_replay import CONFIGS, PROC_REPLAY_DIR, FAKEDATA, check_enabled, replay_process
|
||||
from selfdrive.version import get_commit
|
||||
from tools.lib.logreader import LogReader
|
||||
|
||||
@@ -131,6 +131,7 @@ if __name__ == "__main__":
|
||||
|
||||
full_test = all(len(x) == 0 for x in (args.whitelist_procs, args.whitelist_cars, args.blacklist_procs, args.blacklist_cars, args.ignore_fields, args.ignore_msgs))
|
||||
upload = args.update_refs or args.upload_only
|
||||
os.makedirs(os.path.dirname(FAKEDATA), exist_ok=True)
|
||||
|
||||
if upload:
|
||||
assert full_test, "Need to run full test when updating refs"
|
||||
@@ -171,9 +172,9 @@ if __name__ == "__main__":
|
||||
(not len(args.whitelist_procs) and cfg.proc_name in args.blacklist_procs):
|
||||
continue
|
||||
|
||||
cur_log_fn = os.path.join(PROC_REPLAY_DIR, f"{segment}_{cfg.proc_name}_{cur_commit}.bz2")
|
||||
cur_log_fn = os.path.join(FAKEDATA, f"{segment}_{cfg.proc_name}_{cur_commit}.bz2")
|
||||
if not args.upload_only:
|
||||
ref_log_fn = os.path.join(PROC_REPLAY_DIR, f"{segment}_{cfg.proc_name}_{ref_commit}.bz2")
|
||||
ref_log_fn = os.path.join(FAKEDATA, f"{segment}_{cfg.proc_name}_{ref_commit}.bz2")
|
||||
results[segment][cfg.proc_name], log_msgs = test_process(cfg, lr, ref_log_fn, args.ignore_fields, args.ignore_msgs)
|
||||
|
||||
# save logs so we can upload when updating refs
|
||||
@@ -185,8 +186,8 @@ if __name__ == "__main__":
|
||||
upload_file(cur_log_fn, os.path.basename(cur_log_fn))
|
||||
os.remove(cur_log_fn)
|
||||
|
||||
diff1, diff2, failed = format_diff(results, ref_commit)
|
||||
if not args.upload_only:
|
||||
diff1, diff2, failed = format_diff(results, ref_commit)
|
||||
with open(os.path.join(PROC_REPLAY_DIR, "diff.txt"), "w") as f:
|
||||
f.write(diff2)
|
||||
print(diff1)
|
||||
|
||||
Reference in New Issue
Block a user