about summary refs log tree commit diff
path: root/src/tools
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2019-12-28 23:02:09 +0000
committerbors <bors@rust-lang.org>2019-12-28 23:02:09 +0000
commit00fc203b659767f5c42c3e258fe31f8ae4355abc (patch)
tree8e02a785887e732de9468ebef3bd6678427db559 /src/tools
parent3a3f4a7cbaff09722b8c7cc8f09ce86ff5f953a3 (diff)
parent90bf0d2e3346cc952e3a4a49e93f48c65cc5905f (diff)
downloadrust-00fc203b659767f5c42c3e258fe31f8ae4355abc.tar.gz
rust-00fc203b659767f5c42c3e258fe31f8ae4355abc.zip
Auto merge of #67334 - estebank:ignore-triple, r=nikomatsakis
Teach `compiletest` to ignore platform triples

The UI tests are written assuming `--remap-path-prefix` is *not used* (`remap-debuginfo` in `config.toml`). The consequence is that the error messages may include paths and snippets into the standard library. When `remap-debuginfo` is enabled, these messages change in format and structure because `rustc` will not show paths and snippets into the standard library.

This normally isn't a problem for the "main" platforms (linux/macos/windows), because the CI infrastructure is set up so that the tests run without `remap-debuginfo`, but the `dist` artifacts are built separately with `remap-debuginfo` enabled. However, some of the lower-tier platforms perform both tests and distribution in a single step with `remap-debuginfo` enabled. This also affects developers and distributors who use `remap-debuginfo`.

To sidestep this problem, we add a way to ignore tests in specific platform triples, and update the overly broad `ignore-x86` rule in affected tests.

Address #46948, #54546, #53081.
Diffstat (limited to 'src/tools')
-rw-r--r--src/tools/compiletest/src/header.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs
index ab43fb01a4f..093ee662ce4 100644
--- a/src/tools/compiletest/src/header.rs
+++ b/src/tools/compiletest/src/header.rs
@@ -897,6 +897,7 @@ impl Config {
             let name = line[prefix.len() + 1..].split(&[':', ' '][..]).next().unwrap();
 
             if name == "test" ||
+                &self.target == name ||                             // triple
                 util::matches_os(&self.target, name) ||             // target
                 util::matches_env(&self.target, name) ||            // env
                 name == util::get_arch(&self.target) ||             // architecture