summaryrefslogtreecommitdiff
path: root/cli/tests/integration/bench_tests.rs
AgeCommit message (Collapse)Author
2024-02-10chore: move cli/tests/ -> tests/ (#22369)Matt Mastracci
This looks like a massive PR, but it's only a move from cli/tests -> tests, and updates of relative paths for files. This is the first step towards aggregate all of the integration test files under tests/, which will lead to a set of integration tests that can run without the CLI binary being built. While we could leave these tests under `cli`, it would require us to keep a more complex directory structure for the various test runners. In addition, we have a lot of complexity to ignore various test files in the `cli` project itself (cargo publish exclusion rules, autotests = false, etc). And finally, the `tests/` folder will eventually house the `test_ffi`, `test_napi` and other testing code, reducing the size of the root repo directory. For easier review, the extremely large and noisy "move" is in the first commit (with no changes -- just a move), while the remainder of the changes to actual files is in the second commit.
2024-01-01chore: update copyright to 2024 (#21753)David Sherret
2023-12-17fix(bench): added group banner to bench output. (#21551)Raashid Anwar
Added group banner to bench output. --------- Co-authored-by: Bartek Iwańczuk <biwanczuk@gmail.com>
2023-08-27test(bench): mark explicit timer test as flaky (#20304)Nayeem Rahman
https://github.com/denoland/deno/actions/runs/5990043261/job/16246927846?pr=18642 The test is just `b.start(); b.end()` where the time measured between must be less 10 μs during warmup. Can't improve it. Also fixes doc mistake.
2023-08-26fix(bench): explicit timers don't force high precision measurements (#20272)Nayeem Rahman
Disables `BenchContext::start()` and `BenchContext::end()` for low precision benchmarks (less than 0.01s per iteration). Prints a warning when they are used in such benchmarks, suggesting to remove them. ```ts Deno.bench("noop", { group: "noops" }, () => {}); Deno.bench("noop with start/end", { group: "noops" }, (b) => { b.start(); b.end(); }); ``` Before: ``` cpu: 12th Gen Intel(R) Core(TM) i9-12900K runtime: deno 1.36.2 (x86_64-unknown-linux-gnu) file:///home/nayeem/projects/deno/temp3.ts benchmark time (avg) iter/s (min … max) p75 p99 p995 ----------------------------------------------------------------------------- ----------------------------- noop 2.63 ns/iter 380,674,131.4 (2.45 ns … 27.78 ns) 2.55 ns 4.03 ns 5.33 ns noop with start and end 302.47 ns/iter 3,306,146.0 (200 ns … 151.2 µs) 300 ns 400 ns 400 ns summary noop 115.14x faster than noop with start and end ``` After: ``` cpu: 12th Gen Intel(R) Core(TM) i9-12900K runtime: deno 1.36.1 (x86_64-unknown-linux-gnu) file:///home/nayeem/projects/deno/temp3.ts benchmark time (avg) iter/s (min … max) p75 p99 p995 ----------------------------------------------------------------------------- ----------------------------- noop 3.01 ns/iter 332,565,561.7 (2.73 ns … 29.54 ns) 2.93 ns 5.29 ns 7.45 ns noop with start and end 7.73 ns/iter 129,291,091.5 (6.61 ns … 46.76 ns) 7.87 ns 13.12 ns 15.32 ns Warning start() and end() calls in "noop with start and end" are ignored because it averages less than 0.01s per iteration. Remove them for better results. summary noop 2.57x faster than noop with start and end ```
2023-07-31feat(bench): add BenchContext::start() and BenchContext::end() (#18734)Nayeem Rahman
Closes #17589. ```ts Deno.bench("foo", async (t) => { const resource = setup(); // not included in measurement t.start(); measuredOperation(resource); t.end(); resource.close(); // not included in measurement }); ```
2023-06-07fix(cli): formatting bench with colors (#19323)Mike Mulchrone
2023-06-06perf(cli): conditionally load typescript declaration files (#19392)David Sherret
Closes #18583
2023-05-03fix(test): disable preventDefault() for beforeunload event (#18911)Nayeem Rahman
Fixes #18910.
2023-04-28Revert "refactor: don't expose Deno[Deno.internal].core namespace" (#18881)Bartek Iwańczuk
Also conditionally disabled one test if there's not enough space on device.
2023-04-26refactor: don't expose Deno[Deno.internal].core namespace (#18816)Bartek Iwańczuk
2023-03-26feat(bench): add `--no-run` flag (#18433)Geert-Jan Zwiers
2023-03-13fix(info/doc): add missing `--no-lock` and `--lock` flags (#18166)David Sherret
Closes #18159
2023-03-06chore(tests): ability to capture stdout and stderr separately (#18035)David Sherret
This is to allow making assertions on stdout and stderr separately.
2023-02-28chore(test): remove TestCommandOutput macros (#17975)David Sherret
2023-02-27chore: test builders for integration tests (#17965)David Sherret
Start of adding test builders to simplify integration tests. I only updated a few test files. We can complete upgrading over time.
2023-02-25chore: fix flaky package_json_basic tests (#17940)David Sherret
https://github.com/denoland/deno/actions/runs/4267836955/jobs/7429836369 Closes #17946
2023-02-23feat(npm): support bare specifiers from package.json in more subcommands and ↵David Sherret
language server (#17891)
2023-02-23feat(bench): change --json output format (#17888)Bartek Iwańczuk
Closes https://github.com/denoland/deno/issues/17775
2023-01-13tests: move integration tests to a single module (#17380)Bartek Iwańczuk
Effectively reverts changes done in https://github.com/denoland/deno/pull/16816
2022-11-26tests: move integration tests to separate modules (#16816)Bartek Iwańczuk
2022-11-11feat: Stabilize Deno.bench() and 'deno bench' subcommand (#16485)Bartek Iwańczuk
2022-05-17feat: subcommands type-check only local files by default (#14623)Bartek Iwańczuk
This commit changes default mode of type-checking to "local" and adds "--check" flag to following subcommands: - deno bench - deno bundle - deno cache - deno compile - deno eval - deno install - deno test
2022-05-02fix(test/bench): accept file protocol module specifier CLI args (#14429)Adilson Schmitt Junior
2022-04-23fix(bench): report pending summary before clearing (#14369)evan
2022-04-22fix(bench): reset reporter context (#14360)evan
This commit fixes previous file benchmarks leaking into the next file benchmarks summary.
2022-04-20feat(bench): update API, new console reporter (#14305)evan
This commit changes "deno bench" subcommand, by updating the "Deno.bench" API as follows: - remove "Deno.BenchDefinition.n" - remove "Deno.BenchDefintion.warmup" - add "Deno.BenchDefinition.group" - add "Deno.BenchDefintion.baseline" This is done because bench cases are no longer run fixed amount of iterations, but instead they are run until there is difference between subsequent runs that is statistically insiginificant. Additionally, console reporter was rewritten completely, to looks similar to "hyperfine" reporter.
2022-04-18feat: Add DENO_NO_PROMPT variable (#14209)Nayeem Rahman
This commit adds support for "DENO_NO_PROMPT" env variable, that can be used instead of "--no-prompt" flag to completely disable permission prompts.
2022-04-17fix: panic when trying to pledge permissions before restoring previous ↵Bartek Iwańczuk
pledge (#14306) This commit fixes and edge case, where testing/benching code could pledge new permission set before restoring the previous pledge. Appropriate panics were added and tests that assert that process is killed in case of "recursive pledge".
2022-03-23fix(bench): require --unstable flag in JavaScript (#14091)Bartek Iwańczuk
2022-03-11feat: "deno bench" subcommand (#13713)Bartek Iwańczuk
This commit adds "deno bench" subcommand and "Deno.bench()" API that allows to register bench cases. The API is modelled after "Deno.test()" and "deno test" subcommand. Currently the output is rudimentary and bench cases and not subject to "ops" and "resource" sanitizers. Co-authored-by: evan <github@evan.lol>