pandad: test release -> devel bootstub reflash (#28330)

* test

* release bootstubs

* rm that

* fixup

* skip earlier

---------

Co-authored-by: Comma Device <device@comma.ai>
This commit is contained in:
Adeeb Shihadeh
2023-06-07 20:25:15 -07:00
committed by GitHub
parent 3e3c8b7ddf
commit 28980cf4c6
4 changed files with 27 additions and 6 deletions
+1 -1
Submodule panda updated: bf2c007103...1a9a94c519
Binary file not shown.
Binary file not shown.
+26 -5
View File
@@ -1,16 +1,19 @@
#!/usr/bin/env python3
import os
import time
import unittest
import cereal.messaging as messaging
from cereal import log
from common.gpio import gpio_set, gpio_init
from panda import Panda
from panda import Panda, PandaDFU
from selfdrive.test.helpers import phone_only
from selfdrive.manager.process_config import managed_processes
from system.hardware import HARDWARE
from system.hardware.tici.pins import GPIO
HERE = os.path.dirname(os.path.realpath(__file__))
class TestPandad(unittest.TestCase):
@@ -27,11 +30,13 @@ class TestPandad(unittest.TestCase):
if sm['peripheralState'].pandaType == log.PandaState.PandaType.unknown:
raise Exception("boardd failed to start")
def _go_to_dfu(self):
HARDWARE.recover_internal_panda()
assert Panda.wait_for_dfu(None, 10)
@phone_only
def test_in_dfu(self):
HARDWARE.recover_internal_panda()
time.sleep(1)
managed_processes['pandad'].start()
self._wait_for_boardd(60)
@@ -66,9 +71,25 @@ class TestPandad(unittest.TestCase):
managed_processes['pandad'].start()
self._wait_for_boardd(8)
@phone_only
def test_release_to_devel_bootstub(self):
if HARDWARE.get_device_type() != 'tici':
self.skipTest("TODO: fix reset timeout")
#def test_out_of_date_fw(self):
# pass
# flash release bootstub
self._go_to_dfu()
pd = PandaDFU(None)
fn = os.path.join(HERE, pd.get_mcu_type().config.bootstub_fn)
with open(fn, "rb") as f:
pd.program_bootstub(f.read())
pd.reset()
assert Panda.wait_for_panda(None, 20)
with Panda() as p:
assert p.bootstub
managed_processes['pandad'].start()
self._wait_for_boardd(60)
if __name__ == "__main__":