summaryrefslogtreecommitdiff
path: root/test/common/benchmark.js
diff options
context:
space:
mode:
Diffstat (limited to 'test/common/benchmark.js')
-rw-r--r--test/common/benchmark.js19
1 files changed, 18 insertions, 1 deletions
diff --git a/test/common/benchmark.js b/test/common/benchmark.js
index 1fd4476ba5..f8952a8b9a 100644
--- a/test/common/benchmark.js
+++ b/test/common/benchmark.js
@@ -20,10 +20,27 @@ function runBenchmark(name, args, env) {
const mergedEnv = Object.assign({}, process.env, env);
- const child = fork(runjs, argv, { env: mergedEnv });
+ const child = fork(runjs, argv, { env: mergedEnv, stdio: 'pipe' });
+ child.stdout.setEncoding('utf8');
+
+ let stdout = '';
+ child.stdout.on('data', (line) => {
+ stdout += line;
+ });
+
child.on('exit', (code, signal) => {
assert.strictEqual(code, 0);
assert.strictEqual(signal, null);
+ // This bit makes sure that each benchmark file is being sent settings such
+ // that the benchmark file runs just one set of options. This helps keep the
+ // benchmark tests from taking a long time to run. Therefore, each benchmark
+ // file should result in three lines of output: a blank line, a line with
+ // the name of the benchmark file, and a line with the only results that we
+ // get from testing the benchmark file.
+ assert.ok(
+ /^(?:\n.+?\n.+?\n)+$/.test(stdout),
+ `benchmark file not running exactly one configuration in test: ${stdout}`
+ );
});
}