diff options
author | Matteo Collina <hello@matteocollina.com> | 2018-11-14 17:23:28 +0100 |
---|---|---|
committer | Matteo Collina <hello@matteocollina.com> | 2018-11-21 12:16:47 +0100 |
commit | 69cc58d0ab8af1bb8328e685e967860cfb25474d (patch) | |
tree | 2880d0e168ae2d72f0abd473f7f99438a08af97c /test | |
parent | 8dd8b8fad9689f31673866f1b77c50098dd2c855 (diff) | |
download | android-node-v8-69cc58d0ab8af1bb8328e685e967860cfb25474d.tar.gz android-node-v8-69cc58d0ab8af1bb8328e685e967860cfb25474d.tar.bz2 android-node-v8-69cc58d0ab8af1bb8328e685e967860cfb25474d.zip |
stream: correctly pause and resume after once('readable')
Fixes: https://github.com/nodejs/node/issues/24281
PR-URL: https://github.com/nodejs/node/pull/24366
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/parallel/test-stream-readable-readable-then-resume.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/parallel/test-stream-readable-readable-then-resume.js b/test/parallel/test-stream-readable-readable-then-resume.js new file mode 100644 index 0000000000..83cf49333a --- /dev/null +++ b/test/parallel/test-stream-readable-readable-then-resume.js @@ -0,0 +1,29 @@ +'use strict'; + +const common = require('../common'); +const { Readable } = require('stream'); + +// This test verifies that a stream could be resumed after +// removing the readable event in the same tick + +check(new Readable({ + objectMode: true, + highWaterMark: 1, + read() { + if (!this.first) { + this.push('hello'); + this.first = true; + return; + } + + this.push(null); + } +})); + +function check(s) { + const readableListener = common.mustNotCall(); + s.on('readable', readableListener); + s.on('end', common.mustCall()); + s.removeListener('readable', readableListener); + s.resume(); +} |