diff --git a/lldb/packages/Python/lldbsuite/test/decorators.py b/lldb/packages/Python/lldbsuite/test/decorators.py index 85f346d73283..4e47165cdb1f 100644 --- a/lldb/packages/Python/lldbsuite/test/decorators.py +++ b/lldb/packages/Python/lldbsuite/test/decorators.py @@ -510,10 +510,9 @@ def skipIfNoSBHeaders(func): if lldb.remote_platform: return "skip because SBHeaders tests make no sense remotely" - if lldbplatformutil.getHostPlatform() == 'darwin': + if lldbplatformutil.getHostPlatform() == 'darwin' and configuration.lldb_framework_path: header = os.path.join( - os.environ["LLDB_LIB_DIR"], - 'LLDB.framework', + configuration.lldb_framework_path, 'Versions', 'Current', 'Headers', diff --git a/lldb/packages/Python/lldbsuite/test/dotest.py b/lldb/packages/Python/lldbsuite/test/dotest.py index c96840024b8a..30d6afc231fd 100644 --- a/lldb/packages/Python/lldbsuite/test/dotest.py +++ b/lldb/packages/Python/lldbsuite/test/dotest.py @@ -519,13 +519,6 @@ def setupSysPath(): print("The 'lldb' executable cannot be located. Some of the tests may not be run as a result.") sys.exit(-1) - # confusingly, this is the "bin" directory - lldbLibDir = os.path.dirname(lldbtest_config.lldbExec) - os.environ["LLDB_LIB_DIR"] = lldbLibDir - lldbImpLibDir = configuration.lldb_libs_dir - os.environ["LLDB_IMPLIB_DIR"] = lldbImpLibDir - print("LLDB library dir:", os.environ["LLDB_LIB_DIR"]) - print("LLDB import library dir:", os.environ["LLDB_IMPLIB_DIR"]) os.system('%s -v' % lldbtest_config.lldbExec) lldbDir = os.path.dirname(lldbtest_config.lldbExec) @@ -540,8 +533,6 @@ def setupSysPath(): configuration.skip_categories.append("lldb-vscode") lldbPythonDir = None # The directory that contains 'lldb/__init__.py' - if not configuration.lldb_framework_path and os.path.exists(os.path.join(lldbLibDir, "LLDB.framework")): - configuration.lldb_framework_path = os.path.join(lldbLibDir, "LLDB.framework") if configuration.lldb_framework_path: lldbtest_config.lldb_framework_path = configuration.lldb_framework_path candidatePath = os.path.join( diff --git a/lldb/packages/Python/lldbsuite/test/lldbtest.py b/lldb/packages/Python/lldbsuite/test/lldbtest.py index 4180ba271613..112b19abab39 100644 --- a/lldb/packages/Python/lldbsuite/test/lldbtest.py +++ b/lldb/packages/Python/lldbsuite/test/lldbtest.py @@ -916,28 +916,18 @@ class Base(unittest2.TestCase): self.setPlatformWorkingDir() self.enableLogChannelsForCurrentTest() - lib_dir = os.environ["LLDB_LIB_DIR"] - self.dsym = None + self.lib_lldb = None self.framework_dir = None - self.darwinWithFramework = self.platformIsDarwin() - if sys.platform.startswith("darwin"): - # Handle the framework environment variable if it is set - if hasattr(lldbtest_config, 'lldb_framework_path'): - framework_path = lldbtest_config.lldb_framework_path - # Framework dir should be the directory containing the framework - self.framework_dir = framework_path[:framework_path.rfind('LLDB.framework')] - # If a framework dir was not specified assume the Xcode build - # directory layout where the framework is in LLDB_LIB_DIR. - else: - self.framework_dir = lib_dir - self.dsym = os.path.join(self.framework_dir, 'LLDB.framework', 'LLDB') - # If the framework binary doesn't exist, assume we didn't actually - # build a framework, and fallback to standard *nix behavior by - # setting framework_dir and dsym to None. - if not os.path.exists(self.dsym): - self.framework_dir = None - self.dsym = None - self.darwinWithFramework = False + self.darwinWithFramework = False + + if sys.platform.startswith("darwin") and configuration.lldb_framework_path: + framework = configuration.lldb_framework_path + lib = os.path.join(framework, 'LLDB') + if os.path.exists(lib): + self.framework_dir = os.path.dirname(framework) + self.lib_lldb = lib + self.darwinWithFramework = self.platformIsDarwin() + self.makeBuildDir() def setAsync(self, value): @@ -1499,7 +1489,7 @@ class Base(unittest2.TestCase): 'EXE': exe_name, 'CFLAGS_EXTRAS': "%s %s" % (stdflag, stdlibflag), 'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir, - 'LD_EXTRAS': "%s -Wl,-rpath,%s" % (self.dsym, self.framework_dir), + 'LD_EXTRAS': "%s -Wl,-rpath,%s" % (self.lib_lldb, self.framework_dir), } elif sys.platform.startswith('win'): d = { @@ -1510,7 +1500,7 @@ class Base(unittest2.TestCase): os.path.join( os.environ["LLDB_SRC"], "include")), - 'LD_EXTRAS': "-L%s -lliblldb" % os.environ["LLDB_IMPLIB_DIR"]} + 'LD_EXTRAS': "-L%s -lliblldb" % lib_dir} else: d = { 'CXX_SOURCES': sources, @@ -1539,7 +1529,7 @@ class Base(unittest2.TestCase): 'DYLIB_NAME': lib_name, 'CFLAGS_EXTRAS': "%s -stdlib=libc++" % stdflag, 'FRAMEWORK_INCLUDES': "-F%s" % self.framework_dir, - 'LD_EXTRAS': "%s -Wl,-rpath,%s -dynamiclib" % (self.dsym, self.framework_dir), + 'LD_EXTRAS': "%s -Wl,-rpath,%s -dynamiclib" % (self.lib_lldb, self.framework_dir), } elif self.getPlatform() == 'windows': d = { @@ -1549,7 +1539,7 @@ class Base(unittest2.TestCase): os.path.join( os.environ["LLDB_SRC"], "include")), - 'LD_EXTRAS': "-shared -l%s\liblldb.lib" % self.os.environ["LLDB_IMPLIB_DIR"]} + 'LD_EXTRAS': "-shared -l%s\liblldb.lib" % lib_dir} else: d = { 'DYLIB_CXX_SOURCES': sources, @@ -1759,13 +1749,11 @@ class Base(unittest2.TestCase): """ existing_library_path = os.environ[ self.dylibPath] if self.dylibPath in os.environ else None - lib_dir = os.environ["LLDB_LIB_DIR"] if existing_library_path: - return "%s:%s" % (existing_library_path, lib_dir) - elif sys.platform.startswith("darwin"): - return os.path.join(lib_dir, 'LLDB.framework') - else: - return lib_dir + return "%s:%s" % (existing_library_path, configuration.lldb_libs_dir) + if sys.platform.startswith("darwin") and configuration.lldb_framework_path: + return configuration.lldb_framework_path + return configuration.lldb_libs_dir def getLibcPlusPlusLibs(self): if self.getPlatform() in ('freebsd', 'linux', 'netbsd', 'openbsd'): diff --git a/lldb/test/API/tools/intel-features/intel-pt/test/TestIntelPTSimpleBinary.py b/lldb/test/API/tools/intel-features/intel-pt/test/TestIntelPTSimpleBinary.py index e26b9f6f487e..8c6c9cf4fbb7 100644 --- a/lldb/test/API/tools/intel-features/intel-pt/test/TestIntelPTSimpleBinary.py +++ b/lldb/test/API/tools/intel-features/intel-pt/test/TestIntelPTSimpleBinary.py @@ -21,7 +21,7 @@ class TestIntelPTSimpleBinary(TestBase): if 'intel-pt' not in configuration.enabled_plugins: self.skipTest("The intel-pt test plugin is not enabled") - plugin_path = os.path.join(os.environ["LLDB_IMPLIB_DIR"], "liblldbIntelFeatures.so") + plugin_path = os.path.join(configuration.lldb_libs_dir, "liblldbIntelFeatures.so") self.runCmd("plugin load " + plugin_path) @skipIf(oslist=no_match(['linux'])) diff --git a/lldb/tools/intel-features/intel-mpx/test/TestMPXTable.py b/lldb/tools/intel-features/intel-mpx/test/TestMPXTable.py index f571252e26f7..5431abcdbca5 100644 --- a/lldb/tools/intel-features/intel-mpx/test/TestMPXTable.py +++ b/lldb/tools/intel-features/intel-mpx/test/TestMPXTable.py @@ -30,9 +30,7 @@ class TestMPXTable(TestBase): """Test 'mpx-table show' command""" self.build() - lldb_exec_dir = os.environ["LLDB_IMPLIB_DIR"] - lldb_lib_dir = os.path.join(lldb_exec_dir, os.pardir, "lib") - plugin_file = os.path.join(lldb_lib_dir, "liblldbIntelFeatures.so") + plugin_file = os.path.join(configuration.lldb_libs_dir, "liblldbIntelFeatures.so") if not os.path.isfile(plugin_file): self.skipTest("features plugin missing.") plugin_command = " " @@ -122,9 +120,7 @@ class TestMPXTable(TestBase): """Test 'mpx-table set' command""" self.build() - lldb_exec_dir = os.environ["LLDB_IMPLIB_DIR"] - lldb_lib_dir = os.path.join(lldb_exec_dir, os.pardir, "lib") - plugin_file = os.path.join(lldb_lib_dir, "liblldbIntelFeatures.so") + plugin_file = os.path.join(configuration.lldb_libs_dir, "liblldbIntelFeatures.so") if not os.path.isfile(plugin_file): self.skipTest("features plugin missing.") plugin_command = " "