summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorMatteo Collina <hello@matteocollina.com>2018-11-14 17:23:28 +0100
committerMatteo Collina <hello@matteocollina.com>2018-11-21 12:16:47 +0100
commit69cc58d0ab8af1bb8328e685e967860cfb25474d (patch)
tree2880d0e168ae2d72f0abd473f7f99438a08af97c /test
parent8dd8b8fad9689f31673866f1b77c50098dd2c855 (diff)
downloadandroid-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.js29
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();
+}