Skip to content

Commit a64fafb

Browse files
committed
details: add tests
1 parent 97eba4c commit a64fafb

File tree

2 files changed

+112
-0
lines changed

2 files changed

+112
-0
lines changed

crates/cargo-codspeed/tests/simple-bencher.rs

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use assert_cmd::assert::OutputAssertExt;
2+
use predicates::prelude::*;
23
use predicates::str::contains;
34

45
mod helpers;
@@ -82,3 +83,78 @@ fn test_simple_cargo_bench_no_run() {
8283
.success();
8384
teardown(dir);
8485
}
86+
87+
#[test]
88+
fn test_simple_run_without_details() {
89+
let dir = setup(DIR, Project::Simple);
90+
cargo_codspeed(&dir).arg("build").assert().success();
91+
cargo_codspeed(&dir)
92+
.arg("run")
93+
.assert()
94+
.success()
95+
.stderr(contains("Finished running 2 benchmark suite(s)"))
96+
.stderr(predicates::str::contains("benchmarks total").not())
97+
.stdout(
98+
predicates::str::is_match(r" Checked: .* \([0-9]+(\.[0-9]+)? (ns|us|ms|s)\)")
99+
.unwrap()
100+
.not(),
101+
);
102+
teardown(dir);
103+
}
104+
105+
#[test]
106+
fn test_simple_run_with_details() {
107+
let dir = setup(DIR, Project::Simple);
108+
cargo_codspeed(&dir).arg("build").assert().success();
109+
cargo_codspeed(&dir)
110+
.arg("run")
111+
.arg("--details")
112+
.assert()
113+
.success()
114+
.stderr(contains("benchmarks total"))
115+
.stderr(contains("Done running"))
116+
.stdout(
117+
predicates::str::is_match(r" Checked: .* \([0-9]+(\.[0-9]+)? (ns|us|ms|s)\)").unwrap(),
118+
);
119+
teardown(dir);
120+
}
121+
122+
#[test]
123+
fn test_benchmark_counting_with_details() {
124+
let dir = setup(DIR, Project::Simple);
125+
cargo_codspeed(&dir).arg("build").assert().success();
126+
cargo_codspeed(&dir)
127+
.arg("run")
128+
.arg("--details")
129+
.assert()
130+
.success()
131+
.stderr(contains("Done running bencher_example (2 benchmarks)"))
132+
.stderr(contains(
133+
"Done running another_bencher_example (2 benchmarks)",
134+
))
135+
.stderr(contains(
136+
"Finished running 2 benchmark suite(s) (4 benchmarks total)",
137+
));
138+
teardown(dir);
139+
}
140+
141+
#[test]
142+
fn test_single_benchmark_counting_with_details() {
143+
let dir = setup(DIR, Project::Simple);
144+
cargo_codspeed(&dir)
145+
.arg("build")
146+
.args(["--bench", "bencher_example"])
147+
.assert()
148+
.success();
149+
cargo_codspeed(&dir)
150+
.arg("run")
151+
.arg("--details")
152+
.args(["--bench", "bencher_example"])
153+
.assert()
154+
.success()
155+
.stderr(contains("Done running bencher_example (2 benchmarks)"))
156+
.stderr(contains(
157+
"Finished running 1 benchmark suite(s) (2 benchmarks total)",
158+
));
159+
teardown(dir);
160+
}

crates/cargo-codspeed/tests/simple-criterion.rs

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
use assert_cmd::assert::OutputAssertExt;
2+
use predicates::prelude::*;
23
use predicates::str::contains;
34

45
mod helpers;
@@ -108,3 +109,38 @@ fn test_criterion_cargo_bench_no_run() {
108109
.success();
109110
teardown(dir);
110111
}
112+
113+
#[test]
114+
fn test_criterion_run_without_details() {
115+
let dir = setup(DIR, Project::Simple);
116+
cargo_codspeed(&dir).arg("build").assert().success();
117+
cargo_codspeed(&dir)
118+
.arg("run")
119+
.assert()
120+
.success()
121+
.stderr(contains("Finished running 2 benchmark suite(s)"))
122+
.stderr(predicates::str::contains("benchmarks total").not())
123+
.stdout(
124+
predicates::str::is_match(r" Checked: .* \([0-9]+(\.[0-9]+)? (ns|us|ms|s)\)")
125+
.unwrap()
126+
.not(),
127+
);
128+
teardown(dir);
129+
}
130+
131+
#[test]
132+
fn test_criterion_run_with_details() {
133+
let dir = setup(DIR, Project::Simple);
134+
cargo_codspeed(&dir).arg("build").assert().success();
135+
cargo_codspeed(&dir)
136+
.arg("run")
137+
.arg("--details")
138+
.assert()
139+
.success()
140+
.stderr(contains("benchmarks total"))
141+
.stderr(contains("Done running"))
142+
.stdout(
143+
predicates::str::is_match(r" Checked: .* \([0-9]+(\.[0-9]+)? (ns|us|ms|s)\)").unwrap(),
144+
);
145+
teardown(dir);
146+
}

0 commit comments

Comments
 (0)