Closed Bug 1446178 Opened 2 years ago Closed 2 years ago

[wpt-sync] Sync PR 10018 - ReadableStream: Readable byte stream must call pull if needed after receiving new chunk

Categories

(Core :: DOM: Core & HTML, enhancement, P3)

enhancement

Tracking

()

RESOLVED FIXED
mozilla61
Tracking Status
firefox61 --- fixed

People

(Reporter: wptsync, Unassigned)

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 10018 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/w3c/web-platform-tests/pull/10018
Details from upstream follow.

Mattias Buelens wrote:
>  ReadableStream: Readable byte stream must call pull if needed after receiving new chunk
>  
>  This adds a test for the new behavior to be introduced by whatwg/streams#904. More tests will follow later.
>  
>  This also changes two other tests:
>  * _ReadableStream with byte source: autoAllocateChunkSize_  
>  This test previously expected `pull()` to only be called once, although `read()` is called twice. This was incorrect: `pull()` should have been called again to fulfill the second `read()`. The fixed test verifies that the second `read` is correctly fulfilled.
>  * _ReadableStream with byte source: Respond to pull() by enqueue() asynchronously_  
>  This test previously expected `pull()` to only be called once, but the amount of data enqueued by one `pull()` is not sufficient to fill the stream's queue up to its `highWaterMark` of `256`. This is now incorrect: the stream would need to repeatedly call pull until it has reached the `highWaterMark`. The fixed test sets the `highWaterMark` to `0` such that `pull()` does not get called repeatedly.
>  
>  
>
Component: web-platform-tests → DOM
Product: Testing → Core
Ran 4 tests and 293 subtests
PASS   : 133
FAIL   : 12
TIMEOUT: 8
NOTRUN : 144

Existing tests that now have a worse result (e.g. they used to PASS and now FAIL):
/streams/readable-byte-streams/general.dedicatedworker.html: TIMEOUT
    ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail: NOTRUN
    ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: Multiple read(view) and multiple enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), big enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), close() and respond(): NOTRUN
    ReadableStream with byte source: Throwing in pull function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: autoAllocateChunkSize: FAIL
    ReadableStream with byte source: cancel() with partially filled pending pull() request: NOTRUN
    ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction: NOTRUN
    ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views: NOTRUN
    ReadableStream with byte source: getReader(), read(view), then cancel(): NOTRUN
    ReadableStream with byte source: read() on an errored stream: NOTRUN
    ReadableStream with byte source: read() twice, then enqueue() twice: NOTRUN
    ReadableStream with byte source: read(), then error(): NOTRUN
    ReadableStream with byte source: read(view) on an errored stream: NOTRUN
    ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail: NOTRUN
    ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls: NOTRUN
    ReadableStream with byte source: read(view) with passing an empty object as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with passing undefined as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with zero-length view must fail: NOTRUN
    ReadableStream with byte source: read(view), then error(): NOTRUN
    ReadableStream with byte source: read(view), then respond(): NOTRUN
    ReadableStream with byte source: read(view), then respond() and close() in pull(): NOTRUN
    ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer: NOTRUN
    ReadableStream with byte source: read(view), then respond() with too big value: NOTRUN
    ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder: NOTRUN
/streams/readable-byte-streams/general.html: TIMEOUT
    ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail: NOTRUN
    ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: Multiple read(view) and multiple enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), big enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), close() and respond(): NOTRUN
    ReadableStream with byte source: Throwing in pull function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: autoAllocateChunkSize: FAIL
    ReadableStream with byte source: cancel() with partially filled pending pull() request: NOTRUN
    ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction: NOTRUN
    ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views: NOTRUN
    ReadableStream with byte source: getReader(), read(view), then cancel(): NOTRUN
    ReadableStream with byte source: read() on an errored stream: NOTRUN
    ReadableStream with byte source: read() twice, then enqueue() twice: NOTRUN
    ReadableStream with byte source: read(), then error(): NOTRUN
    ReadableStream with byte source: read(view) on an errored stream: NOTRUN
    ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail: NOTRUN
    ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls: NOTRUN
    ReadableStream with byte source: read(view) with passing an empty object as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with passing undefined as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with zero-length view must fail: NOTRUN
    ReadableStream with byte source: read(view), then error(): NOTRUN
    ReadableStream with byte source: read(view), then respond(): NOTRUN
    ReadableStream with byte source: read(view), then respond() and close() in pull(): NOTRUN
    ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer: NOTRUN
    ReadableStream with byte source: read(view), then respond() with too big value: NOTRUN
    ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder: NOTRUN
