From e410b0a76b062eeabf406f97b69730b34601e1ff Mon Sep 17 00:00:00 2001 From: David Greene Date: Mon, 7 Jan 2019 16:24:37 +0000 Subject: [PATCH] [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 --- utils/lit/tests/Inputs/shtest-timeout/lit.cfg | 10 +++++++++- utils/lit/tests/lit.cfg | 10 +++++++++- 2 files changed, 18 insertions(+), 2 deletions(-) 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'))) -- 2.50.1