summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2019-03-07 10:18:03 +0100
committerAnna Henningsen <anna@addaleax.net>2019-03-11 09:56:56 +0000
commita52aedeae08b57daedae56fd818be09df5f32e86 (patch)
tree60b9ea606dec5bb1fdeb64eb20fd4641bf560d74 /test
parent6113ba96cb941775f20369924484046cd8e05089 (diff)
downloadandroid-node-v8-a52aedeae08b57daedae56fd818be09df5f32e86.tar.gz
android-node-v8-a52aedeae08b57daedae56fd818be09df5f32e86.tar.bz2
android-node-v8-a52aedeae08b57daedae56fd818be09df5f32e86.zip
worker: remove `ERR_CLOSED_MESSAGE_PORT`
This aligns `MessagePort`s more with the web API. Refs: https://github.com/nodejs/node/issues/26463 PR-URL: https://github.com/nodejs/node/pull/26487 Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
Diffstat (limited to 'test')
-rw-r--r--test/parallel/test-worker-message-port-close.js31
1 files changed, 31 insertions, 0 deletions
diff --git a/test/parallel/test-worker-message-port-close.js b/test/parallel/test-worker-message-port-close.js
new file mode 100644
index 0000000000..17a10559e4
--- /dev/null
+++ b/test/parallel/test-worker-message-port-close.js
@@ -0,0 +1,31 @@
+'use strict';
+const common = require('../common');
+const { MessageChannel } = require('worker_threads');
+
+// Make sure that .start() and .stop() do not throw on closing/closed
+// MessagePorts.
+// Refs: https://github.com/nodejs/node/issues/26463
+
+function dummy() {}
+
+{
+ const { port1, port2 } = new MessageChannel();
+ port1.close(common.mustCall(() => {
+ port1.on('message', dummy);
+ port1.off('message', dummy);
+ port2.on('message', dummy);
+ port2.off('message', dummy);
+ }));
+ port1.on('message', dummy);
+ port1.off('message', dummy);
+ port2.on('message', dummy);
+ port2.off('message', dummy);
+}
+
+{
+ const { port1 } = new MessageChannel();
+ port1.on('message', dummy);
+ port1.close(common.mustCall(() => {
+ port1.off('message', dummy);
+ }));
+}