diff options
| author | Jonas Schievink <jonasschievink@gmail.com> | 2020-09-30 20:56:09 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-09-30 20:56:09 +0200 |
| commit | a4dc8dae02ad78499c0c176227eb39071e1d0dd2 (patch) | |
| tree | 9564e2df99aacad034983979fca33ade4260f950 | |
| parent | 7ad03dd91df96335551384f7ca220b20922e2f15 (diff) | |
| parent | 9340ee4380dcc9b81e0afb1ef5518730b064a78a (diff) | |
| download | rust-a4dc8dae02ad78499c0c176227eb39071e1d0dd2.tar.gz rust-a4dc8dae02ad78499c0c176227eb39071e1d0dd2.zip | |
Rollup merge of #77280 - petrochenkov:llvmcomp, r=Mark-Simulacrum
Ensure that all LLVM components requested by tests are available on CI Addresses https://github.com/rust-lang/rust/pull/75064#issuecomment-667722652 I used an environment variable because passing a command line option all the way from CI to compiletest would be just too much hassle for this task. I added a new variable, but any of the already existing ones defined by CI could be used instead. r? @Mark-Simulacrum
| -rwxr-xr-x | src/ci/run.sh | 2 | ||||
| -rw-r--r-- | src/tools/compiletest/src/header.rs | 7 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/ci/run.sh b/src/ci/run.sh index 5231aa2e766..181a7fcb732 100755 --- a/src/ci/run.sh +++ b/src/ci/run.sh @@ -104,6 +104,8 @@ if [ "$RUST_RELEASE_CHANNEL" = "nightly" ] || [ "$DIST_REQUIRE_ALL_TOOLS" = "" ] RUST_CONFIGURE_ARGS="$RUST_CONFIGURE_ARGS --enable-missing-tools" fi +export COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS=1 + # Print the date from the local machine and the date from an external source to # check for clock drifts. An HTTP URL is used instead of HTTPS since on Azure # Pipelines it happened that the certificates were marked as expired. diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 17649dfab37..59f64e7df0f 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -208,10 +208,13 @@ impl EarlyProps { config.parse_name_value_directive(line, "needs-llvm-components") { let components: HashSet<_> = config.llvm_components.split_whitespace().collect(); - if !needed_components + if let Some(missing_component) = needed_components .split_whitespace() - .all(|needed_component| components.contains(needed_component)) + .find(|needed_component| !components.contains(needed_component)) { + if env::var_os("COMPILETEST_NEEDS_ALL_LLVM_COMPONENTS").is_some() { + panic!("missing LLVM component: {}", missing_component); + } return true; } } |
