From 153301384b48c9f33f9e2af3c224241eaeec41c1 Mon Sep 17 00:00:00 2001 From: Shane Smiskol Date: Thu, 14 Dec 2023 21:40:55 -0800 Subject: [PATCH] thought interleaving addrs might help, but we can fine tune later --- selfdrive/car/tests/test_models.py | 31 +++++++++++++++++++++--------- 1 file changed, 22 insertions(+), 9 deletions(-) diff --git a/selfdrive/car/tests/test_models.py b/selfdrive/car/tests/test_models.py index 7ac49c1c24..3ef1bde523 100755 --- a/selfdrive/car/tests/test_models.py +++ b/selfdrive/car/tests/test_models.py @@ -157,13 +157,13 @@ class TestCarModelBase(unittest.TestCase): assert cls.CP assert cls.CP.carFingerprint == cls.car_model - cls.car_state_dict = {'panda': {'gas_pressed': False}, 'CS': {'gasPressed': False}} - cls.init_gas_pressed = False + # cls.car_state_dict = {'panda': {'gas_pressed': False}, 'CS': {'gasPressed': False}} + # cls.init_gas_pressed = False @classmethod def tearDownClass(cls): del cls.can_msgs - gc.collect() + # gc.collect() def setUp(self): self.CI = self.CarInterface(self.CP.copy(), self.CarController, self.CarState) @@ -328,15 +328,28 @@ class TestCarModelBase(unittest.TestCase): if self.CP.dashcamOnly: self.skipTest("no need to check panda safety for dashcamOnly") - valid_addrs = [(addr, bus) for bus, addrs in self.fingerprint.items() for addr in addrs] - address, bus = data.draw(st.sampled_from(valid_addrs)) + valid_addrs = [(addr, bus, size) for bus, addrs in self.fingerprint.items() for addr, size in addrs.items()] + + # addrs = [data.draw(st.sampled_from(valid_addrs)) for _ in range(10)] + # addrs = data.draw(st.sets(st.sampled_from(valid_addrs), min_size=10, max_size=10)) + addrs = st.lists(st.sampled_from(valid_addrs), min_size=10, max_size=10, unique=True) + # print(addrs) + # return + + + # address, bus = data.draw(st.sampled_from(valid_addrs)) # address = 0x201 # bus = 0 # print('addr, bus:', address, bus) - size = self.fingerprint[bus][address] + # size = self.fingerprint[bus][address] - msg_strategy = st.binary(min_size=size, max_size=size) - msgs = data.draw(st.lists(msg_strategy, min_size=20)) + # msg_strategy = st.binary(min_size=size, max_size=size) + msgs = [(addr, bus, data.draw(st.binary(min_size=size, max_size=size))) for addr, bus, size in data.draw(addrs) for _ in range(20)] + random.shuffle(msgs) + print(msgs) + return + # msgs = data.draw(st.lists(msg_strategy, min_size=20)) + # print(msgs) prev_panda_gas = self.safety.get_gas_pressed_prev() prev_panda_brake = self.safety.get_brake_pressed_prev() @@ -345,7 +358,7 @@ class TestCarModelBase(unittest.TestCase): prev_panda_cruise_engaged = self.safety.get_cruise_engaged_prev() prev_panda_acc_main_on = self.safety.get_acc_main_on() - for dat in msgs: + for address, bus, dat in msgs: to_send = libpanda_py.make_CANPacket(address, bus, dat) self.safety.safety_rx_hook(to_send)