summaryrefslogtreecommitdiff
path: root/packages/Python/lldbsuite/test/plugins/builder_base.py
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
committerDimitry Andric <dim@FreeBSD.org>2019-08-20 18:01:57 +0000
commit88c643b6fec27eec436c8d138fee6346e92337d6 (patch)
tree82cd13b2f3cde1c9e5f79689ba4e6ba67694843f /packages/Python/lldbsuite/test/plugins/builder_base.py
parent94994d372d014ce4c8758b9605d63fae651bd8aa (diff)
Notes
Diffstat (limited to 'packages/Python/lldbsuite/test/plugins/builder_base.py')
-rw-r--r--packages/Python/lldbsuite/test/plugins/builder_base.py217
1 files changed, 0 insertions, 217 deletions
diff --git a/packages/Python/lldbsuite/test/plugins/builder_base.py b/packages/Python/lldbsuite/test/plugins/builder_base.py
deleted file mode 100644
index be891da2d086..000000000000
--- a/packages/Python/lldbsuite/test/plugins/builder_base.py
+++ /dev/null
@@ -1,217 +0,0 @@
-"""
-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.
-
-Same idea holds for LLDB_ARCH environment variable, which maps to the ARCH make
-variable.
-"""
-
-# System imports
-import os
-import platform
-import subprocess
-import sys
-
-# Our imports
-import lldbsuite.test.lldbtest as lldbtest
-import lldbsuite.test.lldbutil as lldbutil
-from lldbsuite.test_event import build_exception
-
-
-def getArchitecture():
- """Returns the architecture in effect the test suite is running with."""
- return os.environ["ARCH"] if "ARCH" in os.environ else ""
-
-
-def getCompiler():
- """Returns the compiler in effect the test suite is running with."""
- compiler = os.environ.get("CC", "clang")
- compiler = lldbutil.which(compiler)
- return os.path.realpath(compiler)
-
-
-def getArchFlag():
- """Returns the flag required to specify the arch"""
- compiler = getCompiler()
- if compiler is None:
- return ""
- elif "gcc" in compiler:
- archflag = "-m"
- elif "clang" in compiler:
- archflag = "-arch"
- else:
- archflag = None
-
- return ("ARCHFLAG=" + archflag) if archflag else ""
-
-def getMake(test_subdir, test_name):
- """Returns the invocation for GNU make.
- The first argument is a tuple of the relative path to the testcase
- and its filename stem."""
- if platform.system() == "FreeBSD" or platform.system() == "NetBSD":
- make = "gmake"
- else:
- make = "make"
-
- # Construct the base make invocation.
- lldb_test = os.environ["LLDB_TEST"]
- lldb_build = os.environ["LLDB_BUILD"]
- if not (lldb_test and lldb_build and test_subdir and test_name and
- (not os.path.isabs(test_subdir))):
- raise Exception("Could not derive test directories")
- build_dir = os.path.join(lldb_build, test_subdir, test_name)
- src_dir = os.path.join(lldb_test, test_subdir)
- # This is a bit of a hack to make inline testcases work.
- makefile = os.path.join(src_dir, "Makefile")
- if not os.path.isfile(makefile):
- makefile = os.path.join(build_dir, "Makefile")
- return [make,
- "VPATH="+src_dir,
- "-C", build_dir,
- "-I", src_dir,
- "-f", makefile]
-
-
-def getArchSpec(architecture):
- """
- Helper function to return the key-value string to specify the architecture
- used for the make system.
- """
- arch = architecture if architecture else None
- if not arch and "ARCH" in os.environ:
- arch = os.environ["ARCH"]
-
- return ("ARCH=" + arch) if arch else ""
-
-
-def getCCSpec(compiler):
- """
- Helper function to return the key-value string to specify the compiler
- used for the make system.
- """
- cc = compiler if compiler else None
- if not cc and "CC" in os.environ:
- cc = os.environ["CC"]
- if cc:
- return "CC=\"%s\"" % cc
- else:
- return ""
-
-
-def getCmdLine(d):
- """
- Helper function to return a properly formatted command line argument(s)
- string used for the make system.
- """
-
- # If d is None or an empty mapping, just return an empty string.
- if not d:
- return ""
- pattern = '%s="%s"' if "win32" in sys.platform else "%s='%s'"
-
- def setOrAppendVariable(k, v):
- append_vars = ["CFLAGS_EXTRAS", "LD_EXTRAS"]
- if k in append_vars and k in os.environ:
- v = os.environ[k] + " " + v
- return pattern % (k, v)
- cmdline = " ".join([setOrAppendVariable(k, v) for k, v in list(d.items())])
-
- return cmdline
-
-
-def runBuildCommands(commands, sender):
- try:
- lldbtest.system(commands, sender=sender)
- except subprocess.CalledProcessError as called_process_error:
- # Convert to a build-specific error.
- # We don't do that in lldbtest.system() since that
- # is more general purpose.
- raise build_exception.BuildError(called_process_error)
-
-
-def buildDefault(
- sender=None,
- architecture=None,
- compiler=None,
- dictionary=None,
- testdir=None,
- testname=None):
- """Build the binaries the default way."""
- commands = []
- commands.append(getMake(testdir, testname) + ["all", getArchSpec(architecture),
- getCCSpec(compiler), getCmdLine(dictionary)])
-
- runBuildCommands(commands, sender=sender)
-
- # True signifies that we can handle building default.
- return True
-
-
-def buildDwarf(
- sender=None,
- architecture=None,
- compiler=None,
- dictionary=None,
- testdir=None,
- testname=None):
- """Build the binaries with dwarf debug info."""
- commands = []
- commands.append(getMake(testdir, testname) +
- ["MAKE_DSYM=NO", getArchSpec(architecture),
- getCCSpec(compiler), getCmdLine(dictionary)])
-
- runBuildCommands(commands, sender=sender)
- # True signifies that we can handle building dwarf.
- return True
-
-
-def buildDwo(
- sender=None,
- architecture=None,
- compiler=None,
- dictionary=None,
- testdir=None,
- testname=None):
- """Build the binaries with dwarf debug info."""
- commands = []
- commands.append(getMake(testdir, testname) +
- ["MAKE_DSYM=NO", "MAKE_DWO=YES",
- getArchSpec(architecture),
- getCCSpec(compiler),
- getCmdLine(dictionary)])
-
- runBuildCommands(commands, sender=sender)
- # True signifies that we can handle building dwo.
- return True
-
-
-def buildGModules(
- sender=None,
- architecture=None,
- compiler=None,
- dictionary=None,
- testdir=None,
- testname=None):
- """Build the binaries with dwarf debug info."""
- commands = []
- commands.append(getMake(testdir, testname) +
- ["MAKE_DSYM=NO",
- "MAKE_GMODULES=YES",
- getArchSpec(architecture),
- getCCSpec(compiler),
- getCmdLine(dictionary)])
-
- lldbtest.system(commands, sender=sender)
- # True signifies that we can handle building with gmodules.
- return True
-
-
-def cleanup(sender=None, dictionary=None):
- """Perform a platform-specific cleanup after the test."""
- return True