[Lldb-commits] [lldb] r345912 - When no FileCheck binary is specified, look in the llvm/clang bin

Jason Molenda via lldb-commits lldb-commits at lists.llvm.org
Thu Nov 1 16:41:05 PDT 2018


Author: jmolenda
Date: Thu Nov  1 16:41:05 2018
New Revision: 345912

URL: http://llvm.org/viewvc/llvm-project?rev=345912&view=rev
Log:
When no FileCheck binary is specified, look in the llvm/clang bin
dirs relative to the source directory (Xcode build style) to find
one, use it if found.  


Modified:
    lldb/trunk/packages/Python/lldbsuite/test/dotest.py

Modified: lldb/trunk/packages/Python/lldbsuite/test/dotest.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/packages/Python/lldbsuite/test/dotest.py?rev=345912&r1=345911&r2=345912&view=diff
==============================================================================
--- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Thu Nov  1 16:41:05 2018
@@ -313,6 +313,13 @@ def parseOptionsAndInitTestdirs():
         # target. However, when invoking dotest.py directly, a valid --filecheck
         # option needs to be given.
         configuration.filecheck = os.path.abspath(args.filecheck)
+    else:
+        outputPaths = get_llvm_bin_dirs()
+        for outputPath in outputPaths:
+            candidatePath = os.path.join(outputPath, 'FileCheck')
+            if is_exe(candidatePath):
+                configuration.filecheck = candidatePath
+                break
 
     if not configuration.get_filecheck_path():
         logging.warning('No valid FileCheck executable; some tests may fail...')
@@ -627,6 +634,31 @@ def getOutputPaths(lldbRootDirectory):
 
     return result
 
+def get_llvm_bin_dirs():
+    """
+    Returns an array of paths that may have the llvm/clang/etc binaries
+    in them, relative to this current file.  
+    Returns an empty array if none are found.
+    """
+    result = []
+
+    lldb_root_path = os.path.join(
+        os.path.dirname(__file__), "..", "..", "..", "..")
+    paths_to_try = [
+        "llvm-build/Release+Asserts/x86_64/bin",
+        "llvm-build/Debug+Asserts/x86_64/bin",
+        "llvm-build/Release/x86_64/bin",
+        "llvm-build/Debug/x86_64/bin",
+        "llvm-build/Ninja-DebugAssert/llvm-macosx-x86_64/bin",
+        "llvm-build/Ninja-ReleaseAssert/llvm-macosx-x86_64/bin",
+        "llvm-build/Ninja-RelWithDebInfoAssert/llvm-macosx-x86_64/bin",
+    ]
+    for p in paths_to_try:
+        path = os.path.join(lldb_root_path, p)
+        if os.path.exists(path):
+            result.append(path)
+
+    return result
 
 def setupSysPath():
     """




More information about the lldb-commits mailing list