aborting.any.html
Details
- Test
/streams/writable-streams/aborting.any.html- Harness
- OK
Subtests
| Status | Subtest |
|---|---|
| FAIL | Aborting a WritableStream before it starts should cause the writer's unsettled ready promise to reject assert_unreached: write() should not be called Reached unreachable code |
| PASS | Aborting a WritableStream should cause the writer's fulfilled ready promise to reset to a rejected one |
| PASS | abort() on a released writer rejects |
| PASS | Aborting a WritableStream immediately prevents future writes |
| PASS | Aborting a WritableStream prevents further writes after any that are in progress |
| PASS | Fulfillment value of writer.abort() call must be undefined even if the underlying sink returns a non-undefined value |
| PASS | WritableStream if sink's abort throws, the promise returned by writer.abort() rejects |
| FAIL | WritableStream if sink's abort throws, the promise returned by multiple writer.abort()s is the same and rejects assert_equals: the promises must be the same expected object "[object Promise]" but got object "[object Promise]" |
| PASS | WritableStream if sink's abort throws, the promise returned by ws.abort() rejects |
| PASS | WritableStream if sink's abort throws, for an abort performed during a write, the promise returned by ws.abort() rejects |
| PASS | Aborting a WritableStream passes through the given reason |
| PASS | Aborting a WritableStream puts it in an errored state with the error passed to abort() |
| FAIL | Aborting a WritableStream causes any outstanding write() promises to be rejected with the reason supplied assert_unreached: Should have rejected: writing should reject with error1 Reached unreachable code |
| PASS | Closing but then immediately aborting a WritableStream causes the stream to error |
| PASS | Closing a WritableStream and aborting it while it closes causes the stream to ignore the abort attempt |
| PASS | Aborting a WritableStream after it is closed is a no-op |
| PASS | WritableStream should NOT call underlying sink's close if no abort is supplied (historical) |
| PASS | returning a thenable from abort() should work |
| PASS | .closed should not resolve before fulfilled write() |
| PASS | .closed should not resolve before rejected write(); write() error should not overwrite abort() error |
| PASS | writes should be satisfied in order when aborting |
| PASS | writes should be satisfied in order after rejected write when aborting |
| PASS | close() should reject with abort reason why abort() is first error |
| PASS | underlying abort() should not be called until underlying write() completes |
| PASS | underlying abort() should not be called if underlying close() has started |
| PASS | if underlying close() has started and then rejects, the abort() and close() promises should reject with the underlying close rejection reason |
| PASS | an abort() that happens during a write() should trigger the underlying abort() even with a close() queued |
| PASS | if a writer is created for a stream with a pending abort, its ready should be rejected with the abort error |
| PASS | writer close() promise should resolve before abort() promise |
| PASS | writer.ready should reject on controller error without waiting for underlying write |
| FAIL | writer.abort() while there is an in-flight write, and then finish the write with rejection promise_rejects_js: writer.closed must be rejected with an error indicating release function "function() { throw e; }" threw object "error1: error1" ("error1") expected instance of function "function … |
| FAIL | writer.abort(), controller.error() while there is an in-flight write, and then finish the write promise_rejects_js: writer.closed must be rejected with an error indicating release function "function() { throw e; }" threw object "error1: error1" ("error1") expected instance of function "function … |
| FAIL | writer.abort(), controller.error() while there is an in-flight close, and then finish the close assert_unreached: Should have rejected: writer.closed must be rejected with an error indicating release Reached unreachable code |
| FAIL | controller.error(), writer.abort() while there is an in-flight write, and then finish the write promise_rejects_js: writer.closed must be rejected with an error indicating release function "function() { throw e; }" threw object "error2: error2" ("error2") expected instance of function "function … |
| FAIL | controller.error(), writer.abort() while there is an in-flight close, and then finish the close assert_unreached: Should have rejected: writer.closed must be rejected with an error indicating release Reached unreachable code |
| PASS | releaseLock() while aborting should reject the original closed promise |
| PASS | releaseLock() during delayed async abort() should reject the writer.closed promise |
| PASS | sink abort() should not be called until sink start() is done |
| PASS | if start attempts to error the controller after abort() has been called, then it should lose |
| PASS | stream abort() promise should still resolve if sink start() rejects |
| PASS | writer abort() during sink start() should replace the writer.ready promise synchronously |
| PASS | promises returned from other writer methods should be rejected when writer abort() happens during sink start() |
| PASS | abort() should succeed despite rejection from write |
| PASS | abort() should be rejected with the rejection returned from close() |
| PASS | a rejecting sink.write() should not prevent sink.abort() from being called |
| PASS | when start errors after stream abort(), underlying sink abort() should be called anyway |
| FAIL | when calling abort() twice on the same stream, both should give the same promise that fulfills with undefined assert_equals: the promises must be the same expected object "[object Promise]" but got object "[object Promise]" |
| PASS | when calling abort() twice on the same stream, but sequentially so so there's no pending abort the second time, both should fulfill with undefined |
| PASS | calling abort() on an errored stream should fulfill with undefined |
| PASS | sink abort() should not be called if stream was erroring due to controller.error() before abort() was called |
| FAIL | sink abort() should not be called if stream was erroring due to bad strategy before abort() was called promise_rejects_js: second write() should reject function "function() { throw e; }" threw object "TypeError: The value cannot be converted because it is not an integer." ("TypeError") expected instanc… |
| PASS | abort with no arguments should set the stored error to undefined |
| PASS | abort with an undefined argument should set the stored error to undefined |
| PASS | abort with a string argument should set the stored error to that argument |
| PASS | abort on a locked stream should reject |
| PASS | WritableStreamDefaultController.signal |
| FAIL | the abort signal is signalled synchronously - write assert_true: signal.reason is a DOMException expected true got false |
| PASS | the abort signal is signalled synchronously - close |
| PASS | the abort signal is not signalled on error |
| PASS | the abort signal is not signalled on write failure |
| PASS | the abort signal is not signalled on close failure |
| PASS | recursive abort() call from abort() aborting signal (not started) |
| PASS | recursive abort() call from abort() aborting signal |
| PASS | recursive close() call from abort() aborting signal (not started) |
| PASS | recursive close() call from abort() aborting signal |