summaryrefslogtreecommitdiff
path: root/test/common
diff options
context:
space:
mode:
authorRich Trott <rtrott@gmail.com>2018-05-30 22:30:24 +0200
committerRich Trott <rtrott@gmail.com>2018-06-19 10:37:39 -0700
commitb72de3d5083ebee39a9870b40a1a473cf9cc744e (patch)
tree6f34a8895fab10a1cee9b84d7e80d1351f59245e /test/common
parentd10742d8913690819209f96a96d1a7e46a70fffe (diff)
downloadandroid-node-v8-b72de3d5083ebee39a9870b40a1a473cf9cc744e.tar.gz
android-node-v8-b72de3d5083ebee39a9870b40a1a473cf9cc744e.tar.bz2
android-node-v8-b72de3d5083ebee39a9870b40a1a473cf9cc744e.zip
test: check that benchmark tests are minimal
Check that benchmark tests are not running longer than necessary by confirming that they only produce one set of configs to report on per benchmark file. PR-URL: https://github.com/nodejs/node/pull/21046 Reviewed-By: Anatoli Papirovski <apapirovski@mac.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
Diffstat (limited to 'test/common')
-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}`
+ );
});
}