diff options
| author | hathach <[email protected]> | 2026-03-06 22:16:04 +0700 |
|---|---|---|
| committer | hathach <[email protected]> | 2026-03-06 22:16:04 +0700 |
| commit | 99d9b70146a6665d239e9baf61019a186329a813 (patch) | |
| tree | c8dfa630cceeaa3654f0a0fabd6f93ee16179bf2 /test | |
| parent | 6c2c309316794ee580603db1b48422f9c648b1ad (diff) | |
enable hil test for mtp
Diffstat (limited to 'test')
| -rwxr-xr-x | test/hil/hil_test.py | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/test/hil/hil_test.py b/test/hil/hil_test.py index f3cead7a3..f0b24b3ff 100755 --- a/test/hil/hil_test.py +++ b/test/hil/hil_test.py @@ -47,7 +47,7 @@ from multiprocessing import Pool import fs import hashlib import ctypes -from pymtp import MTP +from pymtp import MTP, LIBMTP_MTPDevice, LIBMTP_RawDevice import string ENUM_TIMEOUT = 30 @@ -150,17 +150,22 @@ def read_disk_file(uid, lun, fname): def open_mtp_dev(uid): mtp = MTP() + # Set proper return type for LIBMTP_Open_Raw_Device (pymtp doesn't define it) + mtp.mtp.LIBMTP_Open_Raw_Device.restype = ctypes.POINTER(LIBMTP_MTPDevice) + mtp.mtp.LIBMTP_Open_Raw_Device.argtypes = [ctypes.POINTER(LIBMTP_RawDevice)] # MTP seems to take a while to enumerate timeout = 2 * ENUM_TIMEOUT while timeout > 0: - # run_cmd(f"gio mount -u mtp://TinyUsb_TinyUsb_Device_{uid}/") + # unmount gio/gvfs MTP mount which blocks libmtp from accessing the device + subprocess.run(f"gio mount -u mtp://TinyUsb_TinyUsb_Device_{uid}/", + shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL) for raw in mtp.detect_devices(): mtp.device = mtp.mtp.LIBMTP_Open_Raw_Device(ctypes.byref(raw)) if mtp.device: sn = mtp.get_serialnumber().decode('utf-8') - #print(f'mtp serial = {sn}') if sn == uid: return mtp + mtp.disconnect() time.sleep(1) timeout -= 1 return None @@ -753,7 +758,7 @@ device_tests = [ 'device/cdc_msc_freertos', 'device/hid_boot_interface', 'device/printer_to_cdc', - # 'device/mtp' + 'device/mtp' ] dual_tests = [ |
