summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorhathach <[email protected]>2025-10-01 20:56:20 +0700
committerhathach <[email protected]>2025-10-02 10:43:55 +0700
commit6d32256188d578079b0d050509f2c7d7178897a0 (patch)
tree76e5f21d6321480da5bb1f87b318c06793455cd5 /test
parent26939587b55dc3c6958a3b630664e6a0b7d9da9b (diff)
HIL add timeout for opening mtp device
Diffstat (limited to 'test')
-rwxr-xr-xtest/hil/hil_test.py24
1 files changed, 15 insertions, 9 deletions
diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py
index 1a846dd4a..c747ad763 100755
--- a/test/hil/hil_test.py
+++ b/test/hil/hil_test.py
@@ -42,8 +42,6 @@ import hashlib
import ctypes
from pymtp import MTP
-mtp = MTP()
-
ENUM_TIMEOUT = 30
STATUS_OK = "\033[32mOK\033[0m"
@@ -140,6 +138,19 @@ def read_disk_file(uid, lun, fname):
return None
+def open_mtp_dev(uid):
+ mtp = MTP()
+ timeout = ENUM_TIMEOUT
+ while timeout > 0:
+ for raw in mtp.detect_devices():
+ mtp.device = mtp.mtp.LIBMTP_Open_Raw_Device(ctypes.byref(raw))
+ if mtp.device and mtp.get_serialnumber().decode('utf-8') == uid:
+ return mtp
+ time.sleep(1)
+ timeout -= 1
+ return None
+
+
# -------------------------------------------------------------
# Flashing firmware
# -------------------------------------------------------------
@@ -505,19 +516,14 @@ def test_device_mtp(board):
_null = os.open(os.devnull, os.O_WRONLY)
os.dup2(_null, fd)
- for raw in mtp.detect_devices():
- mtp.device = mtp.mtp.LIBMTP_Open_Raw_Device(ctypes.byref(raw))
- if mtp.device and mtp.get_serialnumber().decode('utf-8') == uid:
- break
- else:
- mtp.device = None
+ mtp = open_mtp_dev(uid)
# --- AFTER: restore stderr ---
os.dup2(_saved, fd)
os.close(_null)
os.close(_saved)
- if mtp.device is None:
+ if mtp is None or mtp.device is None:
assert False, 'MTP device not found'
assert b"TinyUSB" == mtp.get_manufacturer(), 'MTP wrong manufacturer'