Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support -Z ui-testing=yes/no #67735

Merged
merged 1 commit into from
Dec 31, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions src/librustc_session/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -593,6 +593,12 @@ impl Options {
}
}

impl DebuggingOptions {
pub fn ui_testing(&self) -> bool {
self.ui_testing.unwrap_or(false)
}
}

// The type of entry function, so users can have their own entry functions
#[derive(Copy, Clone, PartialEq, Hash, Debug)]
pub enum EntryFnType {
Expand Down
2 changes: 1 addition & 1 deletion src/librustc_session/options.rs
Original file line number Diff line number Diff line change
Expand Up @@ -904,7 +904,7 @@ options! {DebuggingOptions, DebuggingSetter, basic_debugging_options,
`mir` (the MIR), or `mir-cfg` (graphviz formatted MIR)"),
run_dsymutil: Option<bool> = (None, parse_opt_bool, [TRACKED],
"run `dsymutil` and delete intermediate object files"),
ui_testing: bool = (false, parse_bool, [UNTRACKED],
ui_testing: Option<bool> = (None, parse_opt_bool, [UNTRACKED],
"format compiler diagnostics in a way that's better suitable for UI testing"),
embed_bitcode: bool = (false, parse_bool, [TRACKED],
"embed LLVM bitcode in object files"),
Expand Down
8 changes: 4 additions & 4 deletions src/librustc_session/session.rs
Original file line number Diff line number Diff line change
Expand Up @@ -869,7 +869,7 @@ fn default_emitter(
short,
external_macro_backtrace,
);
Box::new(emitter.ui_testing(sopts.debugging_opts.ui_testing))
Box::new(emitter.ui_testing(sopts.debugging_opts.ui_testing()))
} else {
let emitter = match dst {
None => EmitterWriter::stderr(
Expand All @@ -890,7 +890,7 @@ fn default_emitter(
external_macro_backtrace,
),
};
Box::new(emitter.ui_testing(sopts.debugging_opts.ui_testing))
Box::new(emitter.ui_testing(sopts.debugging_opts.ui_testing()))
}
}
(config::ErrorOutputType::Json { pretty, json_rendered }, None) => Box::new(
Expand All @@ -901,7 +901,7 @@ fn default_emitter(
json_rendered,
external_macro_backtrace,
)
.ui_testing(sopts.debugging_opts.ui_testing),
.ui_testing(sopts.debugging_opts.ui_testing()),
),
(config::ErrorOutputType::Json { pretty, json_rendered }, Some(dst)) => Box::new(
JsonEmitter::new(
Expand All @@ -912,7 +912,7 @@ fn default_emitter(
json_rendered,
external_macro_backtrace,
)
.ui_testing(sopts.debugging_opts.ui_testing),
.ui_testing(sopts.debugging_opts.ui_testing()),
),
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/librustdoc/config.rs
Original file line number Diff line number Diff line change
Expand Up @@ -273,7 +273,7 @@ impl Options {
error_format,
None,
debugging_options.treat_err_as_bug,
debugging_options.ui_testing,
debugging_options.ui_testing(),
);

// check for deprecated options
Expand Down
4 changes: 2 additions & 2 deletions src/librustdoc/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -449,7 +449,7 @@ fn main_options(options: config::Options) -> i32 {
options.error_format,
None,
options.debugging_options.treat_err_as_bug,
options.debugging_options.ui_testing,
options.debugging_options.ui_testing(),
);

match (options.should_test, options.markdown_input()) {
Expand All @@ -466,7 +466,7 @@ fn main_options(options: config::Options) -> i32 {
let diag_opts = (
options.error_format,
options.debugging_options.treat_err_as_bug,
options.debugging_options.ui_testing,
options.debugging_options.ui_testing(),
options.edition,
);
let show_coverage = options.show_coverage;
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/ui-testing-optout.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// disable-ui-testing-normalization
// compile-flags: -Z ui-testing=no

// Line number < 10
type A = B; //~ ERROR
Expand Down
12 changes: 0 additions & 12 deletions src/tools/compiletest/src/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -376,8 +376,6 @@ pub struct TestProps {
pub fail_mode: Option<FailMode>,
// rustdoc will test the output of the `--test` option
pub check_test_line_numbers_match: bool,
// Do not pass `-Z ui-testing` to UI tests
pub disable_ui_testing_normalization: bool,
// customized normalization rules
pub normalize_stdout: Vec<(String, String)>,
pub normalize_stderr: Vec<(String, String)>,
Expand Down Expand Up @@ -422,7 +420,6 @@ impl TestProps {
fail_mode: None,
ignore_pass: false,
check_test_line_numbers_match: false,
disable_ui_testing_normalization: false,
normalize_stdout: vec![],
normalize_stderr: vec![],
failure_status: -1,
Expand Down Expand Up @@ -569,11 +566,6 @@ impl TestProps {
self.ignore_pass = config.parse_ignore_pass(ln);
}

if !self.disable_ui_testing_normalization {
self.disable_ui_testing_normalization =
config.parse_disable_ui_testing_normalization(ln);
}

if let Some(rule) = config.parse_custom_normalization(ln, "normalize-stdout") {
self.normalize_stdout.push(rule);
}
Expand Down Expand Up @@ -826,10 +818,6 @@ impl Config {
}
}

fn parse_disable_ui_testing_normalization(&self, line: &str) -> bool {
self.parse_name_directive(line, "disable-ui-testing-normalization")
}

fn parse_check_test_line_numbers_match(&self, line: &str) -> bool {
self.parse_name_directive(line, "check-test-line-numbers-match")
}
Expand Down
8 changes: 2 additions & 6 deletions src/tools/compiletest/src/runtest.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1863,17 +1863,13 @@ impl<'test> TestCx<'test> {
if self.props.error_patterns.is_empty() {
rustc.args(&["--error-format", "json"]);
}
if !self.props.disable_ui_testing_normalization {
rustc.arg("-Zui-testing");
}
rustc.arg("-Zui-testing");
}
Ui => {
if !self.props.compile_flags.iter().any(|s| s.starts_with("--error-format")) {
rustc.args(&["--error-format", "json"]);
}
if !self.props.disable_ui_testing_normalization {
rustc.arg("-Zui-testing");
}
rustc.arg("-Zui-testing");
}
MirOpt => {
rustc.args(&[
Expand Down