@@ -28,15 +28,10 @@ const epsilon = 50;
2828{
2929 const uptime1 = Date . now ( ) - performance . timeOrigin ;
3030 const uptime2 = performance . now ( ) ;
31- const uptime3 = process . uptime ( ) * 1000 ;
3231 assert ( Math . abs ( uptime1 - uptime2 ) < epsilon ,
3332 `Date.now() - performance.timeOrigin (${ uptime1 } ) - ` +
3433 `performance.now() (${ uptime2 } ) = ` +
3534 `${ uptime1 - uptime2 } >= +- ${ epsilon } ` ) ;
36- assert ( Math . abs ( uptime1 - uptime3 ) < epsilon ,
37- `Date.now() - performance.timeOrigin (${ uptime1 } ) - ` +
38- `process.uptime() * 1000 (${ uptime3 } ) = ` +
39- `${ uptime1 - uptime3 } >= +- ${ epsilon } ` ) ;
4035}
4136
4237assert . strictEqual ( performance . nodeTiming . name , 'node' ) ;
@@ -58,8 +53,8 @@ function checkNodeTiming(timing) {
5853 // performance.now() i.e. measures Node.js instance up time.
5954 assert . strictEqual ( typeof timing . duration , 'number' ) ;
6055 assert ( timing . duration > 0 , `timing.duration ${ timing . duration } <= 0` ) ;
61- assert ( delta < 10 ,
62- `now (${ now } ) - timing.duration (${ timing . duration } ) = ${ delta } >= ${ 10 } ` ) ;
56+ assert ( delta < epsilon ,
57+ `now (${ now } ) - timing.duration (${ timing . duration } ) = ${ delta } >= ${ epsilon } ` ) ;
6358
6459 // Check that the following fields do not change.
6560 assert . strictEqual ( timing . startTime , initialTiming . startTime ) ;
@@ -93,6 +88,18 @@ checkNodeTiming(initialTiming);
9388 assert ( nodeStart < testStartTime ,
9489 `nodeStart ${ nodeStart } >= ${ testStartTime } ` ) ;
9590
91+ {
92+ // Due to https://github.com/nodejs/node/pull/46588,
93+ // The difference between process.uptime() and (Date.now() - performance.timeOrigin)
94+ // is roughly performance.nodeTiming.nodeStart
95+ const uptime1 = Date . now ( ) - performance . timeOrigin ; // now - process start time
96+ const uptime3 = process . uptime ( ) * 1000 ; // now - node start time
97+ assert ( Math . abs ( uptime1 - uptime3 - nodeStart ) < epsilon ,
98+ `Date.now() - performance.timeOrigin (${ uptime1 } ) - ` +
99+ `process.uptime() * 1000 (${ uptime3 } ) = ` +
100+ `${ uptime1 - uptime3 } >= +- ${ epsilon } ` ) ;
101+ }
102+
96103 assert . strictEqual ( typeof v8Start , 'number' ) ;
97104 assert ( v8Start > 0 , `v8Start ${ v8Start } <= 0` ) ;
98105 // V8 starts after the process starts.
0 commit comments