pandad unit tests (#27516)
* pandad unit tests
* only one
* in bootstub
* run in jenkins
* phone only
old-commit-hash: f7c15c1708
beeps
parent
f442e12c1f
commit
5d2d0c4b26
2 changed files with 49 additions and 0 deletions
@ -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…
Reference in new issue