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