power draw test improvements (#24368)
Co-authored-by: Comma Device <device@comma.ai> old-commit-hash: c971061859e5f9ff571afb5b6ae7d8e9f2b0ef63
This commit is contained in:
@@ -2,19 +2,28 @@
|
||||
import unittest
|
||||
import time
|
||||
import math
|
||||
from collections import OrderedDict
|
||||
from dataclasses import dataclass
|
||||
|
||||
from selfdrive.hardware import HARDWARE, TICI
|
||||
from selfdrive.hardware.tici.power_monitor import get_power
|
||||
from selfdrive.manager.process_config import managed_processes
|
||||
from selfdrive.manager.manager import manager_cleanup
|
||||
|
||||
POWER = OrderedDict(
|
||||
camerad=2.58,
|
||||
modeld=0.90,
|
||||
dmonitoringmodeld=0.25,
|
||||
loggerd=0.45,
|
||||
)
|
||||
|
||||
@dataclass
|
||||
class Proc:
|
||||
name: str
|
||||
power: float
|
||||
rtol: float = 0.05
|
||||
atol: float = 0.1
|
||||
warmup: float = 3.
|
||||
|
||||
PROCS = [
|
||||
Proc('camerad', 2.5),
|
||||
Proc('modeld', 0.95),
|
||||
Proc('dmonitoringmodeld', 0.25),
|
||||
Proc('loggerd', 0.45, warmup=10.),
|
||||
]
|
||||
|
||||
|
||||
class TestPowerDraw(unittest.TestCase):
|
||||
@@ -36,24 +45,24 @@ class TestPowerDraw(unittest.TestCase):
|
||||
|
||||
prev = baseline
|
||||
used = {}
|
||||
for proc in POWER.keys():
|
||||
managed_processes[proc].start()
|
||||
time.sleep(6)
|
||||
for proc in PROCS:
|
||||
managed_processes[proc.name].start()
|
||||
time.sleep(proc.warmup)
|
||||
|
||||
now = get_power(8)
|
||||
used[proc] = now - prev
|
||||
used[proc.name] = now - prev
|
||||
prev = now
|
||||
|
||||
manager_cleanup()
|
||||
|
||||
print("-"*35)
|
||||
print(f"Baseline {baseline:.2f}W\n")
|
||||
for proc in POWER.keys():
|
||||
cur = used[proc]
|
||||
expected = POWER[proc]
|
||||
print(f"{proc.ljust(20)} {expected:.2f}W {cur:.2f}W")
|
||||
with self.subTest(proc=proc):
|
||||
self.assertTrue(math.isclose(cur, expected, rel_tol=0.10, abs_tol=0.1))
|
||||
for proc in PROCS:
|
||||
cur = used[proc.name]
|
||||
expected = proc.power
|
||||
print(f"{proc.name.ljust(20)} {expected:.2f}W {cur:.2f}W")
|
||||
with self.subTest(proc=proc.name):
|
||||
self.assertTrue(math.isclose(cur, expected, rel_tol=proc.rtol, abs_tol=proc.atol))
|
||||
print("-"*35)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user