From: David Greene Date: Mon, 7 Jan 2019 16:24:37 +0000 (+0000) Subject: [lit] Respect PYTHONPATH X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=e410b0a76b062eeabf406f97b69730b34601e1ff;p=llvm [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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350536 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/utils/lit/tests/Inputs/shtest-timeout/lit.cfg b/utils/lit/tests/Inputs/shtest-timeout/lit.cfg index 96bf18170a8..6256f5a9911 100644 --- a/utils/lit/tests/Inputs/shtest-timeout/lit.cfg +++ b/utils/lit/tests/Inputs/shtest-timeout/lit.cfg @@ -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))) diff --git a/utils/lit/tests/lit.cfg b/utils/lit/tests/lit.cfg index 01a3431b435..2af93d6314a 100644 --- a/utils/lit/tests/lit.cfg +++ b/utils/lit/tests/lit.cfg @@ -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')))