Skip to content
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

Closed
wants to merge 1 commit into from

Conversation

Trott
Copy link
Member

@Trott Trott commented Oct 10, 2017

Run only one benchmark for each benchmark file tested by
test-benchmark-misc.js.

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • commit message follows commit guidelines
Affected core subsystem(s)

test benchmark

Run only one benchmark for each benchmark file tested by
test-benchmark-misc.js.
@Trott Trott added benchmark Issues and PRs related to the benchmark subsystem. test Issues and PRs related to the tests. labels Oct 10, 2017
@nodejs-github-bot nodejs-github-bot added benchmark Issues and PRs related to the benchmark subsystem. test Issues and PRs related to the tests. labels Oct 10, 2017
@watilde
Copy link
Member

watilde commented Oct 10, 2017

@@ -93,6 +93,8 @@ function runUsingArgumentsAndApply(n, concat) {
function main(conf) {
const n = +conf.n;
switch (conf.method) {
// '' is a default case for tests
Copy link
Member

@fhinkel fhinkel Oct 12, 2017

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)

Copy link
Member Author

@Trott Trott Oct 12, 2017

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.

Copy link
Member

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!

Trott added a commit to Trott/io.js that referenced this pull request Oct 12, 2017
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>
@Trott
Copy link
Member Author

Trott commented Oct 12, 2017

Landed in ce848a4

@Trott Trott closed this Oct 12, 2017
addaleax pushed a commit to ayojs/ayo that referenced this pull request Oct 15, 2017
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>
targos pushed a commit that referenced this pull request Oct 18, 2017
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>
MylesBorins pushed a commit that referenced this pull request Nov 16, 2017
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>
@MylesBorins MylesBorins mentioned this pull request Nov 21, 2017
MylesBorins pushed a commit that referenced this pull request Nov 21, 2017
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>
MylesBorins pushed a commit that referenced this pull request Nov 28, 2017
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>
@Trott Trott deleted the fix-benchmark-misc branch January 13, 2022 22:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
benchmark Issues and PRs related to the benchmark subsystem. test Issues and PRs related to the tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants