summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/api
diff options
context:
space:
mode:
authorAdrian Prantl <aprantl@apple.com>2018-01-30 18:29:16 +0000
committerAdrian Prantl <aprantl@apple.com>2018-01-30 18:29:16 +0000
commit5ec76fe720e43a9196d3437e1ff448668bf7db6d (patch)
tree49d569898f53e6887e7167b4470b5e672ddf1541 /lldb/packages/Python/lldbsuite/test/api
parent1d8e5ea2500728cfc751ce055dd75e5084584e9c (diff)
downloadbcm5719-llvm-5ec76fe720e43a9196d3437e1ff448668bf7db6d.tar.gz
bcm5719-llvm-5ec76fe720e43a9196d3437e1ff448668bf7db6d.zip
Compile the LLDB tests out-of-tree.
This patch is the result of a discussion on lldb-dev, see http://lists.llvm.org/pipermail/lldb-dev/2018-January/013111.html for background. For each test (should be eventually: each test configuration) a separate build directory is created and we execute make VPATH=$srcdir/path/to/test -C $builddir/path/to/test -f $srcdir/path/to/test/Makefile -I $srcdir/path/to/test In order to make this work all LLDB tests need to be updated to find the executable in the test build directory, since CWD still points at the test's source directory, which is a requirement for unittest2. Although we have done extensive testing, I'm expecting that this first attempt will break a few bots. Please DO NOT HESITATE TO REVERT this patch in order to get the bots green again. We will likely have to iterate on this some more. Differential Revision: https://reviews.llvm.org/D42281 llvm-svn: 323803
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/api')
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py10
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py4
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/multiple-targets/TestMultipleTargets.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py10
4 files changed, 15 insertions, 11 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py b/lldb/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py
index 5acbf9c14c3..20fd3030721 100644
--- a/lldb/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py
+++ b/lldb/packages/Python/lldbsuite/test/api/check_public_api_headers/TestPublicAPIHeaders.py
@@ -21,7 +21,6 @@ class SBDirCheckerCase(TestBase):
def setUp(self):
TestBase.setUp(self)
self.source = 'main.cpp'
- self.exe_name = self.getBuildArtifact("a.out")
self.generateSource(self.source)
@skipIfNoSBHeaders
@@ -35,16 +34,19 @@ class SBDirCheckerCase(TestBase):
self.skipTest(
"LLDB is 64-bit and cannot be linked to 32-bit test program.")
- self.buildDriver(self.source, self.exe_name)
- self.sanity_check_executable(self.exe_name)
+ exe_name = self.getBuildArtifact("a.out")
+ self.buildDriver(self.source, exe_name)
+ self.sanity_check_executable(exe_name)
def sanity_check_executable(self, exe_name):
"""Sanity check executable compiled from the auto-generated program."""
+ exe_name = self.getBuildArtifact("a.out")
exe = self.getBuildArtifact(exe_name)
self.runCmd("file %s" % exe, CURRENT_EXECUTABLE_SET)
+ # This test uses a generated source file, so it's in the build directory.
self.line_to_break = line_number(
- self.source, '// Set breakpoint here.')
+ self.getBuildArtifact(self.source), '// Set breakpoint here.')
env_cmd = "settings set target.env-vars %s=%s" % (
self.dylibPath, self.getLLDBLibraryEnvVal())
diff --git a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
index dc1a0d19f83..d9ea974d3ab 100644
--- a/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
+++ b/lldb/packages/Python/lldbsuite/test/api/multiple-debuggers/TestMultipleDebuggers.py
@@ -32,12 +32,12 @@ class TestMultipleSimultaneousDebuggers(TestBase):
def test_multiple_debuggers(self):
env = {self.dylibPath: self.getLLDBLibraryEnvVal()}
- self.driver_exe = os.path.join(os.getcwd(), "multi-process-driver")
+ self.driver_exe = self.getBuildArtifact("multi-process-driver")
self.buildDriver('multi-process-driver.cpp', self.driver_exe)
self.addTearDownHook(lambda: os.remove(self.driver_exe))
self.signBinary(self.driver_exe)
- self.inferior_exe = os.path.join(os.getcwd(), "testprog")
+ self.inferior_exe = self.getBuildArtifact("testprog")
self.buildDriver('testprog.cpp', self.inferior_exe)
self.addTearDownHook(lambda: os.remove(self.inferior_exe))
diff --git a/lldb/packages/Python/lldbsuite/test/api/multiple-targets/TestMultipleTargets.py b/lldb/packages/Python/lldbsuite/test/api/multiple-targets/TestMultipleTargets.py
index decb3fd4f0c..f4e166955ac 100644
--- a/lldb/packages/Python/lldbsuite/test/api/multiple-targets/TestMultipleTargets.py
+++ b/lldb/packages/Python/lldbsuite/test/api/multiple-targets/TestMultipleTargets.py
@@ -26,7 +26,7 @@ class TestMultipleTargets(TestBase):
def test_multiple_targets(self):
env = {self.dylibPath: self.getLLDBLibraryEnvVal()}
- self.driver_exe = os.path.join(os.getcwd(), "multi-target")
+ self.driver_exe = self.getBuildArtifact("multi-target")
self.buildDriver('main.cpp', self.driver_exe)
self.addTearDownHook(lambda: os.remove(self.driver_exe))
self.signBinary(self.driver_exe)
diff --git a/lldb/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py b/lldb/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py
index 767bab79e81..5789c44a2fc 100644
--- a/lldb/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py
+++ b/lldb/packages/Python/lldbsuite/test/api/multithreaded/TestMultithreaded.py
@@ -89,14 +89,16 @@ class SBBreakpointCallbackCase(TestBase):
self.inferior = 'inferior_program'
self.buildProgram('inferior.cpp', self.inferior)
- self.addTearDownHook(lambda: os.remove(self.inferior))
+ self.addTearDownHook(lambda:
+ os.remove(self.getBuildArtifact(self.inferior)))
self.buildDriver(sources, test_name)
- self.addTearDownHook(lambda: os.remove(test_name))
+ self.addTearDownHook(lambda:
+ os.remove(self.getBuildArtifact(test_name)))
- test_exe = os.path.join(os.getcwd(), test_name)
+ test_exe = self.getBuildArtifact(test_name)
self.signBinary(test_exe)
- exe = [test_exe, self.inferior]
+ exe = [test_exe, self.getBuildArtifact(self.inferior)]
env = {self.dylibPath: self.getLLDBLibraryEnvVal()}
if self.TraceOn():
OpenPOWER on IntegriCloud