Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 8146a97

Browse filesBrowse files
nodejs-github-botaduh95
authored andcommitted
test: update WPT for streams to f8f26a372f
PR-URL: #62864 Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Daeyeon Jeong <daeyeon.dev@gmail.com> Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
1 parent 70c5491 commit 8146a97
Copy full SHA for 8146a97

28 files changed

+820-45Lines changed: 820 additions & 45 deletions
Expand file treeCollapse file tree
Open diff view settings
Collapse file

‎test/fixtures/wpt/README.md‎

Copy file name to clipboardExpand all lines: test/fixtures/wpt/README.md
+1-1Lines changed: 1 addition & 1 deletion
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ Last update:
2727
- performance-timeline: https://github.com/web-platform-tests/wpt/tree/94caab7038/performance-timeline
2828
- resource-timing: https://github.com/web-platform-tests/wpt/tree/22d38586d0/resource-timing
2929
- resources: https://github.com/web-platform-tests/wpt/tree/6a2f322376/resources
30-
- streams: https://github.com/web-platform-tests/wpt/tree/bc9dcbbf1a/streams
30+
- streams: https://github.com/web-platform-tests/wpt/tree/f8f26a372f/streams
3131
- url: https://github.com/web-platform-tests/wpt/tree/7a3645b79a/url
3232
- urlpattern: https://github.com/web-platform-tests/wpt/tree/f07c03cbed/urlpattern
3333
- user-timing: https://github.com/web-platform-tests/wpt/tree/5ae85bf826/user-timing
Collapse file

‎test/fixtures/wpt/streams/META.yml‎

Copy file name to clipboard
+1-2Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
spec: https://streams.spec.whatwg.org/
22
suggested_reviewers:
3-
- domenic
4-
- yutakahirano
53
- youennf
64
- wanderview
75
- ricea
6+
- MattiasBuelens
Collapse file
+5Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
features:
2+
- name: streams
3+
files:
4+
# Top-level only. Subdirectories have their own mapping.
5+
- "*"
Collapse file
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
features:
2+
- name: streams
3+
files: "**"
Collapse file
+3Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
features:
2+
- name: readable-byte-streams
3+
files: "**"
Collapse file

‎test/fixtures/wpt/streams/readable-byte-streams/bad-buffers-and-views.any.js‎

