pandad unit tests (#27516)

* pandad unit tests

* only one

* in bootstub

* run in jenkins

* phone only
old-commit-hash: f7c15c1708
beeps
Adeeb Shihadeh 2 years ago committed by GitHub
parent f442e12c1f
commit 5d2d0c4b26
  1. 1
      Jenkinsfile
  2. 48
      selfdrive/boardd/tests/test_pandad.py

1
Jenkinsfile vendored

@ -161,6 +161,7 @@ pipeline {
["test encoder", "LD_LIBRARY_PATH=/usr/local/lib python selfdrive/loggerd/tests/test_encoder.py"], ["test encoder", "LD_LIBRARY_PATH=/usr/local/lib python selfdrive/loggerd/tests/test_encoder.py"],
["test pigeond", "python selfdrive/sensord/tests/test_pigeond.py"], ["test pigeond", "python selfdrive/sensord/tests/test_pigeond.py"],
["test manager", "python selfdrive/manager/test/test_manager.py"], ["test manager", "python selfdrive/manager/test/test_manager.py"],
["test pandad", "python selfdrive/boardd/tests/test_pandad.py"],
]) ])
} }
} }

@ -0,0 +1,48 @@
#!/usr/bin/env python3
import time
import unittest
import cereal.messaging as messaging
from panda import Panda
from selfdrive.test.helpers import phone_only
from selfdrive.manager.process_config import managed_processes
from system.hardware import HARDWARE
class TestPandad(unittest.TestCase):
def tearDown(self):
managed_processes['pandad'].stop()
def _wait_for_boardd(self):
sm = messaging.SubMaster(['peripheralState'])
for _ in range(30):
sm.update(1000)
if sm.updated['peripheralState']:
break
if not sm.updated['peripheralState']:
raise Exception("boardd failed to start")
@phone_only
def test_in_dfu(self):
HARDWARE.recover_internal_panda()
time.sleep(1)
managed_processes['pandad'].start()
self._wait_for_boardd()
@phone_only
def test_in_bootstub(self):
with Panda() as p:
p.reset(enter_bootstub=True)
assert p.bootstub
managed_processes['pandad'].start()
self._wait_for_boardd()
#def test_out_of_date_fw(self):
# pass
if __name__ == "__main__":
unittest.main()
Loading…
Cancel
Save