about summary refs log tree commit diff
path: root/src/bootstrap
diff options
context:
space:
mode:
authorJosh Stone <jistone@redhat.com>2023-02-28 10:25:05 -0800
committerJosh Stone <jistone@redhat.com>2023-02-28 12:02:14 -0800
commit565de58dd705e6b4dc1adda0f96b102360276ef5 (patch)
tree6b22efdbead9b13062cf477ddfb320da503fadca /src/bootstrap
parent313f04f4fff32ecf376c8af0e5d80e196f2bc056 (diff)
Skip test `download_ci_llvm` with modified LLVM
Diffstat (limited to 'src/bootstrap')
-rw-r--r--src/bootstrap/config/tests.rs5
-rw-r--r--src/bootstrap/native.rs21
2 files changed, 17 insertions, 9 deletions
diff --git a/src/bootstrap/config/tests.rs b/src/bootstrap/config/tests.rs
index 681ecbfeb5b..5a105007f21 100644
--- a/src/bootstrap/config/tests.rs
+++ b/src/bootstrap/config/tests.rs
@@ -11,6 +11,11 @@ fn parse(config: &str) -> Config {
 
 #[test]
 fn download_ci_llvm() {
+    if crate::native::is_ci_llvm_modified(&parse("")) {
+        eprintln!("Detected LLVM as non-available: running in CI and modified LLVM in this change");
+        return;
+    }
+
     let parse_llvm = |s| parse(s).llvm_from_ci;
     let if_available = parse_llvm("llvm.download-ci-llvm = \"if-available\"");
 
diff --git a/src/bootstrap/native.rs b/src/bootstrap/native.rs
index 07d339c067c..31b22228934 100644
--- a/src/bootstrap/native.rs
+++ b/src/bootstrap/native.rs
@@ -216,21 +216,24 @@ pub(crate) fn is_ci_llvm_available(config: &Config, asserts: bool) -> bool {
         }
     }
 
-    if CiEnv::is_ci() {
+    if is_ci_llvm_modified(config) {
+        eprintln!("Detected LLVM as non-available: running in CI and modified LLVM in this change");
+        return false;
+    }
+
+    true
+}
+
+/// Returns true if we're running in CI with modified LLVM (and thus can't download it)
+pub(crate) fn is_ci_llvm_modified(config: &Config) -> bool {
+    CiEnv::is_ci() && {
         // We assume we have access to git, so it's okay to unconditionally pass
         // `true` here.
         let llvm_sha = detect_llvm_sha(config, true);
         let head_sha = output(config.git().arg("rev-parse").arg("HEAD"));
         let head_sha = head_sha.trim();
-        if llvm_sha == head_sha {
-            eprintln!(
-                "Detected LLVM as non-available: running in CI and modified LLVM in this change"
-            );
-            return false;
-        }
+        llvm_sha == head_sha
     }
-
-    true
 }
 
 #[derive(Debug, Copy, Clone, Hash, PartialEq, Eq)]