mirror of
https://github.com/azure/login.git
synced 2026-03-15 09:20:56 -04:00
* Bump lodash from 4.17.15 to 4.17.19 (#52) Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19. - [Release notes](https://github.com/lodash/lodash/releases) - [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * Bump @actions/core from 1.1.3 to 1.2.6 (#60) Bumps [@actions/core](https://github.com/actions/toolkit/tree/HEAD/packages/core) from 1.1.3 to 1.2.6. - [Release notes](https://github.com/actions/toolkit/releases) - [Changelog](https://github.com/actions/toolkit/blob/main/packages/core/RELEASES.md) - [Commits](https://github.com/actions/toolkit/commits/HEAD/packages/core) Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Amruta Kawade <65217380+AmrutaKawade@users.noreply.github.com> * updating node_nodules * updated package-lock Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
62 lines
1.4 KiB
JavaScript
62 lines
1.4 KiB
JavaScript
"use strict";
|
|
|
|
const { hrtime } = require("./utils");
|
|
|
|
// The HR-TIME spec calls for 5-μs accuracy. Check that we have that in both hrtime() and Date.now().
|
|
|
|
function testClockAccuracy() {
|
|
// Test hrtime() first. The check is simpler and more stable, and we use hrtime() to measure Date.now()'s performance.
|
|
const roundTrip = hrtime(hrtime());
|
|
if (roundTrip[0] > 1 || roundTrip[1] > 5e3 * 2) {
|
|
return false;
|
|
}
|
|
|
|
// Test Date.now() twice: first with a looser bound (10 μs) but with a smaller run time to filter out very bad
|
|
// Date.now() performance, and then with a tighter bound (5 μs) to check we have the accuracy we need.
|
|
let times;
|
|
// eslint-disable-next-line no-unused-vars
|
|
let cur;
|
|
let start;
|
|
let end;
|
|
|
|
times = 100;
|
|
start = hrtime();
|
|
while (times-- > 0) {
|
|
cur = Date.now();
|
|
}
|
|
end = hrtime(start);
|
|
if ((end[0] * 1e9 + end[1]) > 1000000) {
|
|
return false;
|
|
}
|
|
|
|
times = 10000;
|
|
start = hrtime();
|
|
while (times-- > 0) {
|
|
cur = Date.now();
|
|
}
|
|
end = hrtime(start);
|
|
if ((end[0] * 1e9 + end[1]) > 50000000) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
|
|
// Warm up the function.
|
|
testClockAccuracy();
|
|
testClockAccuracy();
|
|
testClockAccuracy();
|
|
|
|
const TIMES = 5;
|
|
const THRESHOLD = 0.6 * TIMES;
|
|
let accurates = 0;
|
|
for (let i = 0; i < TIMES; i++) {
|
|
if (testClockAccuracy()) {
|
|
accurates++;
|
|
}
|
|
}
|
|
|
|
const isAccurate = accurates >= THRESHOLD;
|
|
|
|
module.exports = isAccurate;
|