summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/dotest.py
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/dotest.py')
-rw-r--r--lldb/packages/Python/lldbsuite/test/dotest.py32
1 files changed, 32 insertions, 0 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py
index e3a30ed5b10..f614fb61a35 100644
--- a/lldb/packages/Python/lldbsuite/test/dotest.py
+++ b/lldb/packages/Python/lldbsuite/test/dotest.py
@@ -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():
"""
OpenPOWER on IntegriCloud