summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--test/common/README.md9
-rw-r--r--test/common/index.js42
-rw-r--r--test/common/inspector-helper.js41
-rw-r--r--test/parallel/test-repl-top-level-await.js4
4 files changed, 41 insertions, 55 deletions
diff --git a/test/common/README.md b/test/common/README.md
index f48215836e..52e8e2e59c 100644
--- a/test/common/README.md
+++ b/test/common/README.md
@@ -118,15 +118,6 @@ Tests whether `name` and `expected` are part of a raised warning.
Checks if `pathname` exists
-### fires(promise, [error], [timeoutMs])
-* promise [<Promise]
-* error [<String] default = 'timeout'
-* timeoutMs [<Number] default = 100
-
-Returns a new promise that will propagate `promise` resolution or rejection if
-that happens within the `timeoutMs` timespan, or rejects with `error` as
-a reason otherwise.
-
### getArrayBufferViews(buf)
* `buf` [<Buffer>]
* return [<ArrayBufferView[]>]
diff --git a/test/common/index.js b/test/common/index.js
index 2cf188abe5..f0ff819399 100644
--- a/test/common/index.js
+++ b/test/common/index.js
@@ -850,32 +850,6 @@ function restoreWritable(name) {
delete process[name].writeTimes;
}
-function onResolvedOrRejected(promise, callback) {
- return promise.then((result) => {
- callback();
- return result;
- }, (error) => {
- callback();
- throw error;
- });
-}
-
-function timeoutPromise(error, timeoutMs) {
- let clearCallback = null;
- let done = false;
- const promise = onResolvedOrRejected(new Promise((resolve, reject) => {
- const timeout = setTimeout(() => reject(error), timeoutMs);
- clearCallback = () => {
- if (done)
- return;
- clearTimeout(timeout);
- resolve();
- };
- }), () => done = true);
- promise.clear = clearCallback;
- return promise;
-}
-
exports.hijackStdout = hijackStdWritable.bind(null, 'stdout');
exports.hijackStderr = hijackStdWritable.bind(null, 'stderr');
exports.restoreStdout = restoreWritable.bind(null, 'stdout');
@@ -889,19 +863,3 @@ exports.firstInvalidFD = function firstInvalidFD() {
} catch (e) {}
return fd;
};
-
-exports.fires = function fires(promise, error, timeoutMs) {
- if (!timeoutMs && util.isNumber(error)) {
- timeoutMs = error;
- error = null;
- }
- if (!error)
- error = 'timeout';
- if (!timeoutMs)
- timeoutMs = 100;
- const timeout = timeoutPromise(error, timeoutMs);
- return Promise.race([
- onResolvedOrRejected(promise, () => timeout.clear()),
- timeout
- ]);
-};
diff --git a/test/common/inspector-helper.js b/test/common/inspector-helper.js
index 454eef4c5e..8fc778555d 100644
--- a/test/common/inspector-helper.js
+++ b/test/common/inspector-helper.js
@@ -216,7 +216,7 @@ class InspectorSession {
waitForNotification(methodOrPredicate, description) {
const desc = description || methodOrPredicate;
const message = `Timed out waiting for matching notification (${desc}))`;
- return common.fires(
+ return fires(
this._asyncWaitForNotification(methodOrPredicate), message, TIMEOUT);
}
@@ -323,7 +323,7 @@ class NodeInstance {
const instance = new NodeInstance(
[], `${scriptContents}\nprocess._rawDebug('started');`, undefined);
const msg = 'Timed out waiting for process to start';
- while (await common.fires(instance.nextStderrString(), msg, TIMEOUT) !==
+ while (await fires(instance.nextStderrString(), msg, TIMEOUT) !==
'started') {}
process._debugProcess(instance._process.pid);
return instance;
@@ -412,6 +412,43 @@ function readMainScriptSource() {
return fs.readFileSync(_MAINSCRIPT, 'utf8');
}
+function onResolvedOrRejected(promise, callback) {
+ return promise.then((result) => {
+ callback();
+ return result;
+ }, (error) => {
+ callback();
+ throw error;
+ });
+}
+
+function timeoutPromise(error, timeoutMs) {
+ let clearCallback = null;
+ let done = false;
+ const promise = onResolvedOrRejected(new Promise((resolve, reject) => {
+ const timeout = setTimeout(() => reject(error), timeoutMs);
+ clearCallback = () => {
+ if (done)
+ return;
+ clearTimeout(timeout);
+ resolve();
+ };
+ }), () => done = true);
+ promise.clear = clearCallback;
+ return promise;
+}
+
+// Returns a new promise that will propagate `promise` resolution or rejection
+// if that happens within the `timeoutMs` timespan, or rejects with `error` as
+// a reason otherwise.
+function fires(promise, error, timeoutMs) {
+ const timeout = timeoutPromise(error, timeoutMs);
+ return Promise.race([
+ onResolvedOrRejected(promise, () => timeout.clear()),
+ timeout
+ ]);
+}
+
module.exports = {
mainScriptPath: _MAINSCRIPT,
readMainScriptSource,
diff --git a/test/parallel/test-repl-top-level-await.js b/test/parallel/test-repl-top-level-await.js
index 2d92673692..2d6b32b400 100644
--- a/test/parallel/test-repl-top-level-await.js
+++ b/test/parallel/test-repl-top-level-await.js
@@ -36,7 +36,7 @@ class REPLStream extends common.ArrayStream {
throw new Error('Currently waiting for response to another command');
}
this.lines = [''];
- return common.fires(new Promise((resolve, reject) => {
+ return new Promise((resolve, reject) => {
const onError = (err) => {
this.removeListener('line', onLine);
reject(err);
@@ -50,7 +50,7 @@ class REPLStream extends common.ArrayStream {
};
this.once('error', onError);
this.on('line', onLine);
- }), new Error(), 1000);
+ });
}
}