37 lines
941 B
JavaScript
Executable file
37 lines
941 B
JavaScript
Executable file
'use strict';
|
|
const assert = require('assert');
|
|
const nice = require('./');
|
|
|
|
assert.strictEqual(nice.nice, nice);
|
|
|
|
const cur = nice(0);
|
|
assert.strictEqual(cur + 1, nice(1));
|
|
assert.strictEqual(cur + 1, nice(0));
|
|
|
|
if (+process.version.split('.')[0].slice(1) >= 12 && process.platform === 'linux') {
|
|
let messages = 0;
|
|
const { Worker } = require('worker_threads');
|
|
const w = new Worker(`require("worker_threads").parentPort.postMessage(
|
|
require("./")(1))`, { eval: true });
|
|
w.on('message', (m) => {
|
|
messages++;
|
|
assert.strictEqual(cur + 1, nice(0));
|
|
assert.strictEqual(cur + 2, m);
|
|
});
|
|
w.on('exit', () => {
|
|
assert.strictEqual(messages, 1);
|
|
assert.strictEqual(cur + 1, nice(0));
|
|
test2();
|
|
});
|
|
} else {
|
|
test2();
|
|
}
|
|
|
|
function test2() {
|
|
nice(10000);
|
|
assert.strictEqual(nice(0), nice(10000));
|
|
|
|
if (process.getuid() !== 0) {
|
|
assert.throws(() => nice(-1), /nice\(\): Operation not permitted/);
|
|
}
|
|
}
|