0
0
mirror of https://github.com/nodejs/node.git synced 2024-11-30 07:27:22 +01:00
nodejs/test/parallel/test-process-hrtime.js
Ben Noordhuis 1e5a02628c src: fix negative values in process.hrtime()
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>
2016-01-20 22:00:37 +01:00

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