GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — test: update WPT for streams to f8f26a372f · nodejs/node@8146a97

File tree

Expand file treeCollapse file tree
Open diff view settings
Filter options
  • test
    • fixtures/wpt
      • README.md
      • streams
        • META.yml
        • WEB_FEATURES.yml
        • piping
          • WEB_FEATURES.yml
        • readable-byte-streams
          • WEB_FEATURES.yml
          • bad-buffers-and-views.any.js
          • crashtests
            • tee-locked-stream.any.js
          • general.any.js
          • templated.any.js
        • readable-streams
          • WEB_FEATURES.yml
          • crashtests
            • WEB_FEATURES.yml
            • exception-during-size-while-pulling.html
            • garbage-collection.any.js
          • from.any.js
          • garbage-collection.any.js
          • templated.any.js
        • resources
          • rs-test-templates.js
        • transferable
          • WEB_FEATURES.yml
        • transform-streams
          • WEB_FEATURES.yml
          • cancel.any.js
        • writable-streams
          • WEB_FEATURES.yml
          • aborting.any.js
          • close.any.js
          • constructor.any.js
          • crashtests
            • garbage-collection.any.js
          • garbage-collection.any.js
      • versions.json
    • wpt/status
      • streams.json
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

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

Copy file name to clipboard
+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

‎test/fixtures/wpt/streams/piping/WEB_FEATURES.yml‎

Copy file name to clipboard
+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

‎test/fixtures/wpt/streams/readable-byte-streams/WEB_FEATURES.yml‎

Copy file name to clipboard
+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

‎test/fixtures/wpt/streams/readable-byte-streams/crashtests/tee-locked-stream.any.js‎

Copy file name to clipboard
+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

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

Copy file name to clipboard
+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

‎test/fixtures/wpt/streams/readable-streams/WEB_FEATURES.yml‎

Copy file name to clipboard
+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)
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.