-
Notifications
You must be signed in to change notification settings - Fork 30k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: reduce run time for misc benchmark tests #16120
Conversation
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js.
@@ -93,6 +93,8 @@ function runUsingArgumentsAndApply(n, concat) { | |||
function main(conf) { | |||
const n = +conf.n; | |||
switch (conf.method) { | |||
// '' is a default case for tests |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why are we always running the first case? Are the default cases missing a break? I'd rather have explicit calls then the first one as default. (Maybe I shouldn't comment if I'm missing context)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@fhinkel We are limiting to the first case in tests only. conf.method
is assigned a default value earlier in the code (line 16). Tests override it with a blank string by using --set method=
as a command line option.
The reason is so that we don't have to change parameter names in all the benchmarks.
Let's say test-benchmark-misc
runs a benchmark called foo.js
. It takes an configuration option called method
. The method
option may be readFile
or readFileSync
. If it's not one of those, the benchmark throws.
But test-benchmark-misc
also runs a benchmark called bar.js
. It also takes a method
option but throws if they are anything other than chdir
or chmod
.
It is now impossible to specify a configuration option (so that each benchmark file only runs a single benchmark) for method
without causing one or the other to throw.
Rather than try to figure out unique names for each benchmark file (which seems like an anti-pattern--I don't want to have to know that foo
uses method
but bar
uses function
or something like that), we assign a default for the case where the configuration option is explicitly set to an empty value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That makes a lot of sense Thanks for the explanation!
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: nodejs#16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Landed in ce848a4 |
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: nodejs/node#16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: #16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: #16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: #16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Run only one benchmark for each benchmark file tested by test-benchmark-misc.js. PR-URL: #16120 Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com>
Run only one benchmark for each benchmark file tested by
test-benchmark-misc.js.
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passesAffected core subsystem(s)
test benchmark