Rollup merge of #93416 - name1e5s:chore/remove_allow_fail, r=m-ou-se
remove `allow_fail` test flag close #93345
This commit is contained in:
commit
252ff5ead0
25 changed files with 86 additions and 277 deletions
|
@ -47,7 +47,6 @@ pub struct ConsoleTestState {
|
|||
pub passed: usize,
|
||||
pub failed: usize,
|
||||
pub ignored: usize,
|
||||
pub allowed_fail: usize,
|
||||
pub filtered_out: usize,
|
||||
pub measured: usize,
|
||||
pub exec_time: Option<TestSuiteExecTime>,
|
||||
|
@ -71,7 +70,6 @@ impl ConsoleTestState {
|
|||
passed: 0,
|
||||
failed: 0,
|
||||
ignored: 0,
|
||||
allowed_fail: 0,
|
||||
filtered_out: 0,
|
||||
measured: 0,
|
||||
exec_time: None,
|
||||
|
@ -112,7 +110,6 @@ impl ConsoleTestState {
|
|||
TestResult::TrFailed => "failed".to_owned(),
|
||||
TestResult::TrFailedMsg(ref msg) => format!("failed: {}", msg),
|
||||
TestResult::TrIgnored => "ignored".to_owned(),
|
||||
TestResult::TrAllowedFail => "failed (allowed)".to_owned(),
|
||||
TestResult::TrBench(ref bs) => fmt_bench_samples(bs),
|
||||
TestResult::TrTimedFail => "failed (time limit exceeded)".to_owned(),
|
||||
},
|
||||
|
@ -126,7 +123,7 @@ impl ConsoleTestState {
|
|||
}
|
||||
|
||||
fn current_test_count(&self) -> usize {
|
||||
self.passed + self.failed + self.ignored + self.measured + self.allowed_fail
|
||||
self.passed + self.failed + self.ignored + self.measured
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -191,7 +188,6 @@ fn handle_test_result(st: &mut ConsoleTestState, completed_test: CompletedTest)
|
|||
st.not_failures.push((test, stdout));
|
||||
}
|
||||
TestResult::TrIgnored => st.ignored += 1,
|
||||
TestResult::TrAllowedFail => st.allowed_fail += 1,
|
||||
TestResult::TrBench(bs) => {
|
||||
st.metrics.insert_metric(
|
||||
test.name.as_slice(),
|
||||
|
|
|
@ -124,15 +124,6 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
|
|||
self.write_event("test", desc.name.as_slice(), "ignored", exec_time, stdout, None)
|
||||
}
|
||||
|
||||
TestResult::TrAllowedFail => self.write_event(
|
||||
"test",
|
||||
desc.name.as_slice(),
|
||||
"allowed_failure",
|
||||
exec_time,
|
||||
stdout,
|
||||
None,
|
||||
),
|
||||
|
||||
TestResult::TrBench(ref bs) => {
|
||||
let median = bs.ns_iter_summ.median as usize;
|
||||
let deviation = (bs.ns_iter_summ.max - bs.ns_iter_summ.min) as usize;
|
||||
|
@ -172,14 +163,12 @@ impl<T: Write> OutputFormatter for JsonFormatter<T> {
|
|||
\"event\": \"{}\", \
|
||||
\"passed\": {}, \
|
||||
\"failed\": {}, \
|
||||
\"allowed_fail\": {}, \
|
||||
\"ignored\": {}, \
|
||||
\"measured\": {}, \
|
||||
\"filtered_out\": {}",
|
||||
if state.failed == 0 { "ok" } else { "failed" },
|
||||
state.passed,
|
||||
state.failed + state.allowed_fail,
|
||||
state.allowed_fail,
|
||||
state.failed,
|
||||
state.ignored,
|
||||
state.measured,
|
||||
state.filtered_out,
|
||||
|
|
|
@ -121,7 +121,7 @@ impl<T: Write> OutputFormatter for JunitFormatter<T> {
|
|||
))?;
|
||||
}
|
||||
|
||||
TestResult::TrOk | TestResult::TrAllowedFail => {
|
||||
TestResult::TrOk => {
|
||||
self.write_message(&*format!(
|
||||
"<testcase classname=\"{}\" \
|
||||
name=\"{}\" time=\"{}\"/>",
|
||||
|
|
|
@ -49,10 +49,6 @@ impl<T: Write> PrettyFormatter<T> {
|
|||
self.write_short_result("ignored", term::color::YELLOW)
|
||||
}
|
||||
|
||||
pub fn write_allowed_fail(&mut self) -> io::Result<()> {
|
||||
self.write_short_result("FAILED (allowed)", term::color::YELLOW)
|
||||
}
|
||||
|
||||
pub fn write_time_failed(&mut self) -> io::Result<()> {
|
||||
self.write_short_result("FAILED (time limit exceeded)", term::color::RED)
|
||||
}
|
||||
|
@ -219,7 +215,6 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
|
|||
TestResult::TrOk => self.write_ok()?,
|
||||
TestResult::TrFailed | TestResult::TrFailedMsg(_) => self.write_failed()?,
|
||||
TestResult::TrIgnored => self.write_ignored()?,
|
||||
TestResult::TrAllowedFail => self.write_allowed_fail()?,
|
||||
TestResult::TrBench(ref bs) => {
|
||||
self.write_bench()?;
|
||||
self.write_plain(&format!(": {}", fmt_bench_samples(bs)))?;
|
||||
|
@ -263,22 +258,10 @@ impl<T: Write> OutputFormatter for PrettyFormatter<T> {
|
|||
self.write_pretty("FAILED", term::color::RED)?;
|
||||
}
|
||||
|
||||
let s = if state.allowed_fail > 0 {
|
||||
format!(
|
||||
". {} passed; {} failed ({} allowed); {} ignored; {} measured; {} filtered out",
|
||||
state.passed,
|
||||
state.failed + state.allowed_fail,
|
||||
state.allowed_fail,
|
||||
state.ignored,
|
||||
state.measured,
|
||||
state.filtered_out
|
||||
)
|
||||
} else {
|
||||
format!(
|
||||
". {} passed; {} failed; {} ignored; {} measured; {} filtered out",
|
||||
state.passed, state.failed, state.ignored, state.measured, state.filtered_out
|
||||
)
|
||||
};
|
||||
let s = format!(
|
||||
". {} passed; {} failed; {} ignored; {} measured; {} filtered out",
|
||||
state.passed, state.failed, state.ignored, state.measured, state.filtered_out
|
||||
);
|
||||
|
||||
self.write_plain(&s)?;
|
||||
|
||||
|
|
|
@ -54,10 +54,6 @@ impl<T: Write> TerseFormatter<T> {
|
|||
self.write_short_result("i", term::color::YELLOW)
|
||||
}
|
||||
|
||||
pub fn write_allowed_fail(&mut self) -> io::Result<()> {
|
||||
self.write_short_result("a", term::color::YELLOW)
|
||||
}
|
||||
|
||||
pub fn write_bench(&mut self) -> io::Result<()> {
|
||||
self.write_pretty("bench", term::color::CYAN)
|
||||
}
|
||||
|
@ -207,7 +203,6 @@ impl<T: Write> OutputFormatter for TerseFormatter<T> {
|
|||
self.write_failed()
|
||||
}
|
||||
TestResult::TrIgnored => self.write_ignored(),
|
||||
TestResult::TrAllowedFail => self.write_allowed_fail(),
|
||||
TestResult::TrBench(ref bs) => {
|
||||
if self.is_multithreaded {
|
||||
self.write_test_name(desc)?;
|
||||
|
@ -244,22 +239,10 @@ impl<T: Write> OutputFormatter for TerseFormatter<T> {
|
|||
self.write_pretty("FAILED", term::color::RED)?;
|
||||
}
|
||||
|
||||
let s = if state.allowed_fail > 0 {
|
||||
format!(
|
||||
". {} passed; {} failed ({} allowed); {} ignored; {} measured; {} filtered out",
|
||||
state.passed,
|
||||
state.failed + state.allowed_fail,
|
||||
state.allowed_fail,
|
||||
state.ignored,
|
||||
state.measured,
|
||||
state.filtered_out
|
||||
)
|
||||
} else {
|
||||
format!(
|
||||
". {} passed; {} failed; {} ignored; {} measured; {} filtered out",
|
||||
state.passed, state.failed, state.ignored, state.measured, state.filtered_out
|
||||
)
|
||||
};
|
||||
let s = format!(
|
||||
". {} passed; {} failed; {} ignored; {} measured; {} filtered out",
|
||||
state.passed, state.failed, state.ignored, state.measured, state.filtered_out
|
||||
);
|
||||
|
||||
self.write_plain(&s)?;
|
||||
|
||||
|
|
|
@ -19,7 +19,6 @@ pub enum TestResult {
|
|||
TrFailed,
|
||||
TrFailedMsg(String),
|
||||
TrIgnored,
|
||||
TrAllowedFail,
|
||||
TrBench(BenchSamples),
|
||||
TrTimedFail,
|
||||
}
|
||||
|
@ -42,8 +41,6 @@ pub fn calc_result<'a>(
|
|||
|
||||
if maybe_panic_str.map(|e| e.contains(msg)).unwrap_or(false) {
|
||||
TestResult::TrOk
|
||||
} else if desc.allow_fail {
|
||||
TestResult::TrAllowedFail
|
||||
} else if let Some(panic_str) = maybe_panic_str {
|
||||
TestResult::TrFailedMsg(format!(
|
||||
r#"panic did not contain expected string
|
||||
|
@ -64,7 +61,6 @@ pub fn calc_result<'a>(
|
|||
(&ShouldPanic::Yes, Ok(())) | (&ShouldPanic::YesWithMessage(_), Ok(())) => {
|
||||
TestResult::TrFailedMsg("test did not panic as expected".to_string())
|
||||
}
|
||||
_ if desc.allow_fail => TestResult::TrAllowedFail,
|
||||
_ => TestResult::TrFailed,
|
||||
};
|
||||
|
||||
|
@ -90,11 +86,10 @@ pub fn get_result_from_exit_code(
|
|||
time_opts: &Option<time::TestTimeOptions>,
|
||||
exec_time: &Option<time::TestExecTime>,
|
||||
) -> TestResult {
|
||||
let result = match (desc.allow_fail, code) {
|
||||
(_, TR_OK) => TestResult::TrOk,
|
||||
(true, TR_FAILED) => TestResult::TrAllowedFail,
|
||||
(false, TR_FAILED) => TestResult::TrFailed,
|
||||
(_, _) => TestResult::TrFailedMsg(format!("got unexpected return code {}", code)),
|
||||
let result = match code {
|
||||
TR_OK => TestResult::TrOk,
|
||||
TR_FAILED => TestResult::TrFailed,
|
||||
_ => TestResult::TrFailedMsg(format!("got unexpected return code {}", code)),
|
||||
};
|
||||
|
||||
// If test is already failed (or allowed to fail), do not change the result.
|
||||
|
|
|
@ -62,10 +62,11 @@ fn one_ignored_one_unignored_test() -> Vec<TestDescAndFn> {
|
|||
name: StaticTestName("1"),
|
||||
ignore: true,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(move || {})),
|
||||
},
|
||||
|
@ -74,10 +75,11 @@ fn one_ignored_one_unignored_test() -> Vec<TestDescAndFn> {
|
|||
name: StaticTestName("2"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(move || {})),
|
||||
},
|
||||
|
@ -94,10 +96,11 @@ pub fn do_not_run_ignored_tests() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: true,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -115,10 +118,11 @@ pub fn ignored_tests_result_in_ignored() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: true,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -140,10 +144,11 @@ fn test_should_panic() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::Yes,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -165,10 +170,11 @@ fn test_should_panic_good_message() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::YesWithMessage("error message"),
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -195,10 +201,11 @@ fn test_should_panic_bad_message() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::YesWithMessage(expected),
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -229,10 +236,11 @@ fn test_should_panic_non_string_message_type() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::YesWithMessage(expected),
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -255,10 +263,11 @@ fn test_should_panic_but_succeeds() {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -289,10 +298,11 @@ fn report_time_test_template(report_time: bool) -> Option<TestExecTime> {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -324,10 +334,11 @@ fn time_test_failure_template(test_type: TestType) -> TestResult {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(f)),
|
||||
};
|
||||
|
@ -363,10 +374,11 @@ fn typed_test_desc(test_type: TestType) -> TestDesc {
|
|||
name: StaticTestName("whatever"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -476,10 +488,11 @@ pub fn exclude_should_panic_option() {
|
|||
name: StaticTestName("3"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::Yes,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(move || {})),
|
||||
});
|
||||
|
@ -500,10 +513,11 @@ pub fn exact_filter_match() {
|
|||
name: StaticTestName(name),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(move || {})),
|
||||
})
|
||||
|
@ -589,10 +603,11 @@ fn sample_tests() -> Vec<TestDescAndFn> {
|
|||
name: DynTestName((*name).clone()),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
},
|
||||
testfn: DynTestFn(Box::new(testfn)),
|
||||
};
|
||||
|
@ -740,10 +755,11 @@ pub fn test_bench_no_iter() {
|
|||
name: StaticTestName("f"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
};
|
||||
|
||||
crate::bench::benchmark(TestId(0), desc, tx, true, f);
|
||||
|
@ -762,10 +778,11 @@ pub fn test_bench_iter() {
|
|||
name: StaticTestName("f"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
};
|
||||
|
||||
crate::bench::benchmark(TestId(0), desc, tx, true, f);
|
||||
|
@ -778,20 +795,22 @@ fn should_sort_failures_before_printing_them() {
|
|||
name: StaticTestName("a"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
};
|
||||
|
||||
let test_b = TestDesc {
|
||||
name: StaticTestName("b"),
|
||||
ignore: false,
|
||||
should_panic: ShouldPanic::No,
|
||||
allow_fail: false,
|
||||
compile_fail: false,
|
||||
no_run: false,
|
||||
test_type: TestType::Unknown,
|
||||
#[cfg(bootstrap)]
|
||||
allow_fail: false,
|
||||
};
|
||||
|
||||
let mut out = PrettyFormatter::new(OutputLocation::Raw(Vec::new()), false, 10, false, None);
|
||||
|
@ -802,7 +821,6 @@ fn should_sort_failures_before_printing_them() {
|
|||
passed: 0,
|
||||
failed: 0,
|
||||
ignored: 0,
|
||||
allowed_fail: 0,
|
||||
filtered_out: 0,
|
||||
measured: 0,
|
||||
exec_time: None,
|
||||
|
|
|
@ -118,10 +118,11 @@ pub struct TestDesc {
|
|||
pub name: TestName,
|
||||
pub ignore: bool,
|
||||
pub should_panic: options::ShouldPanic,
|
||||
pub allow_fail: bool,
|
||||
pub compile_fail: bool,
|
||||
pub no_run: bool,
|
||||
pub test_type: TestType,
|
||||
#[cfg(bootstrap)]
|
||||
pub allow_fail: bool,
|
||||
}
|
||||
|
||||
impl TestDesc {
|
||||
|
@ -150,9 +151,6 @@ impl TestDesc {
|
|||
}
|
||||
options::ShouldPanic::No => {}
|
||||
}
|
||||
if self.allow_fail {
|
||||
return Some("allow fail");
|
||||
}
|
||||
if self.compile_fail {
|
||||
return Some("compile fail");
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue