From b24100837f8ce079e55799d50d105e859af3a2ed Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Wed, 15 Oct 2025 21:31:42 +0200 Subject: [PATCH] test: fix incorrect calculation in test-perf-hooks.js After https://redirect.github.com/nodejs/node/pull/46588, Date.now() - performance.timeOrigin and process.uptime() are no longer similar - the former measures uptime from process initilaization, while the latter measures uptime from the main context initialization. Account for the differences in the test. --- test/sequential/test-perf-hooks.js | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/test/sequential/test-perf-hooks.js b/test/sequential/test-perf-hooks.js index 847decdef18bfc..2db7353cf5fc93 100644 --- a/test/sequential/test-perf-hooks.js +++ b/test/sequential/test-perf-hooks.js @@ -28,15 +28,10 @@ const epsilon = 50; { const uptime1 = Date.now() - performance.timeOrigin; const uptime2 = performance.now(); - const uptime3 = process.uptime() * 1000; assert(Math.abs(uptime1 - uptime2) < epsilon, `Date.now() - performance.timeOrigin (${uptime1}) - ` + `performance.now() (${uptime2}) = ` + `${uptime1 - uptime2} >= +- ${epsilon}`); - assert(Math.abs(uptime1 - uptime3) < epsilon, - `Date.now() - performance.timeOrigin (${uptime1}) - ` + - `process.uptime() * 1000 (${uptime3}) = ` + - `${uptime1 - uptime3} >= +- ${epsilon}`); } assert.strictEqual(performance.nodeTiming.name, 'node'); @@ -58,8 +53,8 @@ function checkNodeTiming(timing) { // performance.now() i.e. measures Node.js instance up time. assert.strictEqual(typeof timing.duration, 'number'); assert(timing.duration > 0, `timing.duration ${timing.duration} <= 0`); - assert(delta < 10, - `now (${now}) - timing.duration (${timing.duration}) = ${delta} >= ${10}`); + assert(delta < epsilon, + `now (${now}) - timing.duration (${timing.duration}) = ${delta} >= ${epsilon}`); // Check that the following fields do not change. assert.strictEqual(timing.startTime, initialTiming.startTime); @@ -93,6 +88,18 @@ checkNodeTiming(initialTiming); assert(nodeStart < testStartTime, `nodeStart ${nodeStart} >= ${testStartTime}`); + { + // Due to https://github.com/nodejs/node/pull/46588, + // The difference between process.uptime() and (Date.now() - performance.timeOrigin) + // is roughly performance.nodeTiming.nodeStart + const uptime1 = Date.now() - performance.timeOrigin; // now - process start time + const uptime3 = process.uptime() * 1000; // now - node start time + assert(Math.abs(uptime1 - uptime3 - nodeStart) < epsilon, + `Date.now() - performance.timeOrigin (${uptime1}) - ` + + `process.uptime() * 1000 (${uptime3}) = ` + + `${uptime1 - uptime3} >= +- ${epsilon}`); + } + assert.strictEqual(typeof v8Start, 'number'); assert(v8Start > 0, `v8Start ${v8Start} <= 0`); // V8 starts after the process starts.