| // Benchmarks, when ran as tests, would cause strange indentations | |
| // to appear in the output. This was because padding formatting was | |
| // applied before the conversion from bench to test, and not afterwards. | |
| // Now that this bug has been fixed in #118548, this test checks that it | |
| // does not make a resurgence by comparing the output of --bench with an | |
| // example stdout file. | |
| // See https://github.com/rust-lang/rust/issues/104092 | |
| //@ ignore-cross-compile | |
| // Reason: the compiled code is ran | |
| //@ needs-unwind | |
| // Reason: #[bench] requires -Z panic-abort-tests | |
| use run_make_support::{diff, run_with_args, rustc}; | |
| fn main() { | |
| rustc().arg("--test").input("tests.rs").run(); | |
| let out = run_with_args("tests", &["--test-threads=1"]).stdout_utf8(); | |
| diff() | |
| .expected_file("test.stdout") | |
| .actual_text("actual-test-stdout", out) | |
| .normalize( | |
| // Replace all instances of (arbitrary numbers) | |
| // [1.2345 ns/iter (+/- 0.1234)] | |
| // with | |
| // [?? ns/iter (+/- ??)] | |
| r#"(\d+(?:[.,]\d+)*)\s*ns/iter\s*\(\+/-\s*(\d+(?:[.,]\d+)*)\)"#, | |
| "?? ns/iter (+/- ??)", | |
| ) | |
| // Replace all instances of (arbitrary numbers) | |
| // finished in 8.0000 s | |
| // with | |
| // finished in ?? | |
| .normalize(r#"finished\s+in\s+(\d+(?:\.\d+)*)"#, "finished in ??") | |
| .run(); | |
| let out = run_with_args("tests", &["--test-threads=1", "--bench"]).stdout_utf8(); | |
| diff() | |
| .expected_file("bench.stdout") | |
| .actual_text("actual-bench-stdout", out) | |
| .normalize( | |
| r#"(\d+(?:[.,]\d+)*)\s*ns/iter\s*\(\+/-\s*(\d+(?:[.,]\d+)*)\)"#, | |
| "?? ns/iter (+/- ??)", | |
| ) | |
| .normalize(r#"finished\s+in\s+(\d+(?:\.\d+)*)"#, "finished in ??") | |
| .run(); | |
| } |