Extend the build mechanism to allow for specifying the compiler used to build
the binaries.
If the build* function is passed the compiler argument, for example, 'llvm-gcc',
it is passed as a make variable to the make command. Otherwise, we check the
LLDB_CC environment variable; if it is defined, it is passed as a make variable
to the make command.
If neither the compiler keyword argument nor the LLDB_CC environment variable is
specified, no CC make variable is passed to the make command. The Makefile gets
to define the default CC being used.
--------------------------------------------------------------------------------
Example usage follows:
o Via the keyword argument:
class ArrayTypesTestCase(TestBase):
mydir = "array_types"
@unittest2.skipUnless(sys.platform.startswith("darwin"), "requires Darwin")
def test_with_dsym_and_run_command(self):
"""Test 'frame variable var_name' on some variables with array types."""
self.buildDsym(compiler='llvm-gcc')
self.array_types()
...
o Via LLDB_CC environment variable:
$ LLDB_CC=llvm-gcc ./dotest.py -v -t array_types
----------------------------------------------------------------------
Collected 4 tests
test_with_dsym_and_python_api (TestArrayTypes.ArrayTypesTestCase)
Use Python APIs to inspect variables with array types. ...
os command: [['/bin/sh', '-c', 'make clean; make MAKE_DSYM=YES CC=llvm-gcc']]
output: rm -rf "a.out" "a.out.dSYM" main.o main.d
llvm-gcc -arch x86_64 -gdwarf-2 -O0 -arch x86_64 -gdwarf-2 -O0 -c -o main.o main.c
llvm-gcc -arch x86_64 -gdwarf-2 -O0 main.o -o "a.out"
/usr/bin/dsymutil -o "a.out.dSYM" "a.out"
...
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@113781 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/test/lldbtest.py b/test/lldbtest.py
index f945620..ddbedfc 100644
--- a/test/lldbtest.py
+++ b/test/lldbtest.py
@@ -460,22 +460,22 @@
# End of while loop.
- def buildDefault(self):
+ def buildDefault(self, compiler=None):
"""Platform specific way to build the default binaries."""
module = __import__(sys.platform)
- if not module.buildDefault():
+ if not module.buildDefault(compiler):
raise Exception("Don't know how to build default binary")
- def buildDsym(self):
+ def buildDsym(self, compiler=None):
"""Platform specific way to build binaries with dsym info."""
module = __import__(sys.platform)
- if not module.buildDsym():
+ if not module.buildDsym(compiler):
raise Exception("Don't know how to build binary with dsym")
- def buildDwarf(self):
+ def buildDwarf(self, compiler=None):
"""Platform specific way to build binaries with dwarf maps."""
module = __import__(sys.platform)
- if not module.buildDwarf():
+ if not module.buildDwarf(compiler):
raise Exception("Don't know how to build binary with dwarf")
def DebugSBValue(self, frame, val):