node/test/parallel/test-setproctitle.js
Sakthipriyan Vairamani (thefourtheye) cd3c478f70 test: skip the test with proper TAP message
On Windows, the test simply returns which will be counted as passed.
The test actually skips the rest of the test. So proper TAP message has
to be included while skipping.

This patch uses `common.skip` rather than `console.log` to print the
skip messages.

PR-URL: https://github.com/nodejs/node/pull/11584
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
Reviewed-By: Luigi Pinca <luigipinca@gmail.com>
2017-03-06 13:17:01 -08:00

39 lines
1.2 KiB
JavaScript

'use strict';
// Original test written by Jakub Lekstan <kuebzky@gmail.com>
const common = require('../common');
// FIXME add sunos support
if (common.isSunOS) {
return common.skip(`Unsupported platform [${process.platform}]`);
}
const assert = require('assert');
const exec = require('child_process').exec;
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';
assert.notStrictEqual(process.title, title);
process.title = title;
assert.strictEqual(process.title, title);
// Test setting the title but do not try to run `ps` on Windows.
if (common.isWindows) {
return common.skip('Windows does not have "ps" utility');
}
exec(`ps -p ${process.pid} -o args=`, function callback(error, stdout, stderr) {
assert.ifError(error);
assert.strictEqual(stderr, '');
// freebsd always add ' (procname)' to the process title
if (common.isFreeBSD)
title += ` (${path.basename(process.execPath)})`;
// omitting trailing whitespace and \n
assert.strictEqual(stdout.replace(/\s+$/, ''), title);
});