/streams/readable-byte-streams/general.serviceworker.https.html: TIMEOUT
    ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail: NOTRUN
    ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: Multiple read(view) and multiple enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), big enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), close() and respond(): NOTRUN
    ReadableStream with byte source: Throwing in pull function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: autoAllocateChunkSize: FAIL
    ReadableStream with byte source: cancel() with partially filled pending pull() request: NOTRUN
    ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction: NOTRUN
    ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views: NOTRUN
    ReadableStream with byte source: getReader(), read(view), then cancel(): NOTRUN
    ReadableStream with byte source: read() on an errored stream: NOTRUN
    ReadableStream with byte source: read() twice, then enqueue() twice: NOTRUN
    ReadableStream with byte source: read(), then error(): NOTRUN
    ReadableStream with byte source: read(view) on an errored stream: NOTRUN
    ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail: NOTRUN
    ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls: NOTRUN
    ReadableStream with byte source: read(view) with passing an empty object as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with passing undefined as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with zero-length view must fail: NOTRUN
    ReadableStream with byte source: read(view), then error(): NOTRUN
    ReadableStream with byte source: read(view), then respond(): NOTRUN
    ReadableStream with byte source: read(view), then respond() and close() in pull(): NOTRUN
    ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer: NOTRUN
    ReadableStream with byte source: read(view), then respond() with too big value: NOTRUN
    ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder: NOTRUN
/streams/readable-byte-streams/general.sharedworker.html: TIMEOUT
    ReadableStream with byte source: A stream must be errored if close()-d before fulfilling read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: Even read(view) with passing ArrayBufferView like object as view must fail: NOTRUN
    ReadableStream with byte source: Multiple enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: Multiple read(view) and multiple enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), big enqueue(): NOTRUN
    ReadableStream with byte source: Multiple read(view), close() and respond(): NOTRUN
    ReadableStream with byte source: Throwing in pull function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read() must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) function must error the stream: NOTRUN
    ReadableStream with byte source: Throwing in pull in response to read(view) must be ignored if the stream is errored in it: NOTRUN
    ReadableStream with byte source: autoAllocateChunkSize: FAIL
    ReadableStream with byte source: cancel() with partially filled pending pull() request: NOTRUN
    ReadableStream with byte source: default reader + autoAllocateChunkSize + byobRequest interaction: NOTRUN
    ReadableStream with byte source: enqueue() 1 byte, getReader(), then read(view) with Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue() 3 byte, getReader(), then read(view) with 2-element Uint16Array: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then cancel() (mode = not BYOB): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view): NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) where view.buffer is not fully covered by view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a bigger view: NOTRUN
    ReadableStream with byte source: enqueue(), getReader(), then read(view) with a smaller views: NOTRUN
    ReadableStream with byte source: getReader(), read(view), then cancel(): NOTRUN
    ReadableStream with byte source: read() on an errored stream: NOTRUN
    ReadableStream with byte source: read() twice, then enqueue() twice: NOTRUN
    ReadableStream with byte source: read(), then error(): NOTRUN
    ReadableStream with byte source: read(view) on an errored stream: NOTRUN
    ReadableStream with byte source: read(view) with Uint16Array on close()-d stream with 1 byte enqueue()-d must fail: NOTRUN
    ReadableStream with byte source: read(view) with Uint32Array, then fill it by multiple respond() calls: NOTRUN
    ReadableStream with byte source: read(view) with passing an empty object as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with passing undefined as view must fail: NOTRUN
    ReadableStream with byte source: read(view) with zero-length view must fail: NOTRUN
    ReadableStream with byte source: read(view), then error(): NOTRUN
    ReadableStream with byte source: read(view), then respond(): NOTRUN
    ReadableStream with byte source: read(view), then respond() and close() in pull(): NOTRUN
    ReadableStream with byte source: read(view), then respond() with a transferred ArrayBuffer: NOTRUN
    ReadableStream with byte source: read(view), then respond() with too big value: NOTRUN
    ReadableStream with byte source: respond(3) to read(view) with 2 element Uint16Array enqueues the 1 byte remainder: NOTRUN

New tests that have failures or other problems:
/streams/readable-byte-streams/general.dedicatedworker.html
    ReadableStream with byte source: Respond to multiple pull() by separate enqueue(): TIMEOUT
/streams/readable-byte-streams/general.html
    ReadableStream with byte source: Respond to multiple pull() by separate enqueue(): TIMEOUT
/streams/readable-byte-streams/general.serviceworker.https.html
    ReadableStream with byte source: Respond to multiple pull() by separate enqueue(): TIMEOUT
/streams/readable-byte-streams/general.sharedworker.html
    ReadableStream with byte source: Respond to multiple pull() by separate enqueue(): TIMEOUT
P4 is unused to setting priority to P3.
Priority: P4 → P3
Pushed by james@hoppipolla.co.uk:
https://hg.mozilla.org/integration/mozilla-inbound/rev/8e8f01fceede
[wpt PR 10018] - ReadableStream: Readable byte stream must call pull if needed after receiving new chunk, a=testonly
https://hg.mozilla.org/integration/mozilla-inbound/rev/837e711f0c2d
[wpt PR 10018] - Update wpt metadata, a=testonly
https://hg.mozilla.org/mozilla-central/rev/8e8f01fceede
https://hg.mozilla.org/mozilla-central/rev/837e711f0c2d
Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla61
Component: DOM → DOM: Core & HTML
You need to log in before you can comment on or make changes to this bug.