test: add get/set effective uid/gid tests
3c92ca2b5c1aea283efebd50b27e2a256adf5f7f should have had tests to go along with it. This adds tests for the following functions: * `process.geteuid()` * `process.seteuid()` * `process.getegid()` * `process.setegid()` PR-URL: https://github.com/nodejs/node/pull/14091 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Claudio Rodriguez <cjrodr@yahoo.com> Reviewed-By: Refael Ackermann <refack@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
parent
b20a0b662b
commit
80c9fd9569
49
test/parallel/test-process-geteuid-getegid.js
Normal file
49
test/parallel/test-process-geteuid-getegid.js
Normal file
@ -0,0 +1,49 @@
|
||||
'use strict';
|
||||
|
||||
const common = require('../common');
|
||||
const assert = require('assert');
|
||||
|
||||
if (common.isWindows) {
|
||||
assert.strictEqual(process.geteuid, undefined);
|
||||
assert.strictEqual(process.getegid, undefined);
|
||||
assert.strictEqual(process.seteuid, undefined);
|
||||
assert.strictEqual(process.setegid, undefined);
|
||||
return;
|
||||
}
|
||||
|
||||
assert.throws(() => {
|
||||
process.seteuid({});
|
||||
}, /^TypeError: seteuid argument must be a number or string$/);
|
||||
|
||||
assert.throws(() => {
|
||||
process.seteuid('fhqwhgadshgnsdhjsdbkhsdabkfabkveybvf');
|
||||
}, /^Error: seteuid user id does not exist$/);
|
||||
|
||||
// If we're not running as super user...
|
||||
if (process.getuid() !== 0) {
|
||||
assert.doesNotThrow(() => {
|
||||
process.getegid();
|
||||
process.geteuid();
|
||||
});
|
||||
|
||||
assert.throws(() => {
|
||||
process.setegid('nobody');
|
||||
}, /^Error: (?:EPERM, .+|setegid group id does not exist)$/);
|
||||
|
||||
assert.throws(() => {
|
||||
process.seteuid('nobody');
|
||||
}, /^Error: (?:EPERM, .+|seteuid user id does not exist)$/);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
// If we are running as super user...
|
||||
const oldgid = process.getegid();
|
||||
process.setegid('nobody');
|
||||
const newgid = process.getegid();
|
||||
assert.notStrictEqual(newgid, oldgid);
|
||||
|
||||
const olduid = process.geteuid();
|
||||
process.seteuid('nobody');
|
||||
const newuid = process.geteuid();
|
||||
assert.notStrictEqual(newuid, olduid);
|
Loading…
x
Reference in New Issue
Block a user