summaryrefslogtreecommitdiff
path: root/test/known_issues
diff options
context:
space:
mode:
authorAnna Henningsen <anna@addaleax.net>2020-06-23 00:33:04 +0200
committerJames M Snell <jasnell@gmail.com>2020-06-26 11:41:33 -0700
commitf63436d190b60e12131036aa9d1888d9023e9127 (patch)
tree8cd64069819b9eb0d1e222fb3b6048cb071f222b /test/known_issues
parente68563e31c5289c39d4e564a3e5d27e5a713ee41 (diff)
downloadnode-new-f63436d190b60e12131036aa9d1888d9023e9127.tar.gz
vm: add run-after-evaluate microtask mode
This allows timeouts to apply to e.g. `Promise`s and `async function`s from code running inside of `vm.Context`s, by giving the Context its own microtasks queue. Fixes: https://github.com/nodejs/node/issues/3020 PR-URL: https://github.com/nodejs/node/pull/34023 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Denys Otrishko <shishugi@gmail.com>
Diffstat (limited to 'test/known_issues')
-rw-r--r--test/known_issues/known_issues.status3
-rw-r--r--test/known_issues/test-vm-timeout-escape-promise.js39
-rw-r--r--test/known_issues/test-vm-timeout-escape-queuemicrotask.js2
3 files changed, 1 insertions, 43 deletions
diff --git a/test/known_issues/known_issues.status b/test/known_issues/known_issues.status
index 9ca45bbd85..86d95e41d1 100644
--- a/test/known_issues/known_issues.status
+++ b/test/known_issues/known_issues.status
@@ -14,9 +14,6 @@ test-vm-timeout-escape-queuemicrotask: SKIP
[$system==win32]
[$system==linux]
-# https://github.com/nodejs/node/pull/23743
-# https://github.com/nodejs/node/issues/3020
-test-vm-timeout-escape-promise: PASS,FLAKY
[$system==macos]
diff --git a/test/known_issues/test-vm-timeout-escape-promise.js b/test/known_issues/test-vm-timeout-escape-promise.js
deleted file mode 100644
index 4452c83cd1..0000000000
--- a/test/known_issues/test-vm-timeout-escape-promise.js
+++ /dev/null
@@ -1,39 +0,0 @@
-'use strict';
-
-// https://github.com/nodejs/node/issues/3020
-// Promises, nextTick, and queueMicrotask allow code to escape the timeout
-// set for runInContext, runInNewContext, and runInThisContext
-
-require('../common');
-const assert = require('assert');
-const vm = require('vm');
-
-const NS_PER_MS = 1000000n;
-
-const hrtime = process.hrtime.bigint;
-
-function loop() {
- const start = hrtime();
- while (1) {
- const current = hrtime();
- const span = (current - start) / NS_PER_MS;
- if (span >= 100n) {
- throw new Error(
- `escaped timeout at ${span} milliseconds!`);
- }
- }
-}
-
-assert.throws(() => {
- vm.runInNewContext(
- 'Promise.resolve().then(loop); loop();',
- {
- hrtime,
- loop
- },
- { timeout: 5 }
- );
-}, {
- code: 'ERR_SCRIPT_EXECUTION_TIMEOUT',
- message: 'Script execution timed out after 5ms'
-});
diff --git a/test/known_issues/test-vm-timeout-escape-queuemicrotask.js b/test/known_issues/test-vm-timeout-escape-queuemicrotask.js
index 0d3a0b0c5c..c8333bd044 100644
--- a/test/known_issues/test-vm-timeout-escape-queuemicrotask.js
+++ b/test/known_issues/test-vm-timeout-escape-queuemicrotask.js
@@ -35,7 +35,7 @@ assert.throws(() => {
queueMicrotask,
loop
},
- { timeout }
+ { timeout, microtaskMode: 'afterScriptRun' }
);
}, {
code: 'ERR_SCRIPT_EXECUTION_TIMEOUT',