summaryrefslogtreecommitdiff
path: root/test/parallel/test-stream-readable-destroy.js
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2018-04-17 17:24:22 +0200
committerMatteo Collina <hello@matteocollina.com>2018-04-20 15:12:22 +0200
commit08577906569a4c2de70ad2a861e2f8456cd8fcdd (patch)
treed90569aa4d6099df48ffe16bb22db777c8640a92 /test/parallel/test-stream-readable-destroy.js
parent700344e388b57651c190222f570d658504b8c06f (diff)
downloadandroid-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.js15
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);
+}