summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/meta/streams/readable-streams
diff options
context:
space:
mode:
authorMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
committerMatt A. Tobin <mattatobin@localhost.localdomain>2018-02-02 04:16:08 -0500
commit5f8de423f190bbb79a62f804151bc24824fa32d8 (patch)
tree10027f336435511475e392454359edea8e25895d /testing/web-platform/meta/streams/readable-streams
parent49ee0794b5d912db1f95dce6eb52d781dc210db5 (diff)
downloadUXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.gz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.lz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.tar.xz
UXP-5f8de423f190bbb79a62f804151bc24824fa32d8.zip
Add m-esr52 at 52.6.0
Diffstat (limited to 'testing/web-platform/meta/streams/readable-streams')
-rw-r--r--testing/web-platform/meta/streams/readable-streams/bad-strategies.https.html.ini66
-rw-r--r--testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.https.html.ini192
-rw-r--r--testing/web-platform/meta/streams/readable-streams/brand-checks.https.html.ini120
-rw-r--r--testing/web-platform/meta/streams/readable-streams/cancel.https.html.ini93
-rw-r--r--testing/web-platform/meta/streams/readable-streams/count-queuing-strategy-integration.https.html.ini39
-rw-r--r--testing/web-platform/meta/streams/readable-streams/garbage-collection.https.html.ini39
-rw-r--r--testing/web-platform/meta/streams/readable-streams/general.https.html.ini300
-rw-r--r--testing/web-platform/meta/streams/readable-streams/pipe-through.https.html.ini48
-rw-r--r--testing/web-platform/meta/streams/readable-streams/readable-stream-reader.https.html.ini228
-rw-r--r--testing/web-platform/meta/streams/readable-streams/tee.https.html.ini93
-rw-r--r--testing/web-platform/meta/streams/readable-streams/templated.https.html.ini633
11 files changed, 1851 insertions, 0 deletions
diff --git a/testing/web-platform/meta/streams/readable-streams/bad-strategies.https.html.ini b/testing/web-platform/meta/streams/readable-streams/bad-strategies.https.html.ini
new file mode 100644
index 000000000..c46fa04a8
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/bad-strategies.https.html.ini
@@ -0,0 +1,66 @@
+[bad-strategies.https.html]
+ type: testharness
+ disabled: @True
+ [Readable stream: throwing strategy.size getter]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then throws]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then returns Infinity]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.size method]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.highWaterMark getter]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.highWaterMark]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.size return value]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.size getter]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then throws]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then returns Infinity]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.size method]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.highWaterMark getter]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.highWaterMark]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.size return value]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.size getter]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then throws]
+ expected: FAIL
+
+ [Readable stream: strategy.size errors the stream and then returns Infinity]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.size method]
+ expected: FAIL
+
+ [Readable stream: throwing strategy.highWaterMark getter]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.highWaterMark]
+ expected: FAIL
+
+ [Readable stream: invalid strategy.size return value]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.https.html.ini b/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.https.html.ini
new file mode 100644
index 000000000..f92f68732
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/bad-underlying-sources.https.html.ini
@@ -0,0 +1,192 @@
+[bad-underlying-sources.https.html]
+ type: testharness
+ disabled: @True
+ [Underlying source start: throwing getter]
+ expected: FAIL
+
+ [Underlying source start: throwing method]
+ expected: FAIL
+
+ [Underlying source: throwing pull getter (initial pull)]
+ expected: FAIL
+
+ [Underlying source: throwing pull method (initial pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing getter (second pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing method (second pull)]
+ expected: FAIL
+
+ [Underlying source cancel: throwing getter]
+ expected: FAIL
+
+ [Underlying source cancel: throwing method]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a closed stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an errored stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling close twice on an empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close twice on a non-empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close after error should throw]
+ expected: FAIL
+
+ [Underlying source: calling error twice should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling error after close should throw]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error]
+ expected: FAIL
+
+ [Underlying source start: throwing getter]
+ expected: FAIL
+
+ [Underlying source start: throwing method]
+ expected: FAIL
+
+ [Underlying source: throwing pull getter (initial pull)]
+ expected: FAIL
+
+ [Underlying source: throwing pull method (initial pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing getter (second pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing method (second pull)]
+ expected: FAIL
+
+ [Underlying source cancel: throwing getter]
+ expected: FAIL
+
+ [Underlying source cancel: throwing method]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a closed stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an errored stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling close twice on an empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close twice on a non-empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close after error should throw]
+ expected: FAIL
+
+ [Underlying source: calling error twice should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling error after close should throw]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error]
+ expected: FAIL
+
+ [Underlying source start: throwing getter]
+ expected: FAIL
+
+ [Underlying source start: throwing method]
+ expected: FAIL
+
+ [Underlying source: throwing pull getter (initial pull)]
+ expected: FAIL
+
+ [Underlying source: throwing pull method (initial pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing getter (second pull)]
+ expected: FAIL
+
+ [Underlying source pull: throwing method (second pull)]
+ expected: FAIL
+
+ [Underlying source cancel: throwing getter]
+ expected: FAIL
+
+ [Underlying source cancel: throwing method]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on a closed stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling enqueue on an errored stream should throw]
+ expected: FAIL
+
+ [Underlying source: calling close twice on an empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close twice on a non-empty stream should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling close on an empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close on a non-empty canceled stream should not throw]
+ expected: FAIL
+
+ [Underlying source: calling close after error should throw]
+ expected: FAIL
+
+ [Underlying source: calling error twice should throw the second time]
+ expected: FAIL
+
+ [Underlying source: calling error after close should throw]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from start should cause the stream to error with the first error]
+ expected: FAIL
+
+ [Underlying source: calling error and returning a rejected promise from pull should cause the stream to error with the first error]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/brand-checks.https.html.ini b/testing/web-platform/meta/streams/readable-streams/brand-checks.https.html.ini
new file mode 100644
index 000000000..fcd2175aa
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/brand-checks.https.html.ini
@@ -0,0 +1,120 @@
+[brand-checks.https.html]
+ type: testharness
+ disabled: @True
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [Can get the ReadableStreamController constructor indirectly]
+ expected: FAIL
+
+ [ReadableStream.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.getReader enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.tee enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.closed enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.read enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.releaseLock enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController can't be given a fully-constructed ReadableStream]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.close enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.enqueue enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.error enforces a brand check]
+ expected: FAIL
+
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [Can get the ReadableStreamController constructor indirectly]
+ expected: FAIL
+
+ [ReadableStream.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.getReader enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.tee enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.closed enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.read enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.releaseLock enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController can't be given a fully-constructed ReadableStream]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.close enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.enqueue enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.error enforces a brand check]
+ expected: FAIL
+
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [Can get the ReadableStreamController constructor indirectly]
+ expected: FAIL
+
+ [ReadableStream.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.getReader enforces a brand check]
+ expected: FAIL
+
+ [ReadableStream.prototype.tee enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.closed enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.cancel enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.read enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamReader.prototype.releaseLock enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController can't be given a fully-constructed ReadableStream]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.close enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.enqueue enforces a brand check]
+ expected: FAIL
+
+ [ReadableStreamController.prototype.error enforces a brand check]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/cancel.https.html.ini b/testing/web-platform/meta/streams/readable-streams/cancel.https.html.ini
new file mode 100644
index 000000000..f79ab229c
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/cancel.https.html.ini
@@ -0,0 +1,93 @@
+[cancel.https.html]
+ type: testharness
+ disabled: @True
+ [ReadableStream cancellation: integration test on an infinite stream derived from a random push source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should fulfill promise when cancel callback went fine]
+ expected: FAIL
+
+ [ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should reject promise when cancel callback raises an exception]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called]
+ expected: FAIL
+
+ [ReadableStream cancellation: integration test on an infinite stream derived from a random push source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should fulfill promise when cancel callback went fine]
+ expected: FAIL
+
+ [ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should reject promise when cancel callback raises an exception]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called]
+ expected: FAIL
+
+ [ReadableStream cancellation: integration test on an infinite stream derived from a random push source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel(reason) should pass through the given reason to the underlying source]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancel() on a locked stream should fail and not call the underlying source cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should fulfill promise when cancel callback went fine]
+ expected: FAIL
+
+ [ReadableStream cancellation: returning a value from the underlying source's cancel should not affect the fulfillment value of the promise returned by the stream's cancel]
+ expected: FAIL
+
+ [ReadableStream cancellation: should reject promise when cancel callback raises an exception]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (1)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should fulfill when that one does (2)]
+ expected: FAIL
+
+ [ReadableStream cancellation: if the underlying source's cancel method returns a promise, the promise returned by the stream's cancel should reject when that one does]
+ expected: FAIL
+
+ [ReadableStream cancellation: cancelling before start finishes should prevent pull() from being called]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/count-queuing-strategy-integration.https.html.ini b/testing/web-platform/meta/streams/readable-streams/count-queuing-strategy-integration.https.html.ini
new file mode 100644
index 000000000..0467b5918
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/count-queuing-strategy-integration.https.html.ini
@@ -0,0 +1,39 @@
+[count-queuing-strategy-integration.https.html]
+ type: testharness
+ disabled: @True
+ [Can construct a readable stream with a valid CountQueuingStrategy]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 0)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 1)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 4)]
+ expected: FAIL
+
+ [Can construct a readable stream with a valid CountQueuingStrategy]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 0)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 1)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 4)]
+ expected: FAIL
+
+ [Can construct a readable stream with a valid CountQueuingStrategy]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 0)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 1)]
+ expected: FAIL
+
+ [Correctly governs a ReadableStreamController's desiredSize property (HWM = 4)]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/garbage-collection.https.html.ini b/testing/web-platform/meta/streams/readable-streams/garbage-collection.https.html.ini
new file mode 100644
index 000000000..f8c632083
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/garbage-collection.https.html.ini
@@ -0,0 +1,39 @@
+[garbage-collection.https.html]
+ type: testharness
+ disabled: @True
+ [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
+ expected: FAIL
+
+ [ReadableStream closed promise should fulfill even if the stream and reader JS references are lost]
+ expected: FAIL
+
+ [ReadableStream closed promise should reject even if stream and reader JS references are lost]
+ expected: FAIL
+
+ [Garbage-collecting a ReadableStreamReader should not unlock its stream]
+ expected: FAIL
+
+ [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
+ expected: FAIL
+
+ [ReadableStream closed promise should fulfill even if the stream and reader JS references are lost]
+ expected: FAIL
+
+ [ReadableStream closed promise should reject even if stream and reader JS references are lost]
+ expected: FAIL
+
+ [Garbage-collecting a ReadableStreamReader should not unlock its stream]
+ expected: FAIL
+
+ [ReadableStreamController methods should continue working properly when scripts lose their reference to the readable stream]
+ expected: FAIL
+
+ [ReadableStream closed promise should fulfill even if the stream and reader JS references are lost]
+ expected: FAIL
+
+ [ReadableStream closed promise should reject even if stream and reader JS references are lost]
+ expected: FAIL
+
+ [Garbage-collecting a ReadableStreamReader should not unlock its stream]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/general.https.html.ini b/testing/web-platform/meta/streams/readable-streams/general.https.html.ini
new file mode 100644
index 000000000..1c8cb8d52
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/general.https.html.ini
@@ -0,0 +1,300 @@
+[general.https.html]
+ type: testharness
+ disabled: @True
+ [ReadableStream can be constructed with no errors]
+ expected: FAIL
+
+ [ReadableStream can't be constructed with garbage]
+ expected: FAIL
+
+ [ReadableStream instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStream constructor should throw for non-function start arguments]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as cancel argument]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as pull argument]
+ expected: FAIL
+
+ [ReadableStream start should be called with the proper parameters]
+ expected: FAIL
+
+ [ReadableStream start controller parameter should be extensible]
+ expected: FAIL
+
+ [ReadableStream should be able to call start method within prototype chain of its source]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise and reject it]
+ expected: FAIL
+
+ [ReadableStream should be able to enqueue different objects.]
+ expected: FAIL
+
+ [ReadableStream: if pull rejects, it should error the stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once upon starting the stream]
+ expected: FAIL
+
+ [ReadableStream: should call pull when trying to read from a started, empty stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from before start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from after start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull until the previous pull call's promise fulfills]
+ expected: FAIL
+
+ [ReadableStream: should pull after start, and after every read]
+ expected: FAIL
+
+ [ReadableStream: should not call pull after start if the stream is now closed]
+ expected: FAIL
+
+ [ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows]
+ expected: FAIL
+
+ [ReadableStream pull should be able to close a stream.]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is readable but draining]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is closed]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw the stored error when the stream is errored]
+ expected: FAIL
+
+ [ReadableStream: should call underlying source methods as methods]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a random push source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a sync pull source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting an async pull source]
+ expected: FAIL
+
+ [ReadableStream can be constructed with no errors]
+ expected: FAIL
+
+ [ReadableStream can't be constructed with garbage]
+ expected: FAIL
+
+ [ReadableStream instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStream constructor should throw for non-function start arguments]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as cancel argument]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as pull argument]
+ expected: FAIL
+
+ [ReadableStream start should be called with the proper parameters]
+ expected: FAIL
+
+ [ReadableStream start controller parameter should be extensible]
+ expected: FAIL
+
+ [ReadableStream should be able to call start method within prototype chain of its source]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise and reject it]
+ expected: FAIL
+
+ [ReadableStream should be able to enqueue different objects.]
+ expected: FAIL
+
+ [ReadableStream: if pull rejects, it should error the stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once upon starting the stream]
+ expected: FAIL
+
+ [ReadableStream: should call pull when trying to read from a started, empty stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from before start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from after start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull until the previous pull call's promise fulfills]
+ expected: FAIL
+
+ [ReadableStream: should pull after start, and after every read]
+ expected: FAIL
+
+ [ReadableStream: should not call pull after start if the stream is now closed]
+ expected: FAIL
+
+ [ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows]
+ expected: FAIL
+
+ [ReadableStream pull should be able to close a stream.]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is readable but draining]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is closed]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw the stored error when the stream is errored]
+ expected: FAIL
+
+ [ReadableStream: should call underlying source methods as methods]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a random push source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a sync pull source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting an async pull source]
+ expected: FAIL
+
+ [ReadableStream can be constructed with no errors]
+ expected: FAIL
+
+ [ReadableStream can't be constructed with garbage]
+ expected: FAIL
+
+ [ReadableStream instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStream constructor should throw for non-function start arguments]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as cancel argument]
+ expected: FAIL
+
+ [ReadableStream constructor can get initial garbage as pull argument]
+ expected: FAIL
+
+ [ReadableStream start should be called with the proper parameters]
+ expected: FAIL
+
+ [ReadableStream start controller parameter should be extensible]
+ expected: FAIL
+
+ [ReadableStream should be able to call start method within prototype chain of its source]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise]
+ expected: FAIL
+
+ [ReadableStream start should be able to return a promise and reject it]
+ expected: FAIL
+
+ [ReadableStream should be able to enqueue different objects.]
+ expected: FAIL
+
+ [ReadableStream: if pull rejects, it should error the stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once upon starting the stream]
+ expected: FAIL
+
+ [ReadableStream: should call pull when trying to read from a started, empty stream]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from before start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should only call pull once on a non-empty stream read from after start fulfills]
+ expected: FAIL
+
+ [ReadableStream: should call pull in reaction to read()ing the last chunk, if not draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull() in reaction to read()ing the last chunk, if draining]
+ expected: FAIL
+
+ [ReadableStream: should not call pull until the previous pull call's promise fulfills]
+ expected: FAIL
+
+ [ReadableStream: should pull after start, and after every read]
+ expected: FAIL
+
+ [ReadableStream: should not call pull after start if the stream is now closed]
+ expected: FAIL
+
+ [ReadableStream: should call pull after enqueueing from inside pull (with no read requests), if strategy allows]
+ expected: FAIL
+
+ [ReadableStream pull should be able to close a stream.]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is readable but draining]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw when the stream is closed]
+ expected: FAIL
+
+ [ReadableStream: enqueue should throw the stored error when the stream is errored]
+ expected: FAIL
+
+ [ReadableStream: should call underlying source methods as methods]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should give desiredSize of 1 to start, decreasing by 1 per enqueue]
+ expected: FAIL
+
+ [ReadableStream strategies: the default strategy should continue giving desiredSize of 1 if the chunks are read immediately]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a random push source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting a sync pull source]
+ expected: FAIL
+
+ [ReadableStream integration test: adapting an async pull source]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/pipe-through.https.html.ini b/testing/web-platform/meta/streams/readable-streams/pipe-through.https.html.ini
new file mode 100644
index 000000000..2e88ad56d
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/pipe-through.https.html.ini
@@ -0,0 +1,48 @@
+[pipe-through.https.html]
+ type: testharness
+ disabled: @True
+ [ReadableStream.prototype.pipeThrough should work generically on its this and its arguments]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when its first argument is not convertible to an object]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when "this" has no pipeTo method]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should rethrow errors from accessing pipeTo, readable, or writable]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should work generically on its this and its arguments]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when its first argument is not convertible to an object]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when "this" has no pipeTo method]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should rethrow errors from accessing pipeTo, readable, or writable]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should work generically on its this and its arguments]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when its first argument is not convertible to an object]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should throw when "this" has no pipeTo method]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should rethrow errors from accessing pipeTo, readable, or writable]
+ expected: FAIL
+
+ [ReadableStream.prototype.pipeThrough should work with missing readable, writable, or options]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/readable-stream-reader.https.html.ini b/testing/web-platform/meta/streams/readable-streams/readable-stream-reader.https.html.ini
new file mode 100644
index 000000000..31ed1d542
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/readable-stream-reader.https.html.ini
@@ -0,0 +1,228 @@
+[readable-stream-reader.https.html]
+ type: testharness
+ disabled: @True
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [ReadableStreamReader instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStreamReader closed should always return the same promise object]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is closed]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is errored]
+ expected: FAIL
+
+ [Reading from a reader for an empty stream will wait until a chunk is available]
+ expected: FAIL
+
+ [cancel() on a reader does not release the reader]
+ expected: FAIL
+
+ [closed should be fulfilled after stream is closed (.closed access before acquiring)]
+ expected: FAIL
+
+ [closed should be rejected after reader releases its lock (multiple stream locks)]
+ expected: FAIL
+
+ [Multiple readers can access the stream in sequence]
+ expected: FAIL
+
+ [Cannot use an already-released reader to unlock a stream again]
+ expected: FAIL
+
+ [cancel() on a released reader is a no-op and does not pass through]
+ expected: FAIL
+
+ [Getting a second reader after erroring the stream and releasing the reader should succeed]
+ expected: FAIL
+
+ [ReadableStreamReader closed promise should be rejected with undefined if that is the error]
+ expected: FAIL
+
+ [ReadableStreamReader: if start rejects with no parameter, it should error the stream with an undefined error]
+ expected: FAIL
+
+ [Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Reading twice on a stream that gets closed]
+ expected: FAIL
+
+ [Reading twice on a closed stream]
+ expected: FAIL
+
+ [Reading twice on an errored stream]
+ expected: FAIL
+
+ [Reading twice on a stream that gets errored]
+ expected: FAIL
+
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [ReadableStreamReader instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStreamReader closed should always return the same promise object]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is closed]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is errored]
+ expected: FAIL
+
+ [Reading from a reader for an empty stream will wait until a chunk is available]
+ expected: FAIL
+
+ [cancel() on a reader does not release the reader]
+ expected: FAIL
+
+ [closed should be fulfilled after stream is closed (.closed access before acquiring)]
+ expected: FAIL
+
+ [closed should be rejected after reader releases its lock (multiple stream locks)]
+ expected: FAIL
+
+ [Multiple readers can access the stream in sequence]
+ expected: FAIL
+
+ [Cannot use an already-released reader to unlock a stream again]
+ expected: FAIL
+
+ [cancel() on a released reader is a no-op and does not pass through]
+ expected: FAIL
+
+ [Getting a second reader after erroring the stream and releasing the reader should succeed]
+ expected: FAIL
+
+ [ReadableStreamReader closed promise should be rejected with undefined if that is the error]
+ expected: FAIL
+
+ [ReadableStreamReader: if start rejects with no parameter, it should error the stream with an undefined error]
+ expected: FAIL
+
+ [Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Reading twice on a stream that gets closed]
+ expected: FAIL
+
+ [Reading twice on a closed stream]
+ expected: FAIL
+
+ [Reading twice on an errored stream]
+ expected: FAIL
+
+ [Reading twice on a stream that gets errored]
+ expected: FAIL
+
+ [Can get the ReadableStreamReader constructor indirectly]
+ expected: FAIL
+
+ [ReadableStreamReader instances should have the correct list of properties]
+ expected: FAIL
+
+ [ReadableStreamReader closed should always return the same promise object]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via direct construction)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Getting a ReadableStreamReader via getReader should fail if the stream is already locked (via getReader)]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is closed]
+ expected: FAIL
+
+ [Constructing a ReadableStreamReader directly should be OK if the stream is errored]
+ expected: FAIL
+
+ [Reading from a reader for an empty stream will wait until a chunk is available]
+ expected: FAIL
+
+ [cancel() on a reader does not release the reader]
+ expected: FAIL
+
+ [closed should be fulfilled after stream is closed (.closed access before acquiring)]
+ expected: FAIL
+
+ [closed should be rejected after reader releases its lock (multiple stream locks)]
+ expected: FAIL
+
+ [Multiple readers can access the stream in sequence]
+ expected: FAIL
+
+ [Cannot use an already-released reader to unlock a stream again]
+ expected: FAIL
+
+ [cancel() on a released reader is a no-op and does not pass through]
+ expected: FAIL
+
+ [Getting a second reader after erroring the stream and releasing the reader should succeed]
+ expected: FAIL
+
+ [ReadableStreamReader closed promise should be rejected with undefined if that is the error]
+ expected: FAIL
+
+ [ReadableStreamReader: if start rejects with no parameter, it should error the stream with an undefined error]
+ expected: FAIL
+
+ [Erroring a ReadableStream after checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Erroring a ReadableStream before checking closed should reject ReadableStreamReader closed promise]
+ expected: FAIL
+
+ [Reading twice on a stream that gets closed]
+ expected: FAIL
+
+ [Reading twice on a closed stream]
+ expected: FAIL
+
+ [Reading twice on an errored stream]
+ expected: FAIL
+
+ [Reading twice on a stream that gets errored]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/tee.https.html.ini b/testing/web-platform/meta/streams/readable-streams/tee.https.html.ini
new file mode 100644
index 000000000..33cd1120a
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/tee.https.html.ini
@@ -0,0 +1,93 @@
+[tee.https.html]
+ type: testharness
+ disabled: @True
+ [ReadableStream teeing: rs.tee() returns an array of two ReadableStreams]
+ expected: FAIL
+
+ [ReadableStream teeing: should be able to read one branch to the end without affecting the other]
+ expected: FAIL
+
+ [ReadableStream teeing: values should be equal across each branch]
+ expected: FAIL
+
+ [ReadableStream teeing: errors in the source should propagate to both branches]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch1 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch2 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array]
+ expected: FAIL
+
+ [ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches]
+ expected: FAIL
+
+ [ReadableStream teeing: closing the original should immediately close the branches]
+ expected: FAIL
+
+ [ReadableStream teeing: erroring the original should immediately error the branches]
+ expected: FAIL
+
+ [ReadableStream teeing: rs.tee() returns an array of two ReadableStreams]
+ expected: FAIL
+
+ [ReadableStream teeing: should be able to read one branch to the end without affecting the other]
+ expected: FAIL
+
+ [ReadableStream teeing: values should be equal across each branch]
+ expected: FAIL
+
+ [ReadableStream teeing: errors in the source should propagate to both branches]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch1 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch2 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array]
+ expected: FAIL
+
+ [ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches]
+ expected: FAIL
+
+ [ReadableStream teeing: closing the original should immediately close the branches]
+ expected: FAIL
+
+ [ReadableStream teeing: erroring the original should immediately error the branches]
+ expected: FAIL
+
+ [ReadableStream teeing: rs.tee() returns an array of two ReadableStreams]
+ expected: FAIL
+
+ [ReadableStream teeing: should be able to read one branch to the end without affecting the other]
+ expected: FAIL
+
+ [ReadableStream teeing: values should be equal across each branch]
+ expected: FAIL
+
+ [ReadableStream teeing: errors in the source should propagate to both branches]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch1 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling branch2 should not impact branch2]
+ expected: FAIL
+
+ [ReadableStream teeing: canceling both branches should aggregate the cancel reasons into an array]
+ expected: FAIL
+
+ [ReadableStream teeing: failing to cancel the original stream should cause cancel() to reject on branches]
+ expected: FAIL
+
+ [ReadableStream teeing: closing the original should immediately close the branches]
+ expected: FAIL
+
+ [ReadableStream teeing: erroring the original should immediately error the branches]
+ expected: FAIL
+
diff --git a/testing/web-platform/meta/streams/readable-streams/templated.https.html.ini b/testing/web-platform/meta/streams/readable-streams/templated.https.html.ini
new file mode 100644
index 000000000..7b885ca93
--- /dev/null
+++ b/testing/web-platform/meta/streams/readable-streams/templated.https.html.ini
@@ -0,0 +1,633 @@
+[templated.https.html]
+ type: testharness
+ disabled: @True
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [locked should be true]
+ expected: FAIL
+
+ [read() should never settle]
+ expected: FAIL
+
+ [two read()s should both never settle]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [getReader() again on the stream should fail]
+ expected: FAIL
+
+ [releasing the lock with pending read requests should throw but the read requests should stay pending]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause closed calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause locked to become false]
+ expected: FAIL
+
+ [canceling via the reader should cause the reader to act closed]
+ expected: FAIL
+
+ [canceling via the stream should fail]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [should be able to obtain a second reader, with the correct closed promise]
+ expected: FAIL
+
+ [should not be able to obtain additional readers if we don't release the first lock]
+ expected: FAIL
+
+ [cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [reader cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (sequential)]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (nested)]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [cancel() after a read() should still give that single read result]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (sequential)]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (nested)]
+ expected: FAIL
+
+ [draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true]
+ expected: FAIL
+
+ [releasing the lock after the stream is closed should cause locked to become false]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [reader's closed property always returns the same promise]
+ expected: FAIL
+
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [locked should be true]
+ expected: FAIL
+
+ [read() should never settle]
+ expected: FAIL
+
+ [two read()s should both never settle]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [getReader() again on the stream should fail]
+ expected: FAIL
+
+ [releasing the lock with pending read requests should throw but the read requests should stay pending]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause closed calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause locked to become false]
+ expected: FAIL
+
+ [canceling via the reader should cause the reader to act closed]
+ expected: FAIL
+
+ [canceling via the stream should fail]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [should be able to obtain a second reader, with the correct closed promise]
+ expected: FAIL
+
+ [should not be able to obtain additional readers if we don't release the first lock]
+ expected: FAIL
+
+ [cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [reader cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (sequential)]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (nested)]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [cancel() after a read() should still give that single read result]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (sequential)]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (nested)]
+ expected: FAIL
+
+ [draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true]
+ expected: FAIL
+
+ [releasing the lock after the stream is closed should cause locked to become false]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [reader's closed property always returns the same promise]
+ expected: FAIL
+
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [instances have the correct methods and properties]
+ expected: FAIL
+
+ [locked should be true]
+ expected: FAIL
+
+ [read() should never settle]
+ expected: FAIL
+
+ [two read()s should both never settle]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [getReader() again on the stream should fail]
+ expected: FAIL
+
+ [releasing the lock with pending read requests should throw but the read requests should stay pending]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause closed calls to reject with a TypeError]
+ expected: FAIL
+
+ [releasing the lock should cause locked to become false]
+ expected: FAIL
+
+ [canceling via the reader should cause the reader to act closed]
+ expected: FAIL
+
+ [canceling via the stream should fail]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [getReader() should be OK]
+ expected: FAIL
+
+ [should be able to acquire multiple readers if they are released in succession]
+ expected: FAIL
+
+ [should not be able to acquire a second reader if we don't release the first one]
+ expected: FAIL
+
+ [read() should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() multiple times should fulfill with { value: undefined, done: true }]
+ expected: FAIL
+
+ [read() should work when used within another read() fulfill callback]
+ expected: FAIL
+
+ [closed should fulfill with undefined]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [cancel() should return a distinct fulfilled promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [should be able to obtain a second reader, with the correct closed promise]
+ expected: FAIL
+
+ [should not be able to obtain additional readers if we don't release the first lock]
+ expected: FAIL
+
+ [cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [reader cancel() should return a distinct rejected promise each time]
+ expected: FAIL
+
+ [getReader() should return a reader that acts errored]
+ expected: FAIL
+
+ [read() twice should give the error each time]
+ expected: FAIL
+
+ [locked should be false]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [closed should reject with the error]
+ expected: FAIL
+
+ [releasing the lock should cause closed to reject and change identity]
+ expected: FAIL
+
+ [read() should reject with the error]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (sequential)]
+ expected: FAIL
+
+ [calling read() twice without waiting will eventually give both chunks (nested)]
+ expected: FAIL
+
+ [read() should return distinct promises each time]
+ expected: FAIL
+
+ [cancel() after a read() should still give that single read result]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (sequential)]
+ expected: FAIL
+
+ [third read(), without waiting, should give { value: undefined, done: true } (nested)]
+ expected: FAIL
+
+ [draining the stream via read() should cause the reader closed promise to fulfill, but locked stays true]
+ expected: FAIL
+
+ [releasing the lock after the stream is closed should cause locked to become false]
+ expected: FAIL
+
+ [releasing the lock should cause further read() calls to reject with a TypeError]
+ expected: FAIL
+
+ [reader's closed property always returns the same promise]
+ expected: FAIL
+