<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="/resources/testharness.js"></script> <script src="/resources/testharnessreport.js"></script> <script src="resources/manual.js"></script> </head> <body> <p> These tests require a USB device to be connected. </p> <script> manual_usb_test(async (t, device) => { await device.open(); const interfacesClaimed = []; t.add_cleanup(async () => { for (const iface of interfacesClaimed) { await device.releaseInterface(iface.interfaceNumber); } await device.close(); }); await device.selectConfiguration(1); const promises = []; for (const iface of device.configuration.interfaces) { const promise = device.claimInterface(iface.interfaceNumber); promises.push(promise); // Create a subtest for each interface so that success or failure to // claim the interface is visible but does not affect the result of // the overall test. promise_test(async (t) => { await promise; interfacesClaimed.push(iface); }, `Can claim interface ${iface.interfaceNumber}`); } await Promise.allSettled(promises); }, 'claimInterface() resolves or rejects for all interfaces'); </script> </body> </html>