about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMartin Nordholts <martin.nordholts@codetale.se>2023-12-02 18:24:37 +0100
committerMartin Nordholts <martin.nordholts@codetale.se>2023-12-07 19:24:58 +0100
commit12e6bcfcabee7bfa9130bb5fcd4b8ab23172b1ee (patch)
tree784c1bbc4943eb14b86db9189c96e6b5e66925b7
parent4db40579baa1d69116e3ce7863951e36d1ddf425 (diff)
downloadrust-12e6bcfcabee7bfa9130bb5fcd4b8ab23172b1ee.tar.gz
rust-12e6bcfcabee7bfa9130bb5fcd4b8ab23172b1ee.zip
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.)
-rw-r--r--library/test/src/lib.rs22
-rw-r--r--tests/run-make/libtest-padding/Makefile2
-rw-r--r--tests/run-make/libtest-padding/test.stdout2
3 files changed, 10 insertions, 16 deletions
diff --git a/library/test/src/lib.rs b/library/test/src/lib.rs
index 2fa5a8e5e38..2e93796d981 100644
--- a/library/test/src/lib.rs
+++ b/library/test/src/lib.rs
@@ -298,24 +298,18 @@ where
 
     let mut filtered = FilteredTests { tests: Vec::new(), benches: Vec::new(), next_id: 0 };
 
-    for test in filter_tests(opts, tests) {
+    let mut filtered_tests = filter_tests(opts, tests);
+    if !opts.bench_benchmarks {
+        filtered_tests = convert_benchmarks_to_tests(filtered_tests);
+    }
+
+    for test in filtered_tests {
         let mut desc = test.desc;
         desc.name = desc.name.with_padding(test.testfn.padding());
 
         match test.testfn {
-            DynBenchFn(benchfn) => {
-                if opts.bench_benchmarks {
-                    filtered.add_bench(desc, DynBenchFn(benchfn));
-                } else {
-                    filtered.add_test(desc, DynBenchAsTestFn(benchfn));
-                }
-            }
-            StaticBenchFn(benchfn) => {
-                if opts.bench_benchmarks {
-                    filtered.add_bench(desc, StaticBenchFn(benchfn));
-                } else {
-                    filtered.add_test(desc, StaticBenchAsTestFn(benchfn));
-                }
+            DynBenchFn(_) | StaticBenchFn(_) => {
+                filtered.add_bench(desc, test.testfn);
             }
             testfn => {
                 filtered.add_test(desc, testfn);
diff --git a/tests/run-make/libtest-padding/Makefile b/tests/run-make/libtest-padding/Makefile
index 063d0dc0a6c..42bc1192925 100644
--- a/tests/run-make/libtest-padding/Makefile
+++ b/tests/run-make/libtest-padding/Makefile
@@ -2,7 +2,7 @@
 # needs-unwind because #[bench] and -Cpanic=abort requires -Zpanic-abort-tests
 include ../tools.mk
 
-NORMALIZE=sed 's%[0-9,]\+ ns/iter (+/- [0-9,]\+)%?? ns/iter (+/- ??)%' | sed 's%finished in [0-9\.]\+%finished in ??%'
+NORMALIZE=sed 's%[0-9,]\{1,\} ns/iter (+/- [0-9,]\{1,\})%?? ns/iter (+/- ??)%' | sed 's%finished in [0-9\.]\{1,\}%finished in ??%'
 
 all:
 	$(RUSTC) --test tests.rs
diff --git a/tests/run-make/libtest-padding/test.stdout b/tests/run-make/libtest-padding/test.stdout
index c655f034756..8ffc810f6cd 100644
--- a/tests/run-make/libtest-padding/test.stdout
+++ b/tests/run-make/libtest-padding/test.stdout
@@ -1,6 +1,6 @@
 
 running 4 tests
-test short_bench_name                 ... ok
+test short_bench_name ... ok
 test short_test_name ... ok
 test this_is_a_really_long_bench_name ... ok
 test this_is_a_really_long_test_name ... ok