diff options
author | Refael Ackermann <refack@gmail.com> | 2017-05-04 00:00:00 -0400 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2017-05-06 08:20:07 -0400 |
commit | 68c933c01edddbc08acaf41e6ecdd1e1ca057910 (patch) | |
tree | 96f0afc6607fccf7e3ad2e88d77a45ff56d9dda2 /benchmark | |
parent | 47038242767c69a495ccf754246983c320352eb5 (diff) | |
download | node-new-68c933c01edddbc08acaf41e6ecdd1e1ca057910.tar.gz |
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')
-rw-r--r-- | benchmark/child_process/child-process-read.js | 15 |
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); |