test: fix parallel/test-setproctitle.js on alpine
Since Busybox ps does not support -p switch, using ps -o and grep instead to get the process title and then check it. PR-URL: https://github.com/nodejs/node/pull/12413 Fixes: https://github.com/nodejs/node/issues/12399 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Yuta Hiroto <hello@about-hiroppy.com>
This commit is contained in:
parent
b485813499
commit
ee0620b235
@ -14,7 +14,7 @@ const path = require('path');
|
||||
// The title shouldn't be too long; libuv's uv_set_process_title() out of
|
||||
// security considerations no longer overwrites envp, only argv, so the
|
||||
// maximum title length is possibly quite short.
|
||||
let title = 'testme';
|
||||
let title = 'test';
|
||||
|
||||
assert.notStrictEqual(process.title, title);
|
||||
process.title = title;
|
||||
@ -25,7 +25,13 @@ if (common.isWindows) {
|
||||
return common.skip('Windows does not have "ps" utility');
|
||||
}
|
||||
|
||||
exec(`ps -p ${process.pid} -o args=`, function callback(error, stdout, stderr) {
|
||||
// To pass this test on alpine, since Busybox `ps` does not
|
||||
// support `-p` switch, use `ps -o` and `grep` instead.
|
||||
const cmd = common.isLinux ?
|
||||
`ps -o pid,args | grep '${process.pid} ${title}' | grep -v grep` :
|
||||
`ps -p ${process.pid} -o args=`;
|
||||
|
||||
exec(cmd, common.mustCall((error, stdout, stderr) => {
|
||||
assert.ifError(error);
|
||||
assert.strictEqual(stderr, '');
|
||||
|
||||
@ -34,5 +40,5 @@ exec(`ps -p ${process.pid} -o args=`, function callback(error, stdout, stderr) {
|
||||
title += ` (${path.basename(process.execPath)})`;
|
||||
|
||||
// omitting trailing whitespace and \n
|
||||
assert.strictEqual(stdout.replace(/\s+$/, ''), title);
|
||||
});
|
||||
assert.strictEqual(stdout.replace(/\s+$/, '').endsWith(title), true);
|
||||
}));
|
||||
|
Loading…
x
Reference in New Issue
Block a user