summaryrefslogtreecommitdiffstats
path: root/lldb/packages/Python/lldbsuite/test/lang/objc
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/lang/objc
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/lang/objc')
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile39
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk10
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk10
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py10
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile4
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/Makefile2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py2
-rw-r--r--lldb/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py2
16 files changed, 51 insertions, 44 deletions
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
index 2d6de6f1514..346fc4b1fbc 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Makefile
@@ -1,38 +1,23 @@
LEVEL = ../../../make
-CC ?= clang
-ifeq "$(ARCH)" ""
- ARCH = x86_64
-endif
+LD_EXTRAS = -lobjc -framework Foundation
-ifeq "$(OS)" ""
- OS = $(shell uname -s)
-endif
+include $(LEVEL)/Makefile.rules
-CFLAGS ?= -g -O0
-
-ifeq "$(OS)" "Darwin"
- CFLAGS += -arch $(ARCH)
-endif
-
-LDFLAGS = $(CFLAGS) -lobjc -framework Foundation
-
-all: a.out libTest.dylib libTestExt.dylib
+all: a.out
libTest.dylib: Test/Test.m
- $(CC) $(CFLAGS) -I. -c -o Test.o Test/Test.m
- $(CC) $(LDFLAGS) -shared -o libTest.dylib Test.o
- dsymutil libTest.dylib
+ mkdir -p Test
+ $(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/Test/Test.mk all
libTestExt.dylib: TestExt/TestExt.m
- $(CC) $(CFLAGS) -I. -c -o TestExt.o TestExt/TestExt.m
- $(CC) $(LDFLAGS) -L. -lTest -shared -o libTestExt.dylib TestExt.o
- dsymutil libTestExt.dylib
+ mkdir -p TestExt
+ $(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/TestExt/TestExt.mk all
a.out: main.m libTest.dylib libTestExt.dylib
- $(CC) $(LDFLAGS) -I. -L. -lTest -lTestExt -o a.out main.m
-
-.PHONY: clean
+ $(CC) $(LDFLAGS) -I$(SRCDIR) -L. -lTest -lTestExt -o a.out $<
-clean:
- rm -rf libTest.dylib libTestExt.dylib a.out Test.o TestExt.o libTest.dylib.dSYM libTest.dylib.dSYM
+clean::
+ rm -rf libTest.dylib libTestExt.dylib a.out Test.o TestExt.o libTest.dylib.dSYM libTestExt.dylib.dSYM
+ $(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/Test/Test.mk clean
+ $(MAKE) MAKE_DSYM=YES VPATH=$(SRCDIR) -I $(SRCDIR) -f $(SRCDIR)/TestExt/TestExt.mk clean
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk
new file mode 100644
index 00000000000..be758ac07d8
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/Test/Test.mk
@@ -0,0 +1,10 @@
+LEVEL = ../../../make
+
+DYLIB_NAME := Test
+DYLIB_ONLY := YES
+CFLAGS_EXTRAS = -I$(SRCDIR)/..
+LD_EXTRAS = -lobjc -framework Foundation
+
+DYLIB_OBJC_SOURCES = Test/Test.m
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk
new file mode 100644
index 00000000000..285d7262ce8
--- /dev/null
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/conflicting-definition/TestExt/TestExt.mk
@@ -0,0 +1,10 @@
+LEVEL = ../../../make
+
+DYLIB_NAME := TestExt
+DYLIB_ONLY := YES
+CFLAGS_EXTRAS = -I$(SRCDIR)/..
+LD_EXTRAS = -L. -lTest -lobjc -framework Foundation
+
+DYLIB_OBJC_SOURCES = TestExt/TestExt.m
+
+include $(LEVEL)/Makefile.rules
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
index b432d47d36a..42535ca44af 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjCMethods.py
@@ -296,7 +296,7 @@ class FoundationTestCase(TestBase):
# Log any DWARF lookups
++file_index
logfile = os.path.join(
- os.getcwd(),
+ self.getBuildDir(),
"dwarf-lookups-" +
self.getArchitecture() +
"-" +
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
index 8ef9f39434e..82e08584702 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/foundation/TestObjectDescriptionAPI.py
@@ -34,7 +34,7 @@ class ObjectDescriptionAPITestCase(TestBase):
d = {'EXE': 'b.out'}
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), 'b.out')
+ exe = self.getBuildArtifact('b.out')
# Create a target by the debugger.
target = self.dbg.CreateTarget(exe)
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py b/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
index 96ac6d7bd90..2fad51eefd5 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/hidden-ivars/TestHiddenIvars.py
@@ -84,10 +84,12 @@ class HiddenIvarsTestCase(TestBase):
if strip:
self.assertTrue(subprocess.call(
- ['/usr/bin/strip', '-Sx', 'libInternalDefiner.dylib']) == 0, 'stripping dylib succeeded')
- self.assertTrue(subprocess.call(['/bin/rm',
- '-rf',
- 'libInternalDefiner.dylib.dSYM']) == 0,
+ ['/usr/bin/strip', '-Sx',
+ self.getBuildArtifact('libInternalDefiner.dylib')]) == 0,
+ 'stripping dylib succeeded')
+ self.assertTrue(subprocess.call(
+ ['/bin/rm', '-rf',
+ self.getBuildArtifact('libInternalDefiner.dylib.dSYM')]) == 0,
'remove dylib dSYM file succeeded')
self.assertTrue(subprocess.call(['/usr/bin/strip', '-Sx',
self.getBuildArtifact("a.out")
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile
index bd940ab148c..f69da9a64be 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/ivar-IMP/Makefile
@@ -19,8 +19,8 @@ endif
all: aout
aout:
- $(CC) $(CFLAGS_NO_DEBUG) myclass.m -c -o myclass.o
- $(CC) $(CFLAGS) myclass.o repro.m -framework Foundation
+ $(CC) $(CFLAGS_NO_DEBUG) $(SRCDIR)/myclass.m -c -o myclass.o
+ $(CC) $(CFLAGS) myclass.o $(SRCDIR)/repro.m -framework Foundation
clean::
rm -f myclass.o
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py b/lldb/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
index ad182586f78..c6c556d385d 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/modules-incomplete/TestIncompleteModules.py
@@ -47,7 +47,7 @@ class IncompleteModulesTestCase(TestBase):
self.runCmd(
"settings set target.clang-module-search-paths \"" +
- os.getcwd() +
+ self.getSourceDir() +
"\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py b/lldb/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
index 2b2f51918cb..29d386253fb 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/modules-inline-functions/TestModulesInlineFunctions.py
@@ -50,7 +50,7 @@ class ModulesInlineFunctionsTestCase(TestBase):
self.runCmd(
"settings set target.clang-module-search-paths \"" +
- os.getcwd() +
+ self.getSourceDir() +
"\"")
self.expect("expr @import myModule; 3", VARIABLES_DISPLAYED_CORRECTLY,
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
index 8b3f444b27a..6e95b4fa4b9 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-dyn-sbtype/TestObjCDynamicSBType.py
@@ -34,7 +34,7 @@ class ObjCDynamicSBTypeTestCase(TestBase):
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), self.exe_name)
+ exe = self.getBuildArtifact(self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/Makefile b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/Makefile
index 4365ed9ae93..b93a8a13379 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/Makefile
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/objc-ivar-stripped/Makefile
@@ -3,7 +3,7 @@ LEVEL = ../../../make
OBJC_SOURCES := main.m
LDFLAGS = $(CFLAGS) -lobjc -framework Foundation
-default: a.out.stripped
+all: a.out.stripped
a.out.stripped: a.out.dSYM
strip -o a.out.stripped a.out
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py b/lldb/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
index 288f912dc79..57a572c6bb4 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/print-obj/TestPrintObj.py
@@ -38,7 +38,7 @@ class PrintObjTestCase(TestBase):
d = {'EXE': 'b.out'}
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), 'b.out')
+ exe = self.getBuildArtifact('b.out')
target = self.dbg.CreateTarget(exe)
self.assertTrue(target, VALID_TARGET)
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py b/lldb/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
index fe7d5d48ca7..737b0dc3286 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/radar-9691614/TestObjCMethodReturningBOOL.py
@@ -33,7 +33,7 @@ class MethodReturningBOOLTestCase(TestBase):
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), self.exe_name)
+ exe = self.getBuildArtifact(self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
index 1375a78f87a..ed60e5f98c2 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-10967107/TestRdar10967107.py
@@ -33,7 +33,7 @@ class Rdar10967107TestCase(TestBase):
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), self.exe_name)
+ exe = self.getBuildArtifact(self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
index d1956d46e7b..8619ce1ebd3 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-11355592/TestRdar11355592.py
@@ -33,7 +33,7 @@ class Rdar10967107TestCase(TestBase):
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), self.exe_name)
+ exe = self.getBuildArtifact(self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
diff --git a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
index 28f230107fd..00fffc8176a 100644
--- a/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
+++ b/lldb/packages/Python/lldbsuite/test/lang/objc/rdar-12408181/TestRdar12408181.py
@@ -41,7 +41,7 @@ class Rdar12408181TestCase(TestBase):
self.build(dictionary=d)
self.setTearDownCleanup(dictionary=d)
- exe = os.path.join(os.getcwd(), self.exe_name)
+ exe = self.getBuildArtifact(self.exe_name)
self.runCmd("file " + exe, CURRENT_EXECUTABLE_SET)
lldbutil.run_break_set_by_file_and_line(
OpenPOWER on IntegriCloud