add dont_check_failure_status option in the compiler test

This commit is contained in:
SparrowLii 2023-04-06 19:36:21 +08:00
parent c1d3610ac1
commit ded048398f
3 changed files with 14 additions and 2 deletions

View File

@ -150,6 +150,8 @@ pub struct TestProps {
pub normalize_stdout: Vec<(String, String)>, pub normalize_stdout: Vec<(String, String)>,
pub normalize_stderr: Vec<(String, String)>, pub normalize_stderr: Vec<(String, String)>,
pub failure_status: i32, pub failure_status: i32,
// For UI tests, allows compiler to exit with arbitrary failure status
pub dont_check_failure_status: bool,
// Whether or not `rustfix` should apply the `CodeSuggestion`s of this test and compile the // Whether or not `rustfix` should apply the `CodeSuggestion`s of this test and compile the
// resulting Rust code. // resulting Rust code.
pub run_rustfix: bool, pub run_rustfix: bool,
@ -192,6 +194,7 @@ mod directives {
pub const CHECK_TEST_LINE_NUMBERS_MATCH: &'static str = "check-test-line-numbers-match"; pub const CHECK_TEST_LINE_NUMBERS_MATCH: &'static str = "check-test-line-numbers-match";
pub const IGNORE_PASS: &'static str = "ignore-pass"; pub const IGNORE_PASS: &'static str = "ignore-pass";
pub const FAILURE_STATUS: &'static str = "failure-status"; pub const FAILURE_STATUS: &'static str = "failure-status";
pub const DONT_CHECK_FAILURE_STATUS: &'static str = "dont-check-failure-status";
pub const RUN_RUSTFIX: &'static str = "run-rustfix"; pub const RUN_RUSTFIX: &'static str = "run-rustfix";
pub const RUSTFIX_ONLY_MACHINE_APPLICABLE: &'static str = "rustfix-only-machine-applicable"; pub const RUSTFIX_ONLY_MACHINE_APPLICABLE: &'static str = "rustfix-only-machine-applicable";
pub const ASSEMBLY_OUTPUT: &'static str = "assembly-output"; pub const ASSEMBLY_OUTPUT: &'static str = "assembly-output";
@ -239,6 +242,7 @@ impl TestProps {
normalize_stdout: vec![], normalize_stdout: vec![],
normalize_stderr: vec![], normalize_stderr: vec![],
failure_status: -1, failure_status: -1,
dont_check_failure_status: false,
run_rustfix: false, run_rustfix: false,
rustfix_only_machine_applicable: false, rustfix_only_machine_applicable: false,
assembly_output: None, assembly_output: None,
@ -401,6 +405,12 @@ impl TestProps {
self.failure_status = code; self.failure_status = code;
} }
config.set_name_directive(
ln,
DONT_CHECK_FAILURE_STATUS,
&mut self.dont_check_failure_status,
);
config.set_name_directive(ln, RUN_RUSTFIX, &mut self.run_rustfix); config.set_name_directive(ln, RUN_RUSTFIX, &mut self.run_rustfix);
config.set_name_directive( config.set_name_directive(
ln, ln,

View File

@ -309,7 +309,9 @@ impl<'test> TestCx<'test> {
); );
} }
self.check_correct_failure_status(proc_res); if !self.props.dont_check_failure_status {
self.check_correct_failure_status(proc_res);
}
} }
} }

View File

@ -1,7 +1,7 @@
// build-fail // build-fail
// known-bug: #95134 // known-bug: #95134
// compile-flags: -Copt-level=0 // compile-flags: -Copt-level=0
// failure-status: 101 // dont-check-failure-status
// dont-check-compiler-stderr // dont-check-compiler-stderr
pub fn encode_num<Writer: ExampleWriter>(n: u32, mut writer: Writer) -> Result<(), Writer::Error> { pub fn encode_num<Writer: ExampleWriter>(n: u32, mut writer: Writer) -> Result<(), Writer::Error> {