summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cli/tools/bench/mod.rs2
-rw-r--r--cli/tools/bench/reporters.rs11
-rw-r--r--tests/specs/bench/filter_group_header/__test__.jsonc5
-rw-r--r--tests/specs/bench/filter_group_header/main.out13
-rw-r--r--tests/specs/bench/filter_group_header/main.ts11
5 files changed, 31 insertions, 11 deletions
diff --git a/cli/tools/bench/mod.rs b/cli/tools/bench/mod.rs
index c640bea40..609dff282 100644
--- a/cli/tools/bench/mod.rs
+++ b/cli/tools/bench/mod.rs
@@ -233,7 +233,7 @@ async fn bench_specifier_inner(
let benchmarks = if used_only { only } else { no_only };
let mut benchmarks = benchmarks
.into_iter()
- .filter(|(d, _)| filter.includes(&d.name) && !d.ignore)
+ .filter(|(d, _)| d.warmup || filter.includes(&d.name) && !d.ignore)
.collect::<Vec<_>>();
let mut groups = IndexSet::<Option<String>>::new();
// make sure ungrouped benchmarks are placed above grouped
diff --git a/cli/tools/bench/reporters.rs b/cli/tools/bench/reporters.rs
index b09a73fc3..face54943 100644
--- a/cli/tools/bench/reporters.rs
+++ b/cli/tools/bench/reporters.rs
@@ -99,7 +99,6 @@ impl BenchReporter for JsonReporter {
pub struct ConsoleReporter {
name: String,
show_output: bool,
- has_ungrouped: bool,
group: Option<String>,
baseline: bool,
group_measurements: Vec<(BenchDescription, BenchStats)>,
@@ -114,7 +113,6 @@ impl ConsoleReporter {
options: None,
baseline: false,
name: String::new(),
- has_ungrouped: false,
group_measurements: Vec::new(),
}
}
@@ -173,18 +171,11 @@ impl BenchReporter for ConsoleReporter {
self.name = desc.name.clone();
match &desc.group {
- None => {
- self.has_ungrouped = true;
- }
+ None => {}
Some(group) => {
if self.group.is_none() || group != self.group.as_ref().unwrap() {
self.report_group_summary();
- }
-
- if (self.group.is_none() && self.has_ungrouped)
- || (self.group.is_some() && self.group_measurements.is_empty())
- {
println!("{} {}", colors::gray("group"), colors::green(group));
}
diff --git a/tests/specs/bench/filter_group_header/__test__.jsonc b/tests/specs/bench/filter_group_header/__test__.jsonc
new file mode 100644
index 000000000..9453d5840
--- /dev/null
+++ b/tests/specs/bench/filter_group_header/__test__.jsonc
@@ -0,0 +1,5 @@
+// Regression test for https://github.com/denoland/deno/issues/23053
+{
+ "args": "bench main.ts --filter=G",
+ "output": "main.out"
+}
diff --git a/tests/specs/bench/filter_group_header/main.out b/tests/specs/bench/filter_group_header/main.out
new file mode 100644
index 000000000..e8b11299c
--- /dev/null
+++ b/tests/specs/bench/filter_group_header/main.out
@@ -0,0 +1,13 @@
+Check [WILDCARD]
+cpu: [WILDCARD]
+runtime: [WILDCARD]
+
+[WILDCARD]
+benchmark time (avg) iter/s (min … max) p75 p99 p995
+--------------------------------------------------------------- -----------------------------
+
+group G1
+G1-B [WILDCARD]
+
+group G2
+G2-B [WILDCARD] \ No newline at end of file
diff --git a/tests/specs/bench/filter_group_header/main.ts b/tests/specs/bench/filter_group_header/main.ts
new file mode 100644
index 000000000..16b244cf0
--- /dev/null
+++ b/tests/specs/bench/filter_group_header/main.ts
@@ -0,0 +1,11 @@
+Deno.bench({
+ group: "G1",
+ name: "G1-B",
+ fn() {},
+});
+
+Deno.bench({
+ group: "G2",
+ name: "G2-B",
+ fn() {},
+});