46 lines
No EOL
1.5 KiB
HTML
46 lines
No EOL
1.5 KiB
HTML
<!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>
|
|
const kGetDescriptorRequest = 0x06;
|
|
const kDeviceDescriptorType = 0x01;
|
|
const kDeviceDescriptorLength = 18;
|
|
|
|
manual_usb_test(async (t, device) => {
|
|
await device.open();
|
|
t.add_cleanup(async () => {
|
|
await device.close();
|
|
});
|
|
|
|
// This test exercises the behavior that the device remains open when it
|
|
// is reset. If the device changes its properties too drastically when
|
|
// reset it may appear to disconnect instead.
|
|
await device.reset();
|
|
|
|
// Read the device descriptor in order to validate that communication
|
|
// with the device is still possible after a reset.
|
|
const result = await device.controlTransferIn({
|
|
requestType: 'standard',
|
|
recipient: 'device',
|
|
request: kGetDescriptorRequest,
|
|
value: kDeviceDescriptorType << 8,
|
|
index: 0,
|
|
}, kDeviceDescriptorLength);
|
|
|
|
assert_equals(result.status, 'ok', 'transfer status');
|
|
assert_equals(
|
|
result.data.byteLength, kDeviceDescriptorLength, 'transfer length');
|
|
}, 'reset() does not disconnect the device');
|
|
</script>
|
|
</body>
|
|
</html> |