FPv2: test timing for present ECUs and VIN queries (#28676)
* put one subaddr in parallel_addrs * p * remove print * update test refs * test * revert that * clean up * clean up * fix * print results * fixup cmt * move down old-commit-hash: 3f8c976d999d7290fb0357b095339ed0fdf70f87
This commit is contained in:
@@ -10,7 +10,8 @@ from cereal import car
|
||||
from common.params import Params
|
||||
from selfdrive.car.car_helpers import interfaces
|
||||
from selfdrive.car.fingerprints import FW_VERSIONS
|
||||
from selfdrive.car.fw_versions import FW_QUERY_CONFIGS, FUZZY_EXCLUDE_ECUS, VERSIONS, build_fw_dict, match_fw_to_car, get_fw_versions
|
||||
from selfdrive.car.fw_versions import FW_QUERY_CONFIGS, FUZZY_EXCLUDE_ECUS, VERSIONS, build_fw_dict, match_fw_to_car, get_fw_versions, get_present_ecus
|
||||
from selfdrive.car.vin import get_vin
|
||||
|
||||
CarFw = car.CarParams.CarFw
|
||||
Ecu = car.CarParams.Ecu
|
||||
@@ -190,6 +191,27 @@ class TestFwFingerprintTiming(unittest.TestCase):
|
||||
self.assertLess(avg_time, ref_time + self.TOL)
|
||||
self.assertGreater(avg_time, ref_time - self.TOL, "Performance seems to have improved, update test refs.")
|
||||
|
||||
def test_startup_timing(self):
|
||||
# Tests worse-case VIN query time and typical present ECU query time
|
||||
vin_ref_time = 1.0
|
||||
present_ecu_ref_time = 0.8
|
||||
|
||||
fake_socket = FakeSocket()
|
||||
present_ecu_time = 0.0
|
||||
for _ in range(self.N):
|
||||
thread = threading.Thread(target=get_present_ecus, args=(fake_socket, fake_socket),
|
||||
kwargs=dict(num_pandas=2))
|
||||
present_ecu_time += self._run_thread(thread)
|
||||
self._assert_timing(present_ecu_time / self.N, present_ecu_ref_time)
|
||||
print(f'get_present_ecus, query time={present_ecu_time / self.N} seconds')
|
||||
|
||||
vin_time = 0.0
|
||||
for _ in range(self.N):
|
||||
thread = threading.Thread(target=get_vin, args=(fake_socket, fake_socket, 1))
|
||||
vin_time += self._run_thread(thread)
|
||||
self._assert_timing(vin_time / self.N, vin_ref_time)
|
||||
print(f'get_vin, query time={vin_time / self.N} seconds')
|
||||
|
||||
def test_fw_query_timing(self):
|
||||
total_ref_time = 6.1
|
||||
brand_ref_times = {
|
||||
|
||||
Reference in New Issue
Block a user