[Lldb-commits] [lldb] r284041 - Fix lookup path for lldb-mi

Chris Bieneman via lldb-commits lldb-commits at lists.llvm.org
Wed Oct 12 13:15:46 PDT 2016

Author: cbieneman
Date: Wed Oct 12 15:15:46 2016
New Revision: 284041

URL: http://llvm.org/viewvc/llvm-project?rev=284041&view=rev
Fix lookup path for lldb-mi

The test suite calls realpath on the lldb executable then append "-mi" to it to find the path of the lldb-mi executable. This does not work when using CMake builds on *nix platforms. On *nix platforms when a version number is set on executables CMake generates the binary as ${name}-${version} with a symlink named ${name} pointing to it.

This results in the lldb executable being named lldb-4.0.0, and since lldb-4.0.0-mi doesn't ever match the lldb-mi executable these tests are always disabled.

This patch looks for lldb-mi in the same directory as lldb.

Reviewers: zturner, tfiala

Subscribers: ki.stfu, enlight, lldb-commits

Differential Revision: https://reviews.llvm.org/D25486


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=284041&r1=284040&r2=284041&view=diff
--- lldb/trunk/packages/Python/lldbsuite/test/dotest.py (original)
+++ lldb/trunk/packages/Python/lldbsuite/test/dotest.py Wed Oct 12 15:15:46 2016
@@ -673,16 +673,17 @@ def setupSysPath():
     # Assume lldb-mi is in same place as lldb
     # If not found, disable the lldb-mi tests
-    lldbMiExec = None
-    if lldbtest_config.lldbExec and is_exe(lldbtest_config.lldbExec + "-mi"):
-        lldbMiExec = lldbtest_config.lldbExec + "-mi"
-    if not lldbMiExec:
+    # TODO: Append .exe on Windows
+    #   - this will be in a separate commit in case the mi tests fail horribly
+    lldbDir = os.path.dirname(lldbtest_config.lldbExec)
+    lldbMiExec = os.path.join(lldbDir, "lldb-mi")
+    if is_exe(lldbMiExec):
+        os.environ["LLDBMI_EXEC"] = lldbMiExec
+    else:
         if not configuration.shouldSkipBecauseOfCategories(["lldb-mi"]):
                 "The 'lldb-mi' executable cannot be located.  The lldb-mi tests can not be run as a result.")
-    else:
-        os.environ["LLDBMI_EXEC"] = lldbMiExec
     lldbPythonDir = None  # The directory that contains 'lldb/__init__.py'
     if configuration.lldbFrameworkPath:

More information about the lldb-commits mailing list