node/benchmark/child_process/child-process-exec-stdout.js
Bartosz Sosnowski 5386b23f64 benchmark: fix child-process-exec-stdout on win
This benchmark fails on Windows when trying to execute command which
is more than 32k in size. This commits skips this one case when running
under Windows.

PR-URL: https://github.com/nodejs/node/pull/7178
Reviewed-By: Trott - Rich Trott <rtrott@gmail.com>
Reviewed-By: orangemocha - Alexis Campailla <orangemocha@nodejs.org>
2016-06-10 17:30:28 +02:00

36 lines
837 B
JavaScript

'use strict';
const common = require('../common.js');
var messagesLength = [64, 256, 1024, 4096];
// Windows does not support that long arguments
if (process.platform !== 'win32')
messagesLength.push(32768);
const bench = common.createBenchmark(main, {
len: messagesLength,
dur: [5]
});
const exec = require('child_process').exec;
function main(conf) {
bench.start();
const dur = +conf.dur;
const len = +conf.len;
const msg = `"${'.'.repeat(len)}"`;
msg.match(/./);
const options = {'stdio': ['ignore', 'pipe', 'ignore']};
// NOTE: Command below assumes bash shell.
const child = exec(`while\n echo ${msg}\ndo :; done\n`, options);
var bytes = 0;
child.stdout.on('data', function(msg) {
bytes += msg.length;
});
setTimeout(function() {
child.kill();
bench.end(bytes);
}, dur * 1000);
}