Copy file name to clipboardExpand all lines: test/fixtures/wpt/streams/readable-byte-streams/bad-buffers-and-views.any.js
+5-12Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -123,8 +123,7 @@ promise_test(t => {
123123
async_test(t => {
124124
const stream = new ReadableStream({
125125
pull: t.step_func_done(c => {
126-
// Detach it by reading into it
127-
reader.read(c.byobRequest.view);
126+
c.byobRequest.view.buffer.transfer();
128127

129128
assert_throws_js(TypeError, () => c.byobRequest.respond(1),
130129
'respond() must throw if the corresponding view has become detached');
@@ -141,9 +140,7 @@ async_test(t => {
141140
const stream = new ReadableStream({
142141
pull: t.step_func_done(c => {
143142
c.close();
144-
145-
// Detach it by reading into it
146-
reader.read(c.byobRequest.view);
143+
c.byobRequest.view.buffer.transfer();
147144

148145
assert_throws_js(TypeError, () => c.byobRequest.respond(0),
149146
'respond() must throw if the corresponding view has become detached');
@@ -159,9 +156,8 @@ async_test(t => {
159156
async_test(t => {
160157
const stream = new ReadableStream({
161158
pull: t.step_func_done(c => {
162-
// Detach it by reading into it
163159
const view = new Uint8Array([1, 2, 3]);
164-
reader.read(view);
160+
view.buffer.transfer();
165161

166162
assert_throws_js(TypeError, () => c.byobRequest.respondWithNewView(view));
167163
}),
@@ -364,8 +360,7 @@ async_test(t => {
364360
async_test(t => {
365361
const stream = new ReadableStream({
366362
pull: t.step_func_done(c => {
367-
// Detach it by reading into it
368-
reader.read(c.byobRequest.view);
363+
c.byobRequest.view.buffer.transfer();
369364

370365
assert_throws_js(TypeError, () => c.enqueue(new Uint8Array([1])),
371366
'enqueue() must throw if the BYOB request\'s buffer has become detached');
@@ -382,9 +377,7 @@ async_test(t => {
382377
const stream = new ReadableStream({
383378
pull: t.step_func_done(c => {
384379
c.close();
385-
386-
// Detach it by reading into it
387-
reader.read(c.byobRequest.view);
380+
c.byobRequest.view.buffer.transfer();
388381

389382
assert_throws_js(TypeError, () => c.enqueue(new Uint8Array([1])),
390383
'enqueue() must throw if the BYOB request\'s buffer has become detached');
Collapse file
+9Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// META: global=window,worker
2+
'use strict';
3+
4+
test(() => {
5+
const byteReadable = new ReadableStream({type: 'bytes'});
6+
byteReadable.getReader();
7+
assert_throws_js(TypeError, () => byteReadable.tee(), 'byteReadable.tee() must throw');
8+
}, 'tee() on a locked byte stream does not crash');
9+
Collapse file

‎test/fixtures/wpt/streams/readable-byte-streams/general.any.js‎

Copy file name to clipboardExpand all lines: test/fixtures/wpt/streams/readable-byte-streams/general.any.js
+86Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,6 +236,29 @@ promise_test(t => {
236236
});
237237
}, 'ReadableStream with byte source: Test that erroring a stream does not release a BYOB reader automatically');
238238

239+
promise_test(async t => {
240+
const rs = new ReadableStream({
241+
type: 'bytes',
242+
start(c) {
243+
c.enqueue(new Uint8Array([1, 2, 3]));
244+
}
245+
});
246+
247+
const reader1 = rs.getReader({mode: 'byob'});
248+
reader1.releaseLock();
249+
250+
const reader2 = rs.getReader({mode: 'byob'});
251+
252+
// Should be a no-op
253+
reader1.releaseLock();
254+
255+
const result = await reader2.read(new Uint8Array([0, 0, 0]));
256+
assert_typed_array_equals(result.value, new Uint8Array([1, 2, 3]),
257+
'read() should still work on reader2 even after reader1 is released');
258+
assert_false(result.done, 'done');
259+
260+
}, 'ReadableStream with byte source: cannot use an already-released BYOB reader to unlock a stream again');
261+
239262
promise_test(async t => {
240263
const stream = new ReadableStream({
241264
type: 'bytes'
@@ -992,6 +1015,69 @@ promise_test(() => {
9921015
}, 'ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte ' +
9931016
'remainder');
9941017

1018+
promise_test(() => {
1019+
let pullCount = 0;
1020+
1021+
let controller;
1022+
let byobRequest;
1023+
let viewInfo;
1024+
1025+
const stream = new ReadableStream({
1026+
start(c) {
1027+
controller = c;
1028+
},
1029+
pull() {
1030+
++pullCount;
1031+
1032+
byobRequest = controller.byobRequest;
1033+
const view = byobRequest.view;
1034+
viewInfo = extractViewInfo(view);
1035+
1036+
view[0] = 0x01;
1037+
view[1] = 0x02;
1038+
view[2] = 0x03;
1039+
1040+
controller.byobRequest.respond(3);
1041+
},
1042+
type: 'bytes'
1043+
});
1044+
1045+
const reader = stream.getReader({ mode: 'byob' });
1046+
const read1 = reader.read(new Uint16Array(2));
1047+
const read2 = reader.read(new Uint8Array(1));
1048+
1049+
return read1.then(result => {
1050+
assert_equals(pullCount, 1);
1051+
1052+
assert_false(result.done, 'done');
1053+
1054+
const view = result.value;
1055+
assert_equals(view.byteOffset, 0, 'byteOffset');
1056+
assert_equals(view.byteLength, 2, 'byteLength');
1057+
1058+
const dataView = new DataView(view.buffer, view.byteOffset, view.byteLength);
1059+
assert_equals(dataView.getUint16(0), 0x0102);
1060+
1061+
return read2;
1062+
}).then(result => {
1063+
assert_equals(pullCount, 1);
1064+
assert_not_equals(byobRequest, null, 'byobRequest must not be null');
1065+
assert_equals(viewInfo.constructor, Uint8Array, 'view.constructor should be Uint8Array');
1066+
assert_equals(viewInfo.bufferByteLength, 4, 'view.buffer.byteLength should be 4');
1067+
assert_equals(viewInfo.byteOffset, 0, 'view.byteOffset should be 0');
1068+
assert_equals(viewInfo.byteLength, 4, 'view.byteLength should be 4');
1069+
1070+
assert_false(result.done, 'done');
1071+
1072+
const view = result.value;
1073+
assert_equals(view.byteOffset, 0, 'byteOffset');
1074+
assert_equals(view.byteLength, 1, 'byteLength');
1075+
1076+
assert_equals(view[0], 0x03);
1077+
});
1078+
}, 'ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array fulfills second read(view) ' +
1079+
'with the 1 byte remainder');
1080+
9951081
promise_test(t => {
9961082
const stream = new ReadableStream({
9971083
start(controller) {
Collapse file
+24Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
// META: global=window,worker,shadowrealm
2+
// META: script=../resources/test-utils.js
3+
// META: script=../resources/rs-test-templates.js
4+
'use strict';
5+
6+
templatedRSEmpty('ReadableStream with byte source (empty)', () => {
7+
return new ReadableStream({ type: 'bytes' });
8+
});
9+
10+
templatedRSEmptyReader('ReadableStream with byte source (empty) default reader', () => {
11+
const stream = new ReadableStream({ type: 'bytes' });
12+
const reader = stream.getReader();
13+
return { stream, reader, read: () => reader.read() };
14+
});
15+
16+
templatedRSEmptyReader('ReadableStream with byte source (empty) BYOB reader', () => {
17+
const stream = new ReadableStream({ type: 'bytes' });
18+
const reader = stream.getReader({ mode: 'byob' });
19+
return { stream, reader, read: () => reader.read(new Uint8Array([0])) };
20+
});
21+
22+
templatedRSThrowAfterCloseOrError('ReadableStream with byte source', (extras) => {
23+
return new ReadableStream({ type: 'bytes', ...extras });
24+
});
Collapse file
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
features:
2+
- name: streams
3+
files:
4+
- "*"
5+
- "!async-iterator.any.js"
6+
- "!from.any.js"
7+
# 'owning' type is not yet standardized
8+
- "!owning-type*"
9+
- name: async-iterable-streams
10+
files:
11+
- async-iterator.any.js
12+
- name: readablestream-from
13+
files:
14+
- from.any.js

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.