From 60baea25142d404ff9de51d9d4b83f394c976e50 Mon Sep 17 00:00:00 2001 From: David Cai Date: Wed, 19 Apr 2017 17:44:26 +0800 Subject: [PATCH] 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 Reviewed-By: Benjamin Gruenbaum Reviewed-By: Yuta Hiroto --- test/parallel/test-setproctitle.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/test/parallel/test-setproctitle.js b/test/parallel/test-setproctitle.js index 072ddd447e5bf9..39ed2e506c965e 100644 --- a/test/parallel/test-setproctitle.js +++ b/test/parallel/test-setproctitle.js @@ -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); +}));