]> granicus.if.org Git - llvm/commitdiff
[lit] Respect PYTHONPATH
authorDavid Greene <greened@obbligato.org>
Mon, 7 Jan 2019 16:24:37 +0000 (16:24 +0000)
committerDavid Greene <greened@obbligato.org>
Mon, 7 Jan 2019 16:24:37 +0000 (16:24 +0000)
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
utils/lit/tests/lit.cfg

index 96bf18170a8f9d74ea2e5e3581fd565c44ed98a0..6256f5a9911a0c147249376b077df8c0daf655b7 100644 (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)))
index 01a3431b43598388dc7c567e2aae00a6a99302b2..2af93d6314ade6dca8fc36ffb7d237cab77846c7 100644 (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')))