diff --git a/system/hardware/tici/tests/test_amplifier.py b/system/hardware/tici/tests/test_amplifier.py index 4cacef4080..3a7c5987a3 100755 --- a/system/hardware/tici/tests/test_amplifier.py +++ b/system/hardware/tici/tests/test_amplifier.py @@ -32,27 +32,29 @@ class TestAmplifier(unittest.TestCase): dmesg = subprocess.check_output("dmesg", shell=True, encoding='utf8') i2c_lines = [l for l in dmesg.strip().splitlines() if 'i2c_geni a88000.i2c' in l] i2c_str = '\n'.join(i2c_lines) + if not expected: - assert len(i2c_lines) == 0 + return len(i2c_lines) == 0 else: - assert "i2c error :-107" in i2c_str or "Bus arbitration lost" in i2c_str + return "i2c error :-107" in i2c_str or "Bus arbitration lost" in i2c_str def test_init(self): amp = Amplifier(debug=True) r = amp.initialize_configuration(Tici().get_device_type()) assert r - self._check_for_i2c_errors(False) + assert self._check_for_i2c_errors(False) def test_shutdown(self): amp = Amplifier(debug=True) for _ in range(10): r = amp.set_global_shutdown(True) r = amp.set_global_shutdown(False) + # amp config should be successful, with no i2c errors assert r - self._check_for_i2c_errors(False) + assert self._check_for_i2c_errors(False) def test_init_while_siren_play(self): - for _ in range(5): + for _ in range(10): self.panda.set_siren(False) time.sleep(0.1) @@ -63,8 +65,10 @@ class TestAmplifier(unittest.TestCase): r = amp.initialize_configuration(Tici().get_device_type()) assert r - # make sure we're a good test - self._check_for_i2c_errors(True) + if self._check_for_i2c_errors(True): + break + else: + self.fail("didn't hit any i2c errors") if __name__ == "__main__":