Skip to content

Commit 97b6911

Browse files
TrottMylesBorins
authored andcommitted
test: enable setuid/setgid test
Refactor test for situations where it was expected to fail. Move from disabled directory to parallel. PR-URL: #12403 Backport-PR-URL: #13060 Reviewed-By: James M Snell <[email protected]> Reviewed-By: Colin Ihrig <[email protected]> Reviewed-By: Yuta Hiroto <[email protected]> Reviewed-By: Sakthipriyan Vairamani <[email protected]> Reviewed-By: Santiago Gimeno <[email protected]>
1 parent 8d04387 commit 97b6911

File tree

2 files changed

+48
-23
lines changed

2 files changed

+48
-23
lines changed

test/disabled/test-setuidgid.js

-23
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
'use strict';
2+
3+
const common = require('../common');
4+
5+
const assert = require('assert');
6+
7+
if (common.isWindows) {
8+
// uid/gid functions are POSIX only
9+
assert.strictEqual(process.getuid, undefined);
10+
assert.strictEqual(process.setuid, undefined);
11+
assert.strictEqual(process.getgid, undefined);
12+
assert.strictEqual(process.setgid, undefined);
13+
return;
14+
}
15+
16+
assert.throws(() => {
17+
process.setuid('fhqwhgadshgnsdhjsdbkhsdabkfabkveybvf');
18+
}, /^Error: setuid user id does not exist$/);
19+
20+
// If we're not running as super user...
21+
if (process.getuid() !== 0) {
22+
assert.doesNotThrow(() => {
23+
process.getgid();
24+
process.getuid();
25+
});
26+
27+
assert.throws(
28+
() => { process.setgid('nobody'); },
29+
/^Error: (EPERM, .+|setgid group id does not exist)$/
30+
);
31+
32+
assert.throws(
33+
() => { process.setuid('nobody'); },
34+
/^Error: EPERM, /
35+
);
36+
return;
37+
}
38+
39+
// If we are running as super user...
40+
const oldgid = process.getgid();
41+
process.setgid('nobody');
42+
const newgid = process.getgid();
43+
assert.notStrictEqual(newgid, oldgid);
44+
45+
const olduid = process.getuid();
46+
process.setuid('nobody');
47+
const newuid = process.getuid();
48+
assert.notStrictEqual(newuid, olduid);

0 commit comments

Comments
 (0)