Laikad cpu usage: enable test onroad (#28926)

* enable test onroad

* Better

* specify range

* fix printing

---------

Co-authored-by: Adeeb Shihadeh <adeebshihadeh@gmail.com>
pull/28972/head
Harald Schäfer 2 years ago committed by GitHub
parent ae6f13fb50
commit 7613f6918b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 27
      selfdrive/test/test_onroad.py

@ -42,7 +42,7 @@ PROCS = {
"selfdrive.thermald.thermald": 3.87, "selfdrive.thermald.thermald": 3.87,
"selfdrive.locationd.calibrationd": 2.0, "selfdrive.locationd.calibrationd": 2.0,
"selfdrive.locationd.torqued": 5.0, "selfdrive.locationd.torqued": 5.0,
"./_soundd": 1.0, "./_soundd": (15.0, 65.0),
"selfdrive.monitoring.dmonitoringd": 4.0, "selfdrive.monitoring.dmonitoringd": 4.0,
"./proclogd": 1.54, "./proclogd": 1.54,
"system.logmessaged": 0.2, "system.logmessaged": 0.2,
@ -56,7 +56,7 @@ PROCS = {
"selfdrive.navd.navd": 0.4, "selfdrive.navd.navd": 0.4,
"system.loggerd.uploader": 3.0, "system.loggerd.uploader": 3.0,
"system.loggerd.deleter": 0.1, "system.loggerd.deleter": 0.1,
"selfdrive.locationd.laikad": None, # TODO: laikad cpu usage is sporadic "selfdrive.locationd.laikad": (1.0, 80.0), # TODO: better GPS setup in testing closet
} }
PROCS.update({ PROCS.update({
@ -238,19 +238,22 @@ class TestOnroad(unittest.TestCase):
cpu_time = cputime_total(x[-1]) - cputime_total(x[0]) cpu_time = cputime_total(x[-1]) - cputime_total(x[0])
cpu_usage = cpu_time / dt * 100. cpu_usage = cpu_time / dt * 100.
if expected_cpu is None: if isinstance(expected_cpu, tuple):
result += f"{proc_name.ljust(35)} {cpu_usage:5.2f}% ({expected_cpu}) SKIPPED\n" exp = str(expected_cpu)
continue minn, maxx = expected_cpu
elif cpu_usage > max(expected_cpu * 1.15, expected_cpu + 5.0): else:
# cpu usage is high while playing sounds exp = f"{expected_cpu:5.2f}"
if not (proc_name == "./_soundd" and cpu_usage < 65.): minn = min(expected_cpu * 0.65, max(expected_cpu - 1.0, 0.0))
err = "using more CPU than normal" maxx = max(expected_cpu * 1.15, expected_cpu + 5.0)
elif cpu_usage < min(expected_cpu * 0.65, max(expected_cpu - 1.0, 0.0)):
err = "using less CPU than normal" if cpu_usage > maxx:
err = "using more CPU than expected"
elif cpu_usage < minn:
err = "using less CPU than expected"
else: else:
err = "NO METRICS FOUND" err = "NO METRICS FOUND"
result += f"{proc_name.ljust(35)} {cpu_usage:5.2f}% ({expected_cpu:5.2f}%) {err}\n" result += f"{proc_name.ljust(35)} {cpu_usage:5.2f}% ({exp}%) {err}\n"
if len(err) > 0: if len(err) > 0:
cpu_ok = False cpu_ok = False

Loading…
Cancel
Save