summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcjihrig <cjihrig@gmail.com>2023-03-05 12:49:25 -0500
committerMichaƫl Zasso <targos@protonmail.com>2023-03-14 07:54:17 +0100
commit7960ccb61e305843571f9cdab1964787f469312f (patch)
tree4b5fda9a6ab5ae1d6af897738811575d7eb7cb96
parentb832d775004a61ef33a72cb9c84dadab64e56bc6 (diff)
downloadnode-new-7960ccb61e305843571f9cdab1964787f469312f.tar.gz
test_runner: throw if harness is not bootstrapped
This commit updates the test harness to re-throw uncaught errors if bootstrapping has not completed. This updates the existing logic which tried to detect a specific error code. PR-URL: https://github.com/nodejs/node/pull/46962 Reviewed-By: Moshe Atlow <moshe@atlow.co.il> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
-rw-r--r--lib/internal/test_runner/harness.js5
-rw-r--r--lib/internal/test_runner/utils.js17
2 files changed, 7 insertions, 15 deletions
diff --git a/lib/internal/test_runner/harness.js b/lib/internal/test_runner/harness.js
index 3d4fc3b496..285dd96d13 100644
--- a/lib/internal/test_runner/harness.js
+++ b/lib/internal/test_runner/harness.js
@@ -18,7 +18,6 @@ const { exitCodes: { kGenericUserError } } = internalBinding('errors');
const { kEmptyObject } = require('internal/util');
const { kCancelledByParent, Test, Suite } = require('internal/test_runner/test');
const {
- kAsyncBootstrapFailure,
parseCommandLine,
setupTestReporters,
} = require('internal/test_runner/utils');
@@ -32,11 +31,11 @@ function createTestTree(options = kEmptyObject) {
function createProcessEventHandler(eventName, rootTest) {
return (err) => {
- if (err?.failureType === kAsyncBootstrapFailure) {
+ if (!rootTest.harness.bootstrapComplete) {
// Something went wrong during the asynchronous portion of bootstrapping
// the test runner. Since the test runner is not setup properly, we can't
// do anything but throw the error.
- throw err.cause;
+ throw err;
}
// Check if this error is coming from a test. If it is, fail the test.
diff --git a/lib/internal/test_runner/utils.js b/lib/internal/test_runner/utils.js
index e4fd23c8e8..6d5e474a59 100644
--- a/lib/internal/test_runner/utils.js
+++ b/lib/internal/test_runner/utils.js
@@ -7,7 +7,6 @@ const {
RegExp,
RegExpPrototypeExec,
SafeMap,
- Symbol,
} = primordials;
const { basename } = require('path');
const { createWriteStream } = require('fs');
@@ -24,7 +23,6 @@ const {
} = require('internal/errors');
const { compose } = require('stream');
-const kAsyncBootstrapFailure = Symbol('asyncBootstrapFailure');
const kMultipleCallbackInvocations = 'multipleCallbackInvocations';
const kRegExpPattern = /^\/(.*)\/([a-z]*)$/;
const kSupportedFileExtensions = /\.[cm]?js$/;
@@ -151,15 +149,11 @@ async function getReportersMap(reporters, destinations) {
async function setupTestReporters(rootTest) {
- try {
- const { reporters, destinations } = parseCommandLine();
- const reportersMap = await getReportersMap(reporters, destinations);
- for (let i = 0; i < reportersMap.length; i++) {
- const { reporter, destination } = reportersMap[i];
- compose(rootTest.reporter, reporter).pipe(destination);
- }
- } catch (err) {
- throw new ERR_TEST_FAILURE(err, kAsyncBootstrapFailure);
+ const { reporters, destinations } = parseCommandLine();
+ const reportersMap = await getReportersMap(reporters, destinations);
+ for (let i = 0; i < reportersMap.length; i++) {
+ const { reporter, destination } = reportersMap[i];
+ compose(rootTest.reporter, reporter).pipe(destination);
}
}
@@ -225,7 +219,6 @@ module.exports = {
doesPathMatchFilter,
isSupportedFileType,
isTestFailureError,
- kAsyncBootstrapFailure,
parseCommandLine,
setupTestReporters,
};