diff options
author | Matteo Collina <hello@matteocollina.com> | 2018-04-17 17:24:22 +0200 |
---|---|---|
committer | Matteo Collina <hello@matteocollina.com> | 2018-04-20 15:12:22 +0200 |
commit | 08577906569a4c2de70ad2a861e2f8456cd8fcdd (patch) | |
tree | d90569aa4d6099df48ffe16bb22db777c8640a92 /test/parallel/test-stream-readable-destroy.js | |
parent | 700344e388b57651c190222f570d658504b8c06f (diff) | |
download | android-node-v8-08577906569a4c2de70ad2a861e2f8456cd8fcdd.tar.gz android-node-v8-08577906569a4c2de70ad2a861e2f8456cd8fcdd.tar.bz2 android-node-v8-08577906569a4c2de70ad2a861e2f8456cd8fcdd.zip |
stream: prevent 'end' to be emitted after 'error'
This PR adds _readableState.errorEmitted and add the tracking of it.
Fixes: https://github.com/nodejs/node/issues/6083
PR-URL: https://github.com/nodejs/node/pull/20104
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Reviewed-By: Trivikram Kamat <trivikr.dev@gmail.com>
Diffstat (limited to 'test/parallel/test-stream-readable-destroy.js')
-rw-r--r-- | test/parallel/test-stream-readable-destroy.js | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/test/parallel/test-stream-readable-destroy.js b/test/parallel/test-stream-readable-destroy.js index 026aa8ca16..eecee04294 100644 --- a/test/parallel/test-stream-readable-destroy.js +++ b/test/parallel/test-stream-readable-destroy.js @@ -189,3 +189,18 @@ const { inherits } = require('util'); read.push('hi'); read.on('data', common.mustNotCall()); } + +{ + // double error case + const read = new Readable({ + read() {} + }); + + read.on('close', common.mustCall()); + read.on('error', common.mustCall()); + + read.destroy(new Error('kaboom 1')); + read.destroy(new Error('kaboom 2')); + assert.strictEqual(read._readableState.errorEmitted, true); + assert.strictEqual(read.destroyed, true); +} |