1 | # -*- Python -*- |
2 | |
3 | # Configuration file for the 'lit' test runner. |
4 | |
5 | import os |
6 | import platform |
7 | import subprocess |
8 | |
9 | import lit.formats |
10 | import lit.util |
11 | |
12 | # name: The name of this test suite. |
13 | config.name = 'Clang-Unit' |
14 | |
15 | # suffixes: A list of file extensions to treat as test files. |
16 | config.suffixes = [] |
17 | |
18 | # test_source_root: The root path where tests are located. |
19 | # test_exec_root: The root path where tests should be run. |
20 | config.test_exec_root = os.path.join(config.clang_obj_root, 'unittests') |
21 | config.test_source_root = config.test_exec_root |
22 | |
23 | # testFormat: The test format to use to interpret tests. |
24 | config.test_format = lit.formats.GoogleTest(config.llvm_build_mode, 'Tests') |
25 | |
26 | # Propagate the temp directory. Windows requires this because it uses \Windows\ |
27 | # if none of these are present. |
28 | if 'TMP' in os.environ: |
29 | config.environment['TMP'] = os.environ['TMP'] |
30 | if 'TEMP' in os.environ: |
31 | config.environment['TEMP'] = os.environ['TEMP'] |
32 | |
33 | # Propagate path to symbolizer for ASan/MSan. |
34 | for symbolizer in ['ASAN_SYMBOLIZER_PATH', 'MSAN_SYMBOLIZER_PATH']: |
35 | if symbolizer in os.environ: |
36 | config.environment[symbolizer] = os.environ[symbolizer] |
37 | |
38 | def find_shlibpath_var(): |
39 | if platform.system() in ['Linux', 'FreeBSD', 'NetBSD', 'SunOS']: |
40 | yield 'LD_LIBRARY_PATH' |
41 | elif platform.system() == 'Darwin': |
42 | yield 'DYLD_LIBRARY_PATH' |
43 | elif platform.system() == 'Windows': |
44 | yield 'PATH' |
45 | |
46 | for shlibpath_var in find_shlibpath_var(): |
47 | # in stand-alone builds, shlibdir is clang's build tree |
48 | # while llvm_libs_dir is installed LLVM (and possibly older clang) |
49 | shlibpath = os.path.pathsep.join( |
50 | (config.shlibdir, |
51 | config.llvm_libs_dir, |
52 | config.environment.get(shlibpath_var, ''))) |
53 | config.environment[shlibpath_var] = shlibpath |
54 | break |
55 | else: |
56 | lit_config.warning("unable to inject shared library path on '{}'" |
57 | .format(platform.system())) |
58 | |