From 95792a79892471e2c691c071e85d7fea29aa40cd Mon Sep 17 00:00:00 2001 From: Richard Lau Date: Fri, 27 Sep 2019 20:32:40 -0400 Subject: Revert "stream: invoke callback before emitting error always" This reverts commit 3de5eae6dbe503485b95bdeb8bddbd67e4613d59. PR-URL: https://github.com/nodejs/node/pull/29741 Reviewed-By: Rich Trott Reviewed-By: Jiawen Geng Reviewed-By: Colin Ihrig --- test/parallel/test-http2-reset-flood.js | 5 +- test/parallel/test-stream-writable-destroy.js | 14 ------ .../test-stream-writable-write-cb-error.js | 58 ---------------------- test/parallel/test-wrap-js-stream-exceptions.js | 6 +-- test/parallel/test-zlib-write-after-close.js | 14 +++--- 5 files changed, 10 insertions(+), 87 deletions(-) delete mode 100644 test/parallel/test-stream-writable-write-cb-error.js (limited to 'test') diff --git a/test/parallel/test-http2-reset-flood.js b/test/parallel/test-http2-reset-flood.js index 9977bfd1a3..a6553401fb 100644 --- a/test/parallel/test-http2-reset-flood.js +++ b/test/parallel/test-http2-reset-flood.js @@ -67,10 +67,7 @@ const worker = new Worker(__filename).on('message', common.mustCall((port) => { h2header.writeIntBE(1, 0, 3); // Length: 1 h2header.writeIntBE(i, 5, 4); // Stream ID // 0x88 = :status: 200 - if (!conn.write(Buffer.concat([h2header, Buffer.from([0x88])]))) { - process.nextTick(writeRequests); - break; - } + conn.write(Buffer.concat([h2header, Buffer.from([0x88])])); } } diff --git a/test/parallel/test-stream-writable-destroy.js b/test/parallel/test-stream-writable-destroy.js index c4a96788ab..ac107ecbb7 100644 --- a/test/parallel/test-stream-writable-destroy.js +++ b/test/parallel/test-stream-writable-destroy.js @@ -16,20 +16,6 @@ const assert = require('assert'); assert.strictEqual(write.destroyed, true); } -{ - const write = new Writable({ - write(chunk, enc, cb) { - this.destroy(new Error('asd')); - cb(); - } - }); - - write.on('error', common.mustCall()); - write.on('finish', common.mustNotCall()); - write.end('asd'); - assert.strictEqual(write.destroyed, true); -} - { const write = new Writable({ write(chunk, enc, cb) { cb(); } diff --git a/test/parallel/test-stream-writable-write-cb-error.js b/test/parallel/test-stream-writable-write-cb-error.js deleted file mode 100644 index 72db1b7e3f..0000000000 --- a/test/parallel/test-stream-writable-write-cb-error.js +++ /dev/null @@ -1,58 +0,0 @@ -'use strict'; -const common = require('../common'); -const { Writable } = require('stream'); -const assert = require('assert'); - -// Ensure callback is always invoked before -// error is emitted. Regardless if error was -// sync or async. - -{ - let callbackCalled = false; - // Sync Error - const writable = new Writable({ - write: common.mustCall((buf, enc, cb) => { - cb(new Error()); - }) - }); - writable.on('error', common.mustCall(() => { - assert.strictEqual(callbackCalled, true); - })); - writable.write('hi', common.mustCall(() => { - callbackCalled = true; - })); -} - -{ - let callbackCalled = false; - // Async Error - const writable = new Writable({ - write: common.mustCall((buf, enc, cb) => { - process.nextTick(cb, new Error()); - }) - }); - writable.on('error', common.mustCall(() => { - assert.strictEqual(callbackCalled, true); - })); - writable.write('hi', common.mustCall(() => { - callbackCalled = true; - })); -} - -{ - // Sync Error - const writable = new Writable({ - write: common.mustCall((buf, enc, cb) => { - cb(new Error()); - }) - }); - - writable.on('error', common.mustCall()); - - let cnt = 0; - // Ensure we don't live lock on sync error - while (writable.write('a')) - cnt++; - - assert.strictEqual(cnt, 0); -} diff --git a/test/parallel/test-wrap-js-stream-exceptions.js b/test/parallel/test-wrap-js-stream-exceptions.js index 2cc592a760..eeab26f525 100644 --- a/test/parallel/test-wrap-js-stream-exceptions.js +++ b/test/parallel/test-wrap-js-stream-exceptions.js @@ -16,8 +16,4 @@ const socket = new JSStreamWrap(new Duplex({ }) })); -socket.end('foo'); -socket.on('error', common.expectsError({ - type: Error, - message: 'write EPROTO' -})); +assert.throws(() => socket.end('foo'), /Error: write EPROTO/); diff --git a/test/parallel/test-zlib-write-after-close.js b/test/parallel/test-zlib-write-after-close.js index 24d1e9b990..160971b16b 100644 --- a/test/parallel/test-zlib-write-after-close.js +++ b/test/parallel/test-zlib-write-after-close.js @@ -26,10 +26,12 @@ const zlib = require('zlib'); zlib.gzip('hello', common.mustCall(function(err, out) { const unzip = zlib.createGunzip(); unzip.close(common.mustCall()); - - unzip.write(out); - unzip.on('error', common.expectsError({ - code: 'ERR_STREAM_DESTROYED', - type: Error - })); + common.expectsError( + () => unzip.write(out), + { + code: 'ERR_STREAM_DESTROYED', + type: Error, + message: 'Cannot call write after a stream was destroyed' + } + ); })); -- cgit v1.2.3