diff --git a/TESTS/host_tests/pyusb_basic.py b/TESTS/host_tests/pyusb_basic.py index 2f39678fe29..54ecc265e4a 100644 --- a/TESTS/host_tests/pyusb_basic.py +++ b/TESTS/host_tests/pyusb_basic.py @@ -38,6 +38,14 @@ import struct +if sys.platform.startswith('win'): + # Use libusb0 on Windows. libusb1 implementation for Windows + # does not support all features necessary for testing. + import usb.backend.libusb0 + USB_BACKEND = usb.backend.libusb0.get_backend() +else: + # Use a default backend on other platforms. + USB_BACKEND = None def get_interface(dev, interface, alternate=0): intf = None @@ -314,11 +322,10 @@ def _callback_reset_support(self, key, value, timestamp): def find_device(self, serial_number): # to make it more reliable, 20 retries in 2[s] for _ in range(20): - dev = usb.core.find(custom_match=TestMatch(serial_number)) + dev = usb.core.find(custom_match=TestMatch(serial_number), backend=USB_BACKEND) if dev is not None: break time.sleep(0.1) - if dev is None: self.log("Device not found") self.send_kv("failed", "0") diff --git a/TESTS/host_tests/usb_device_hid.py b/TESTS/host_tests/usb_device_hid.py index 9a1c0f7142b..415718f6307 100644 --- a/TESTS/host_tests/usb_device_hid.py +++ b/TESTS/host_tests/usb_device_hid.py @@ -19,6 +19,7 @@ import time import threading import uuid +import sys import mbed_host_tests import usb.core from usb.util import ( @@ -31,6 +32,15 @@ DESC_TYPE_CONFIG, build_request_type) +if sys.platform.startswith('win'): + # Use libusb0 on Windows. libusb1 implementation for Windows + # does not support all features necessary for testing. + import usb.backend.libusb0 + USB_BACKEND = usb.backend.libusb0.get_backend() +else: + # Use a default backend on other platforms. + USB_BACKEND = None + try: import hid except ImportError: @@ -232,7 +242,7 @@ def get_usb_dev(usb_id_str): during test suite setup. Raises RuntimeError if the device is not found. """ - usb_dev = usb.core.find(custom_match=lambda d: d.serial_number == usb_id_str) + usb_dev = usb.core.find(custom_match=lambda d: d.serial_number == usb_id_str, backend=USB_BACKEND) if usb_dev is None: err_msg = 'USB device (SN={}) not found.' raise RuntimeError(err_msg.format(usb_id_str))