Uh oh!
There was an error while loading. Please reload this page.
benchmark: test refactoring - #31396
Conversation
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
@nodejs/http2 @ronag I had to end the process hard in case this runs the http2 benchmarks. Maybe someone could have a look what part stays alive.
1cb7b50 to
27eee27CompareBridgeAR
commented
Jan 20, 2020
This is ready for review. I just cleaned up the commits. |
sam-github
left a comment
There was a problem hiding this comment.
Looks reasonable to me.
BridgeAR
commented
Jan 20, 2020
This does reduce the test runtime for almost all benchmarks. Mostly by a few hundred milliseconds. The runtime for |
BridgeAR
commented
Jan 22, 2020
This could use another review @nodejs/benchmarking |
27eee27 to
3fd40c6CompareTrott
commented
Jan 27, 2020
Needs a rebase. |
3fd40c6 to
6ea89f5CompareBridgeAR
commented
Feb 6, 2020
9bdb710 to
f7926f3CompareBridgeAR
commented
Feb 8, 2020
This is the basis to refactor the helper to use modern class language features such as private fields. It also refactors the exports to use module.exports. That way it's immediately clear what parts are exported.
Also something that I just now noticed is that this PR changed the formatting of the configuration string (when writing the CSV output) such that each parameter is preceded by a space whether it's needed or not, which breaks tooling (something I'm currently working on) that monitors changes in benchmark results by comparing results for a particular configuration. Just something to keep in mind if these changes get merged again later on. EDIT: FWIW I'm now incorporating extra safeguards to prevent this sort of thing in my tooling in the future... |
This is the basis to refactor the helper to use modern class language features such as private fields. It also refactors the exports to use module.exports. That way it's immediately clear what parts are exported. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This adds a new `test` option. Using it automatically uses a single minimal option matrix to verify the benchmark works as expected. Using the new `all` option makes sure all test suites are run. On top of that the benchmarks will from now on report properly what category might have a typo, if any. The http duration was also refactored to use a option instead of relying on a configuration setting. The fixture folder is ignored as test suite from now on. PR-URL: #31396Fixes: #31083 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
It was necessary to have fallbacks to run the original tests. This is obsolete with the new test mode. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
codebytere
commented
Mar 15, 2020
@BridgeAR could you please manually backport this to |
This is the basis to refactor the helper to use modern class language features such as private fields. It also refactors the exports to use module.exports. That way it's immediately clear what parts are exported. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
It was necessary to have fallbacks to run the original tests. This is obsolete with the new test mode. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This is the basis to refactor the helper to use modern class language features such as private fields. It also refactors the exports to use module.exports. That way it's immediately clear what parts are exported. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
It was necessary to have fallbacks to run the original tests. This is obsolete with the new test mode. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This is the basis to refactor the helper to use modern class language features such as private fields. It also refactors the exports to use module.exports. That way it's immediately clear what parts are exported. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
It was necessary to have fallbacks to run the original tests. This is obsolete with the new test mode. PR-URL: #31396 Reviewed-By: Sam Roberts <vieuxtech@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
This reverts commit 357230f. Refs: nodejs#31396 PR-URL: nodejs#31722 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
This reverts commit b70741e. Refs: nodejs#31396 PR-URL: nodejs#31722 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: Vladimir de Turckheim <vlad2t@hotmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
I went ahead and refactored all our benchmark tests. The benchmark suite itself now has a test functionality built-in (using
test). It is also possible to run all benchmark suites by usingall. The tests are now run independent from benchmark changes and should always keep on working.The fixtures directory is now skipped and in case there's a typo for the benchmark, the error message is now more informative.
I removed warnings from benchmark files in case they occurred.
Some tests require special options as a minimum. Those may now be passed through using the
testoption. These values will be used in case the benchmark test is run.It is now possible to pass through individual configurations instead of having to use an array.
Fixes: #31083
I did not yet find time to clean up the commits.
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passes