about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/test/src/lib.rs22
-rw-r--r--tests/run-make/libtest-padding/Makefile14
-rw-r--r--tests/run-make/libtest-padding/bench.stdout9
-rw-r--r--tests/run-make/libtest-padding/test.stdout9
-rw-r--r--tests/run-make/libtest-padding/tests.rs18
5 files changed, 58 insertions, 14 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
new file mode 100644
index 00000000000..42bc1192925
--- /dev/null
+++ b/tests/run-make/libtest-padding/Makefile
@@ -0,0 +1,14 @@
+# ignore-cross-compile because we run the compiled code
+# needs-unwind because #[bench] and -Cpanic=abort requires -Zpanic-abort-tests
+include ../tools.mk
+
+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
+
+	$(call RUN,tests) --test-threads=1 | $(NORMALIZE) > "$(TMPDIR)"/test.stdout
+	$(RUSTC_TEST_OP) "$(TMPDIR)"/test.stdout test.stdout
+
+	$(call RUN,tests) --test-threads=1 --bench | $(NORMALIZE) > "$(TMPDIR)"/bench.stdout
+	$(RUSTC_TEST_OP) "$(TMPDIR)"/bench.stdout bench.stdout
diff --git a/tests/run-make/libtest-padding/bench.stdout b/tests/run-make/libtest-padding/bench.stdout
new file mode 100644
index 00000000000..3d55401c93a
--- /dev/null
+++ b/tests/run-make/libtest-padding/bench.stdout
@@ -0,0 +1,9 @@
+
+running 4 tests
+test short_test_name ... ignored
+test this_is_a_really_long_test_name ... ignored
+test short_bench_name                 ... bench:           ?? ns/iter (+/- ??)
+test this_is_a_really_long_bench_name ... bench:           ?? ns/iter (+/- ??)
+
+test result: ok. 0 passed; 0 failed; 2 ignored; 2 measured; 0 filtered out; finished in ??s
+
diff --git a/tests/run-make/libtest-padding/test.stdout b/tests/run-make/libtest-padding/test.stdout
new file mode 100644
index 00000000000..8ffc810f6cd
--- /dev/null
+++ b/tests/run-make/libtest-padding/test.stdout
@@ -0,0 +1,9 @@
+
+running 4 tests
+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
+
+test result: ok. 4 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in ??s
+
diff --git a/tests/run-make/libtest-padding/tests.rs b/tests/run-make/libtest-padding/tests.rs
new file mode 100644
index 00000000000..cadf07237e9
--- /dev/null
+++ b/tests/run-make/libtest-padding/tests.rs
@@ -0,0 +1,18 @@
+#![feature(test)]
+extern crate test;
+
+#[test]
+fn short_test_name() {}
+
+#[test]
+fn this_is_a_really_long_test_name() {}
+
+#[bench]
+fn short_bench_name(b: &mut test::Bencher) {
+    b.iter(|| 1);
+}
+
+#[bench]
+fn this_is_a_really_long_bench_name(b: &mut test::Bencher) {
+    b.iter(|| 1);
+}