summaryrefslogtreecommitdiff
path: root/benchmark/child_process
diff options
context:
space:
mode:
authorRefael Ackermann <refack@gmail.com>2017-05-04 00:00:00 -0400
committerRefael Ackermann <refack@gmail.com>2017-05-06 08:20:07 -0400
commit68c933c01edddbc08acaf41e6ecdd1e1ca057910 (patch)
tree96f0afc6607fccf7e3ad2e88d77a45ff56d9dda2 /benchmark/child_process
parent47038242767c69a495ccf754246983c320352eb5 (diff)
downloadandroid-node-v8-68c933c01edddbc08acaf41e6ecdd1e1ca057910.tar.gz
android-node-v8-68c933c01edddbc08acaf41e6ecdd1e1ca057910.tar.bz2
android-node-v8-68c933c01edddbc08acaf41e6ecdd1e1ca057910.zip
test: fix flakyness with `yes.exe`
PR-URL: https://github.com/nodejs/node/pull/12821 Fixes: https://github.com/nodejs/node/issues/12817 Refs: https://github.com/nodejs/node/pull/12658 Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'benchmark/child_process')
-rw-r--r--benchmark/child_process/child-process-read.js15
1 files changed, 12 insertions, 3 deletions
diff --git a/benchmark/child_process/child-process-read.js b/benchmark/child_process/child-process-read.js
index 6fce35410e..c1b834e431 100644
--- a/benchmark/child_process/child-process-read.js
+++ b/benchmark/child_process/child-process-read.js
@@ -1,6 +1,11 @@
'use strict';
const common = require('../common.js');
+
+// This benchmark uses `yes` to a create noisy child_processes with varying
+// output message lengths, and tries to read 8GB of output
+
const os = require('os');
+const child_process = require('child_process');
var messagesLength = [64, 256, 1024, 4096];
// Windows does not support that long arguments
@@ -12,7 +17,6 @@ const bench = common.createBenchmark(main, {
dur: [5]
});
-const spawn = require('child_process').spawn;
function main(conf) {
bench.start();
@@ -21,7 +25,7 @@ function main(conf) {
const msg = `"${'.'.repeat(len)}"`;
const options = { 'stdio': ['ignore', 'pipe', 'ignore'] };
- const child = spawn('yes', [msg], options);
+ const child = child_process.spawn('yes', [msg], options);
var bytes = 0;
child.stdout.on('data', function(msg) {
@@ -29,7 +33,12 @@ function main(conf) {
});
setTimeout(function() {
- child.kill();
+ if (process.platform === 'win32') {
+ // Sometimes there's a yes.exe process left hanging around on Windows...
+ child_process.execSync(`taskkill /f /t /pid ${child.pid}`);
+ } else {
+ child.kill();
+ }
const gbits = (bytes * 8) / (1024 * 1024 * 1024);
bench.end(gbits);
}, dur * 1000);