Skip to content

Commit 12e6bcf

Browse files
committed
libtest: Fix padding of benchmarks run as tests
Before this fix we applied padding before manually doing what `convert_benchmarks_to_tests()` does. Instead use `convert_benchmarks_to_tests()` if applicable and then apply padding afterwards so it becomes correct. (Benches should only be padded when run as benches to make it easy to compare the benchmark numbers.)
1 parent 4db4057 commit 12e6bcf

File tree

3 files changed

+10
-16
lines changed

3 files changed

+10
-16
lines changed

library/test/src/lib.rs

+8-14
Original file line numberDiff line numberDiff line change
@@ -298,24 +298,18 @@ where
298298

299299
let mut filtered = FilteredTests { tests: Vec::new(), benches: Vec::new(), next_id: 0 };
300300

301-
for test in filter_tests(opts, tests) {
301+
let mut filtered_tests = filter_tests(opts, tests);
302+
if !opts.bench_benchmarks {
303+
filtered_tests = convert_benchmarks_to_tests(filtered_tests);
304+
}
305+
306+
for test in filtered_tests {
302307
let mut desc = test.desc;
303308
desc.name = desc.name.with_padding(test.testfn.padding());
304309

305310
match test.testfn {
306-
DynBenchFn(benchfn) => {
307-
if opts.bench_benchmarks {
308-
filtered.add_bench(desc, DynBenchFn(benchfn));
309-
} else {
310-
filtered.add_test(desc, DynBenchAsTestFn(benchfn));
311-
}
312-
}
313-
StaticBenchFn(benchfn) => {
314-
if opts.bench_benchmarks {
315-
filtered.add_bench(desc, StaticBenchFn(benchfn));
316-
} else {
317-
filtered.add_test(desc, StaticBenchAsTestFn(benchfn));
318-
}
311+
DynBenchFn(_) | StaticBenchFn(_) => {
312+
filtered.add_bench(desc, test.testfn);
319313
}
320314
testfn => {
321315
filtered.add_test(desc, testfn);

tests/run-make/libtest-padding/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# needs-unwind because #[bench] and -Cpanic=abort requires -Zpanic-abort-tests
33
include ../tools.mk
44

5-
NORMALIZE=sed 's%[0-9,]\+ ns/iter (+/- [0-9,]\+)%?? ns/iter (+/- ??)%' | sed 's%finished in [0-9\.]\+%finished in ??%'
5+
NORMALIZE=sed 's%[0-9,]\{1,\} ns/iter (+/- [0-9,]\{1,\})%?? ns/iter (+/- ??)%' | sed 's%finished in [0-9\.]\{1,\}%finished in ??%'
66

77
all:
88
$(RUSTC) --test tests.rs

tests/run-make/libtest-padding/test.stdout

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22
running 4 tests
3-
test short_bench_name ... ok
3+
test short_bench_name ... ok
44
test short_test_name ... ok
55
test this_is_a_really_long_bench_name ... ok
66
test this_is_a_really_long_test_name ... ok

0 commit comments

Comments
 (0)