summaryrefslogtreecommitdiff
path: root/test/Unit
diff options
context:
space:
mode:
authorTim Shen <timshen91@gmail.com>2017-10-24 03:11:02 +0000
committerTim Shen <timshen91@gmail.com>2017-10-24 03:11:02 +0000
commita45d5bb59f1d95d850d6bf1ec2448ac6cf653415 (patch)
tree2ff141d94656b7e1c245cc8a6d1e93716411c428 /test/Unit
parentbca81dc70a81c58378cc853256544386194ced1d (diff)
[test] Fix clang-test for FreeBSD and NetBSD
Lit tries to inject the shared library paths, but no action is taken when platform.system() is not recognized, results in an environment variable with an empty name, which is illegal. The patch fixes this mechanism for FreeBSD and NetBSD, and gives an warning on other platforms, so that the latecomers don't have to spend time on debugging lit. Thanks Zhihao Yuan for the patch! Differential Revision: https://reviews.llvm.org/D39162 git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316411 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/Unit')
-rw-r--r--test/Unit/lit.cfg.py34
1 files changed, 20 insertions, 14 deletions
diff --git a/test/Unit/lit.cfg.py b/test/Unit/lit.cfg.py
index c4794ccbe5..f4bcdd76d1 100644
--- a/test/Unit/lit.cfg.py
+++ b/test/Unit/lit.cfg.py
@@ -35,17 +35,23 @@ for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']:
if symbolizer in os.environ:
config.environment[symbolizer] = os.environ[symbolizer]
-shlibpath_var = ''
-if platform.system() == 'Linux':
- shlibpath_var = 'LD_LIBRARY_PATH'
-elif platform.system() == 'Darwin':
- shlibpath_var = 'DYLD_LIBRARY_PATH'
-elif platform.system() == 'Windows':
- shlibpath_var = 'PATH'
-
-# in stand-alone builds, shlibdir is clang's build tree
-# while llvm_libs_dir is installed LLVM (and possibly older clang)
-shlibpath = os.path.pathsep.join((config.shlibdir, config.llvm_libs_dir,
- config.environment.get(shlibpath_var,'')))
-
-config.environment[shlibpath_var] = shlibpath
+def find_shlibpath_var():
+ if platform.system() in ['Linux', 'FreeBSD', 'NetBSD']:
+ yield 'LD_LIBRARY_PATH'
+ elif platform.system() == 'Darwin':
+ yield 'DYLD_LIBRARY_PATH'
+ elif platform.system() == 'Windows':
+ yield 'PATH'
+
+for shlibpath_var in find_shlibpath_var():
+ # in stand-alone builds, shlibdir is clang's build tree
+ # while llvm_libs_dir is installed LLVM (and possibly older clang)
+ shlibpath = os.path.pathsep.join(
+ (config.shlibdir,
+ config.llvm_libs_dir,
+ config.environment.get(shlibpath_var, '')))
+ config.environment[shlibpath_var] = shlibpath
+ break
+else:
+ lit_config.warning("unable to inject shared library path on '{}'"
+ .format(platform.system()))