node/test/parallel/test-setproctitle.js
Jeremiah Senkpiel 4067cde7ee test: abstract skip functionality to common
The tap skipping output is so prevalent yet obscure in nature that we
ought to move it into it's own function in test/common.js

Re-do of 52bae222a3 for v4.x

Ref: https://github.com/nodejs/node/pull/6697
PR-URL: https://github.com/nodejs/node/pull/7114
Reviewed-By: Myles Borins <myles.borins@gmail.com>
2016-06-23 17:25:10 -07:00

34 lines
1.1 KiB
JavaScript

'use strict';
// Original test written by Jakub Lekstan <kuebzky@gmail.com>
const common = require('../common');
// FIXME add sunos support
if ('linux freebsd darwin'.indexOf(process.platform) === -1) {
common.skip(`Unsupported platform [${process.platform}]`);
return;
}
var assert = require('assert');
var exec = require('child_process').exec;
var 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.
var title = 'testme';
assert.notEqual(process.title, title);
process.title = title;
assert.equal(process.title, title);
exec('ps -p ' + process.pid + ' -o args=', function(error, stdout, stderr) {
assert.equal(error, null);
assert.equal(stderr, '');
// freebsd always add ' (procname)' to the process title
if (process.platform === 'freebsd')
title += ` (${path.basename(process.execPath)})`;
// omitting trailing whitespace and \n
assert.equal(stdout.replace(/\s+$/, ''), title);
});