52 lines
1.4 KiB
JavaScript
52 lines
1.4 KiB
JavaScript
var assert = require('assert');
|
|
var exec = require('child_process').exec;
|
|
|
|
exports.rand = function () {
|
|
var to = setTimeout(function () {
|
|
assert.fail('never executed');
|
|
}, 5000);
|
|
|
|
var cmd = 'node -e \'console.log(require('
|
|
+ JSON.stringify(__dirname + '/../')
|
|
+ ').rand(1000).toString())\''
|
|
;
|
|
exec(cmd, function (err1, r1) {
|
|
exec(cmd, function (err2, r2) {
|
|
clearTimeout(to);
|
|
|
|
assert.ok(!err1);
|
|
assert.ok(!err2);
|
|
|
|
assert.ok(
|
|
r1.match(/^\d+\n/),
|
|
JSON.stringify(r1) + ' is not an integer'
|
|
);
|
|
assert.ok(
|
|
r2.match(/^\d+\n/),
|
|
JSON.stringify(r2) + ' is not an integer'
|
|
);
|
|
|
|
var n1 = parseInt(r1.split('\n')[0], 10);
|
|
var n2 = parseInt(r2.split('\n')[0], 10);
|
|
|
|
assert.ok(n1 >= 0, 'n1 >= 0');
|
|
assert.ok(n2 >= 0, 'n2 >= 0');
|
|
assert.ok(n1 < 1000, 'n1 < 1000');
|
|
assert.ok(n2 < 1000, 'n2 < 1000');
|
|
|
|
assert.ok(n1 != n2, 'n1 != n2');
|
|
})
|
|
});
|
|
}
|
|
|
|
if (process.argv[1] === __filename) {
|
|
assert.eql = assert.deepEqual;
|
|
Object.keys(exports).forEach(function (ex) {
|
|
exports[ex]();
|
|
});
|
|
|
|
if ("function" === typeof gc) {
|
|
gc();
|
|
}
|
|
}
|