Skip to content

Commit a1961de

Browse files
authored
Merge pull request #11458 from fkjagodzinski/test_update-usb_device-fix_pyusb_backend
Tests: USB: Use libusb0 backend on Windows
2 parents 372a3f1 + 01e6bc5 commit a1961de

File tree

2 files changed

+20
-3
lines changed

2 files changed

+20
-3
lines changed

TESTS/host_tests/pyusb_basic.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,14 @@
3838

3939
import struct
4040

41+
if sys.platform.startswith('win'):
42+
# Use libusb0 on Windows. libusb1 implementation for Windows
43+
# does not support all features necessary for testing.
44+
import usb.backend.libusb0
45+
USB_BACKEND = usb.backend.libusb0.get_backend()
46+
else:
47+
# Use a default backend on other platforms.
48+
USB_BACKEND = None
4149

4250
def get_interface(dev, interface, alternate=0):
4351
intf = None
@@ -314,11 +322,10 @@ def _callback_reset_support(self, key, value, timestamp):
314322
def find_device(self, serial_number):
315323
# to make it more reliable, 20 retries in 2[s]
316324
for _ in range(20):
317-
dev = usb.core.find(custom_match=TestMatch(serial_number))
325+
dev = usb.core.find(custom_match=TestMatch(serial_number), backend=USB_BACKEND)
318326
if dev is not None:
319327
break
320328
time.sleep(0.1)
321-
322329
if dev is None:
323330
self.log("Device not found")
324331
self.send_kv("failed", "0")

TESTS/host_tests/usb_device_hid.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import time
2020
import threading
2121
import uuid
22+
import sys
2223
import mbed_host_tests
2324
import usb.core
2425
from usb.util import (
@@ -31,6 +32,15 @@
3132
DESC_TYPE_CONFIG,
3233
build_request_type)
3334

35+
if sys.platform.startswith('win'):
36+
# Use libusb0 on Windows. libusb1 implementation for Windows
37+
# does not support all features necessary for testing.
38+
import usb.backend.libusb0
39+
USB_BACKEND = usb.backend.libusb0.get_backend()
40+
else:
41+
# Use a default backend on other platforms.
42+
USB_BACKEND = None
43+
3444
try:
3545
import hid
3646
except ImportError:
@@ -232,7 +242,7 @@ def get_usb_dev(usb_id_str):
232242
during test suite setup.
233243
Raises RuntimeError if the device is not found.
234244
"""
235-
usb_dev = usb.core.find(custom_match=lambda d: d.serial_number == usb_id_str)
245+
usb_dev = usb.core.find(custom_match=lambda d: d.serial_number == usb_id_str, backend=USB_BACKEND)
236246
if usb_dev is None:
237247
err_msg = 'USB device (SN={}) not found.'
238248
raise RuntimeError(err_msg.format(usb_id_str))

0 commit comments

Comments
 (0)