test_runner: simplify test start time tracking

This commit simplifies the logic for tracking test start time.
The start time is now set only when a test/suite begins running.
If the test/suite never runs, a fallback is provided in postRun().

PR-URL: https://github.com/nodejs/node/pull/52182
Reviewed-By: Yagiz Nizipli <yagiz.nizipli@sentry.io>
Reviewed-By: Chemi Atlow <chemi@atlow.co.il>
This commit is contained in:
cjihrig authored and Node.js GitHub Bot committed 2024-03-25 13:23:34 +00:00
1 parent a8b21fdc90
commit 878047be0b
2 files changed
+8 -9

No files matched your search

+2 -3
View File
@@ -507,7 +507,6 @@ class Test extends AsyncResource {
}
if (preventAddingSubtests) {
test.startTime = test.startTime || hrtime();
test.fail(
new ERR_TEST_FAILURE(
'test could not be started because its parent finished',
@@ -537,7 +536,6 @@ class Test extends AsyncResource {
kCancelledByParent,
),
);
this.startTime = this.startTime || this.endTime; // If a test was canceled before it was started, e.g inside a hook
this.cancelled = true;
this.abortController.abort();
}
@@ -763,12 +761,13 @@ class Test extends AsyncResource {
}
postRun(pendingSubtestsError) {
this.startTime ??= hrtime();
// If the test was failed before it even started, then the end time will
// be earlier than the start time. Correct that here.
if (this.endTime < this.startTime) {
this.endTime = hrtime();
}
this.startTime ??= this.endTime;
// The test has run, so recursively cancel any outstanding subtests and
// mark this test as failed if any subtests failed.
@@ -11,10 +11,10 @@
describe hooks - no subtests (*ms)
before throws
1
1 (*ms)
'test did not finish before its parent and was cancelled'
2
2 (*ms)
'test did not finish before its parent and was cancelled'
before throws (*ms)
@@ -390,7 +390,7 @@
- after() called
run after when before throws
1
1 (*ms)
'test did not finish before its parent and was cancelled'
run after when before throws (*ms)
@@ -422,11 +422,11 @@
failing tests:
*
1
1 (*ms)
'test did not finish before its parent and was cancelled'
*
2
2 (*ms)
'test did not finish before its parent and was cancelled'
*
@@ -772,7 +772,7 @@
*
*
1
1 (*ms)
'test did not finish before its parent and was cancelled'
*