]> granicus.if.org Git - llvm/commitdiff
Skip MCJIT unit tests if LLVM is not configured for native compilation
authorDavid Blaikie <dblaikie@gmail.com>
Tue, 3 Sep 2019 19:30:45 +0000 (19:30 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Tue, 3 Sep 2019 19:30:45 +0000 (19:30 +0000)
Patch by Sergej Jaskiewicz!

Differential Revision: D67089

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@370812 91177308-0d34-0410-b5e6-96231b3b80d8

unittests/ExecutionEngine/MCJIT/MCJITTestAPICommon.h

index 0f554439ad42a8f66fb16fab9153089100f0e057..f47de56d3e40ab9261f2ab173841cc46d2900783 100644 (file)
 #include "llvm/InitializePasses.h"
 #include "llvm/Support/Host.h"
 #include "llvm/Support/TargetSelect.h"
+#include "llvm/Support/TargetRegistry.h"
 
 // Used to skip tests on unsupported architectures and operating systems.
 // To skip a test, add this macro at the top of a test-case in a suite that
 // inherits from MCJITTestBase. See MCJITTest.cpp for examples.
 #define SKIP_UNSUPPORTED_PLATFORM \
   do \
-    if (!ArchSupportsMCJIT() || !OSSupportsMCJIT()) \
+    if (!ArchSupportsMCJIT() || !OSSupportsMCJIT() || !HostCanBeTargeted()) \
       return; \
   while(0)
 
@@ -52,6 +53,11 @@ protected:
     HostTriple = Triple::normalize(HostTriple);
   }
 
+  bool HostCanBeTargeted() {
+    std::string Error;
+    return TargetRegistry::lookupTarget(HostTriple, Error) != nullptr;
+  }
+
   /// Returns true if the host architecture is known to support MCJIT
   bool ArchSupportsMCJIT() {
     Triple Host(HostTriple);