[lit] Respect PYTHONPATH

If a user has PYTHONPATH set in the environment, append new entries to
it rather than blindly setting PYTHONPATH to a fixed string. This
allows tests to, for example, find psutil if it is in
PYTHONPATH. Without this change, lit will detect psutil but then
various tests will fail because PYTHONPATH has been overwritten and
psutil cannot be found.

llvm-svn: 350536
This commit is contained in:
David Greene 2019-01-07 16:24:37 +00:00
parent 4d4213f694
commit 6f1394ff86
2 changed files with 18 additions and 2 deletions

View File

@ -28,5 +28,13 @@ config.test_source_root = os.path.dirname(__file__)
config.test_exec_root = config.test_source_root
config.target_triple = '(unused)'
src_root = os.path.join(config.test_source_root, '..')
config.environment['PYTHONPATH'] = src_root
pythonpath_list = [src_root]
# Ensure the user's PYTHONPATH is included.
if 'PYTHONPATH' in os.environ:
pythonpath_list.append(os.environ['PYTHONPATH'])
if 'PYTHONPATH' in config.environment:
pythonpath_list.append(config.environment['PYTHONPATH'])
config.environment['PYTHONPATH'] = os.pathsep.join(pythonpath_list)
config.substitutions.append(('%{python}', '"%s"' % (sys.executable)))

View File

@ -34,7 +34,15 @@ if llvm_src_root != None:
else:
lit_path = src_root
config.environment['PYTHONPATH'] = lit_path # Required because some tests import the lit module
pythonpath_list = [lit_path] # Required because some tests import the lit module
# Ensure the user's PYTHONPATH is included.
if 'PYTHONPATH' in os.environ:
pythonpath_list.append(os.environ['PYTHONPATH'])
if 'PYTHONPATH' in config.environment:
pythonpath_list.append(config.environment['PYTHONPATH'])
config.environment['PYTHONPATH'] = os.pathsep.join(pythonpath_list)
config.substitutions.append(('%{src_root}', src_root))
config.substitutions.append(('%{inputs}', os.path.join(
src_root, 'tests', 'Inputs')))