@@ -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 }  ) ; 
61-   assert ( delta  <  10 , 
62-          `now (${ now } ${ timing . duration } ${ delta } ${ 10 }  ) ; 
56+   assert ( delta  <  epsilon , 
57+          `now (${ now } ${ 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 }  ) ; 
98105  // V8 starts after the process starts. 
0 commit comments