diff options
| author | Mark Simulacrum <mark.simulacrum@gmail.com> | 2017-05-19 14:16:13 -0600 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2017-05-19 14:16:13 -0600 |
| commit | d8d2db264be3e5094089eb52c4f45f18a12ebff1 (patch) | |
| tree | f4bc0f754e0783942ed0f357f646688a393a4a68 /src | |
| parent | d7a5390a67b114b4417558d71df798c9602f92a7 (diff) | |
| parent | e6cde9f2a4f5e4d9e20686f29344461eacae3eba (diff) | |
| download | rust-d8d2db264be3e5094089eb52c4f45f18a12ebff1.tar.gz rust-d8d2db264be3e5094089eb52c4f45f18a12ebff1.zip | |
Rollup merge of #41910 - mersinvald:master, r=Mark-Simulacrum
Number of filtered out tests in tests summary Closes #31905
Diffstat (limited to 'src')
| -rw-r--r-- | src/libtest/lib.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/libtest/lib.rs b/src/libtest/lib.rs index 0d615db3deb..ef048ac8ca3 100644 --- a/src/libtest/lib.rs +++ b/src/libtest/lib.rs @@ -542,6 +542,7 @@ struct ConsoleTestState<T> { passed: usize, failed: usize, ignored: usize, + filtered_out: usize, measured: usize, metrics: MetricMap, failures: Vec<(TestDesc, Vec<u8>)>, @@ -570,6 +571,7 @@ impl<T: Write> ConsoleTestState<T> { passed: 0, failed: 0, ignored: 0, + filtered_out: 0, measured: 0, metrics: MetricMap::new(), failures: Vec::new(), @@ -775,11 +777,12 @@ impl<T: Write> ConsoleTestState<T> { } else { self.write_pretty("FAILED", term::color::RED)?; } - let s = format!(". {} passed; {} failed; {} ignored; {} measured\n\n", + let s = format!(". {} passed; {} failed; {} ignored; {} measured; {} filtered out\n\n", self.passed, self.failed, self.ignored, - self.measured); + self.measured, + self.filtered_out); self.write_plain(&s)?; return Ok(success); } @@ -875,6 +878,7 @@ pub fn run_tests_console(opts: &TestOpts, tests: Vec<TestDescAndFn>) -> io::Resu fn callback<T: Write>(event: &TestEvent, st: &mut ConsoleTestState<T>) -> io::Result<()> { match (*event).clone() { TeFiltered(ref filtered_tests) => st.write_run_start(filtered_tests.len()), + TeFilteredOut(filtered_out) => Ok(st.filtered_out = filtered_out), TeWait(ref test, padding) => st.write_test_start(test, padding), TeTimeout(ref test) => st.write_timeout(test), TeResult(test, result, stdout) => { @@ -957,6 +961,7 @@ fn should_sort_failures_before_printing_them() { passed: 0, failed: 0, ignored: 0, + filtered_out: 0, measured: 0, max_name_len: 10, metrics: MetricMap::new(), @@ -1017,6 +1022,7 @@ pub enum TestEvent { TeWait(TestDesc, NamePadding), TeResult(TestDesc, TestResult, Vec<u8>), TeTimeout(TestDesc), + TeFilteredOut(usize), } pub type MonitorMsg = (TestDesc, TestResult, Vec<u8>); @@ -1028,11 +1034,16 @@ pub fn run_tests<F>(opts: &TestOpts, tests: Vec<TestDescAndFn>, mut callback: F) use std::collections::HashMap; use std::sync::mpsc::RecvTimeoutError; + let tests_len = tests.len(); + let mut filtered_tests = filter_tests(opts, tests); if !opts.bench_benchmarks { filtered_tests = convert_benchmarks_to_tests(filtered_tests); } + let filtered_out = tests_len - filtered_tests.len(); + callback(TeFilteredOut(filtered_out))?; + let filtered_descs = filtered_tests.iter() .map(|t| t.desc.clone()) .collect(); |
