mirror of
https://github.com/nodejs/node.git
synced 2024-11-30 07:27:22 +01:00
1e5a02628c
Fix a regression introduced in commit 89f056b
("node: improve
performance of hrtime()") where the nanosecond field sometimes
had a negative value when calculating the difference between two
timestamps.
Fixes: https://github.com/nodejs/node/issues/4751
PR-URL: https://github.com/nodejs/node/pull/4757
Reviewed-By: Evan Lucas <evanlucas@me.com>
Reviewed-By: Trevor Norris <trev.norris@gmail.com>
Reviewed-By: Сковорода Никита Андреевич <chalkerx@gmail.com>
30 lines
751 B
JavaScript
30 lines
751 B
JavaScript
'use strict';
|
|
require('../common');
|
|
var assert = require('assert');
|
|
|
|
// the default behavior, return an Array "tuple" of numbers
|
|
var tuple = process.hrtime();
|
|
|
|
// validate the default behavior
|
|
validateTuple(tuple);
|
|
|
|
// validate that passing an existing tuple returns another valid tuple
|
|
validateTuple(process.hrtime(tuple));
|
|
|
|
// test that only an Array may be passed to process.hrtime()
|
|
assert.throws(function() {
|
|
process.hrtime(1);
|
|
});
|
|
|
|
function validateTuple(tuple) {
|
|
assert(Array.isArray(tuple));
|
|
assert.equal(2, tuple.length);
|
|
tuple.forEach(function(v) {
|
|
assert.equal('number', typeof v);
|
|
assert(isFinite(v));
|
|
});
|
|
}
|
|
|
|
const diff = process.hrtime([0, 1e9 - 1]);
|
|
assert(diff[1] >= 0); // https://github.com/nodejs/node/issues/4751
|