Files
firefox/testing/web-platform/tests/serial/serialPort_loopback-manual.https.html
Chengwei Hsieh c1cc2f64c8 Bug 1948132 [wpt PR 50699] - serial: Increase timeout for loopback manual WPT., a=testonly
Automatic update from web-platform-tests
serial: Increase timeout for loopback manual WPT.

Certain subtests within the serialPort_loopback-manual test involve
larger transactions, requiring extended turnaround times. This change
increases the timeout to prevent test failures.

Change-Id: I70c0ba8e518c55cfe81934e26a25e77fcb2207bb
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6266447
Reviewed-by: Matt Reynolds <[email protected]>
Commit-Queue: Jack Hsieh <[email protected]>
Cr-Commit-Position: refs/heads/main@{#1420133}

--

wpt-commits: ecebb3dd9d2e1d60df3101edf06f013bd45b444d
wpt-pr: 50699
2025-02-18 09:15:53 +00:00

99 lines
3.1 KiB
HTML

<!DOCTYPE html>
<meta name="timeout" content="long">
<html>
<head>
<meta charset="utf-8">
<title></title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="resources/common.js"></script>
<script src="resources/manual.js"></script>
</head>
<body>
<p>
These tests require a connected serial device configured to act as a
"loopback" device, with the transmit and receive pins wired together.
</p>
<script>
manual_serial_test(async (t, port) => {
await port.open({baudRate: 115200, bufferSize: 1024});
// Create something much smaller than bufferSize above.
const data = new Uint8Array(64);
for (let i = 0; i < data.byteLength; ++i)
data[i] = i & 0xff;
const reader = port.readable.getReader();
for (let i = 0; i < 10; ++i) {
const writer = port.writable.getWriter();
writer.write(data);
const writePromise = writer.close();
const value = await readWithLength(reader, data.byteLength);
await writePromise;
compareArrays(value, data);
}
reader.releaseLock();
await port.close();
}, 'Can perform a series of small writes.');
manual_serial_test(async (t, port) => {
await port.open({baudRate: 115200, bufferSize: 1024});
// Create something much larger than bufferSize above.
const data = new Uint8Array(10 * 1024);
for (let i = 0; i < data.byteLength; ++i)
data[i] = (i / 1024) & 0xff;
const reader = port.readable.getReader();
for (let i = 0; i < 10; ++i) {
const writer = port.writable.getWriter();
writer.write(data);
const writePromise = writer.close();
const value = await readWithLength(reader, data.byteLength);
await writePromise;
compareArrays(value, data);
}
reader.releaseLock();
await port.close();
}, 'Can perform a series of large writes.');
manual_serial_test(async (t, port) => {
await port.open({baudRate: 115200, bufferSize: 64});
const writer = port.writable.getWriter();
// |data| is small enough to be completely transmitted.
let data = new Uint8Array([1, 2, 3, 4, 5, 6, 7, 8]);
await writer.write(data);
// Wait a little bit for the device to process the incoming data.
await new Promise((resolve) => setTimeout(resolve, 100));
// ...before discarding the receive buffers.
await port.readable.cancel();
data = new Uint8Array([9, 10, 11, 12, 13, 14, 15, 16]);
const reader = port.readable.getReader();
const readPromise = readWithLength(reader, data.byteLength);
// The next block of data should be received successfully.
await writer.write(data);
writer.releaseLock();
const value = await readPromise;
reader.releaseLock();
compareArrays(value, data);
await port.close();
}, 'Canceling the reader discards buffered data.');
</script>
</body>
</html>