From d3277b927aa195d644069d4a7c2150a5bf760285 Mon Sep 17 00:00:00 2001 From: Vadim Petrochenkov Date: Sun, 2 Aug 2020 18:23:49 +0300 Subject: compiletest: Support ignoring tests requiring missing LLVM components --- src/tools/compiletest/src/header.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'src/tools/compiletest') diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs index 2ab764eb920..047fbe9da14 100644 --- a/src/tools/compiletest/src/header.rs +++ b/src/tools/compiletest/src/header.rs @@ -1,3 +1,4 @@ +use std::collections::HashSet; use std::env; use std::fs::File; use std::io::prelude::*; @@ -186,6 +187,17 @@ impl EarlyProps { if config.system_llvm && line.starts_with("no-system-llvm") { return true; } + if let Some(needed_components) = + config.parse_name_value_directive(line, "needs-llvm-components") + { + let components: HashSet<_> = config.llvm_components.split_whitespace().collect(); + if !needed_components + .split_whitespace() + .all(|needed_component| components.contains(needed_component)) + { + return true; + } + } if let Some(actual_version) = config.llvm_version { if let Some(rest) = line.strip_prefix("min-llvm-version:").map(str::trim) { let min_version = extract_llvm_version(rest).unwrap(); -- cgit 1.4.1-3-g733a5