Skip to content

Commit 13078cb

Browse files
[clang-repl] Skip cross-JIT tests if specified target is not available (#84461)
1 parent f5a067b commit 13078cb

File tree

1 file changed

+22
-6
lines changed

1 file changed

+22
-6
lines changed

clang/unittests/Interpreter/InterpreterExtensionsTest.cpp

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919

2020
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
2121
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
22+
#include "llvm/MC/TargetRegistry.h"
2223
#include "llvm/Support/Error.h"
2324
#include "llvm/Support/TargetSelect.h"
2425
#include "llvm/Support/Threading.h"
@@ -44,14 +45,23 @@ static bool HostSupportsJit() {
4445
return false;
4546
}
4647

48+
// Some tests require a arm-registered-target
49+
static bool IsARMTargetRegistered() {
50+
llvm::Triple TT;
51+
TT.setArch(llvm::Triple::arm);
52+
TT.setVendor(llvm::Triple::UnknownVendor);
53+
TT.setOS(llvm::Triple::UnknownOS);
54+
55+
std::string UnusedErr;
56+
return llvm::TargetRegistry::lookupTarget(TT.str(), UnusedErr);
57+
}
58+
4759
struct LLVMInitRAII {
4860
LLVMInitRAII() {
49-
llvm::InitializeNativeTarget();
50-
llvm::InitializeNativeTargetAsmPrinter();
51-
LLVMInitializeARMTarget();
52-
LLVMInitializeARMTargetInfo();
53-
LLVMInitializeARMTargetMC();
54-
LLVMInitializeARMAsmPrinter();
61+
llvm::InitializeAllTargets();
62+
llvm::InitializeAllTargetInfos();
63+
llvm::InitializeAllTargetMCs();
64+
llvm::InitializeAllAsmPrinters();
5565
}
5666
~LLVMInitRAII() { llvm::llvm_shutdown(); }
5767
} LLVMInit;
@@ -190,6 +200,9 @@ TEST(InterpreterExtensionsTest, DISABLED_DefaultCrossJIT) {
190200
#else
191201
TEST(InterpreterExtensionsTest, DefaultCrossJIT) {
192202
#endif
203+
if (!IsARMTargetRegistered())
204+
GTEST_SKIP();
205+
193206
IncrementalCompilerBuilder CB;
194207
CB.SetTargetTriple("armv6-none-eabi");
195208
auto CI = cantFail(CB.CreateCpp());
@@ -204,6 +217,9 @@ TEST(InterpreterExtensionsTest, DISABLED_CustomCrossJIT) {
204217
#else
205218
TEST(InterpreterExtensionsTest, CustomCrossJIT) {
206219
#endif
220+
if (!IsARMTargetRegistered())
221+
GTEST_SKIP();
222+
207223
std::string TargetTriple = "armv6-none-eabi";
208224

209225
IncrementalCompilerBuilder CB;

0 commit comments

Comments
 (0)