pandad unit tests (#27516)

* pandad unit tests

* only one

* in bootstub

* run in jenkins

* phone only
old-commit-hash: f7c15c1708
This commit is contained in:
Adeeb Shihadeh 2023-03-07 11:05:20 -08:00 committed by GitHub
parent f442e12c1f
commit 5d2d0c4b26
2 changed files with 49 additions and 0 deletions

1
Jenkinsfile vendored
View File

@ -161,6 +161,7 @@ pipeline {
["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 manager", "python selfdrive/manager/test/test_manager.py"],
["test pandad", "python selfdrive/boardd/tests/test_pandad.py"],
])
}
}

View File

@ -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()