about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-12-30 00:23:19 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2019-12-30 20:01:34 +0300
commit208c1bff0aae2389c1eb497623da895605d4e2b1 (patch)
treec76cc3625d29d7ea878d2740f2debd00d031f66e
parent0fb43801368ae8b5931583f813071120bed55c35 (diff)
downloadrust-208c1bff0aae2389c1eb497623da895605d4e2b1.tar.gz
rust-208c1bff0aae2389c1eb497623da895605d4e2b1.zip
Support `-Z ui-testing=yes/no`
-rw-r--r--src/librustc_session/config.rs6
-rw-r--r--src/librustc_session/options.rs2
-rw-r--r--src/librustc_session/session.rs8
-rw-r--r--src/librustdoc/config.rs2
-rw-r--r--src/librustdoc/lib.rs4
-rw-r--r--src/test/ui/ui-testing-optout.rs2
-rw-r--r--src/tools/compiletest/src/header.rs12
-rw-r--r--src/tools/compiletest/src/runtest.rs8
8 files changed, 17 insertions, 27 deletions
diff --git a/src/librustc_session/config.rs b/src/librustc_session/config.rs
index 4fce25cafad..75bd6babe16 100644
--- a/src/librustc_session/config.rs
+++ b/src/librustc_session/config.rs
@@ -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 {
diff --git a/src/librustc_session/options.rs b/src/librustc_session/options.rs
index 38c17bbbde7..3683daf7a87 100644
--- a/src/librustc_session/options.rs
+++ b/src/librustc_session/options.rs
@@ -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"),
diff --git a/src/librustc_session/session.rs b/src/librustc_session/session.rs
index 34149c22d2e..8e9de69539a 100644
--- a/src/librustc_session/session.rs
+++ b/src/librustc_session/session.rs
@@ -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(
@@ -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(
@@ -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(
@@ -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()),
         ),
     }
 }
diff --git a/src/librustdoc/config.rs b/src/librustdoc/config.rs
index 7a3cf88f65e..25a892062fc 100644
--- a/src/librustdoc/config.rs
+++ b/src/librustdoc/config.rs
@@ -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
diff --git a/src/librustdoc/lib.rs b/src/librustdoc/lib.rs
index 0b4abe0a22e..d5cb17674f7 100644
--- a/src/librustdoc/lib.rs
+++ b/src/librustdoc/lib.rs
@@ -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()) {
@@ -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;
diff --git a/src/test/ui/ui-testing-optout.rs b/src/test/ui/ui-testing-optout.rs
index 041c0b0a85a..901263c5bf8 100644
--- a/src/test/ui/ui-testing-optout.rs
+++ b/src/test/ui/ui-testing-optout.rs
@@ -1,4 +1,4 @@
-// disable-ui-testing-normalization
+// compile-flags: -Z ui-testing=no
 
 // Line number < 10
 type A = B; //~ ERROR
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs
index 093ee662ce4..691b8d3ccfd 100644
--- a/src/tools/compiletest/src/header.rs
+++ b/src/tools/compiletest/src/header.rs
@@ -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)>,
@@ -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,
@@ -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);
             }
@@ -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")
     }
diff --git a/src/tools/compiletest/src/runtest.rs b/src/tools/compiletest/src/runtest.rs
index 02225d0ea01..226a12c6734 100644
--- a/src/tools/compiletest/src/runtest.rs
+++ b/src/tools/compiletest/src/runtest.rs
@@ -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(&[