[dotest] Add the ability to set environment variables for the inferior.

This patch adds a dotest flag for setting environment variables for the
inferior. This is different from the current --env flag, which sets
variables in the debugger's environment. This allows us to set things
like LD_LIBRARY_PATH for testing.

Differential revision: https://reviews.llvm.org/D63790

llvm-svn: 364443
This commit is contained in:
Jonas Devlieghere 2019-06-26 16:12:08 +00:00
parent 039af0ea03
commit c8232e4310
4 changed files with 15 additions and 0 deletions

View File

@ -270,6 +270,9 @@ def parseOptionsAndInitTestdirs():
else:
os.environ[parts[0]] = parts[1]
if args.set_inferior_env_vars:
lldbtest_config.inferior_env = ' '.join(args.set_inferior_env_vars)
# only print the args if being verbose (and parsable is off)
if args.v and not args.q:
print(sys.argv)

View File

@ -210,6 +210,12 @@ def create_parser():
metavar='variable',
action='append',
help='Specify an environment variable to set to the given value before running the test cases e.g.: --env CXXFLAGS=-O3 --env DYLD_INSERT_LIBRARIES')
group.add_argument(
'--inferior-env',
dest='set_inferior_env_vars',
metavar='variable',
action='append',
help='Specify an environment variable to set to the given value for the inferior.')
X('-v', 'Do verbose mode of unittest framework (print out each test case invocation)')
group.add_argument(
'--enable-crash-dialog',

View File

@ -1856,6 +1856,9 @@ class TestBase(Base):
# decorators.
Base.setUp(self)
if lldbtest_config.inferior_env:
self.runCmd('settings set target.env-vars {}'.format(lldbtest_config.inferior_env))
# Set the clang modules cache path used by LLDB.
mod_cache = os.path.join(os.environ["LLDB_BUILD"], "module-cache-lldb")
self.runCmd('settings set symbols.clang-modules-cache-path "%s"'

View File

@ -20,3 +20,6 @@ out_of_tree_debugserver = False
# path to the lldb command line executable tool
lldbExec = None
# Environment variables for the inferior
inferior_env = None