diff options
author | Dan Liew <dan@su-root.co.uk> | 2016-01-08 22:36:22 +0000 |
---|---|---|
committer | Dan Liew <dan@su-root.co.uk> | 2016-01-08 22:36:22 +0000 |
commit | 9d49638f4466f0000fccd2570cde04e11e560fcb (patch) | |
tree | 88d9684e78f568cbfa9c64649ebe7014fa8943a9 /llvm/utils/lit/tests | |
parent | dba6b576cf017128dfff7fcf48e6d2e72d79202d (diff) | |
download | bcm5719-llvm-9d49638f4466f0000fccd2570cde04e11e560fcb.tar.gz bcm5719-llvm-9d49638f4466f0000fccd2570cde04e11e560fcb.zip |
Teach the CMake build system to run lit's test suite. These can be run
directy with ``make check-lit`` and are run as part of
``make check-all``.
In principle we should run lit's testsuite before testing LLVM using lit
so that any problems with lit get discovered before testing LLVM so we
can bail out early. However this implementation (``check-all`` runs all
tests together) seemed simpler and will still report failing lit tests.
Note that the tests and the configured ``lit.site.cfg`` have to be
copied into the build directory to avoid polluting the source tree.
llvm-svn: 257221
Diffstat (limited to 'llvm/utils/lit/tests')
-rw-r--r-- | llvm/utils/lit/tests/lit.cfg | 18 | ||||
-rw-r--r-- | llvm/utils/lit/tests/lit.site.cfg.in | 8 |
2 files changed, 24 insertions, 2 deletions
diff --git a/llvm/utils/lit/tests/lit.cfg b/llvm/utils/lit/tests/lit.cfg index 4b38241d5a7..3ed5bc95129 100644 --- a/llvm/utils/lit/tests/lit.cfg +++ b/llvm/utils/lit/tests/lit.cfg @@ -26,12 +26,20 @@ 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 +llvm_src_root = getattr(config, 'llvm_src_root', None) +if llvm_src_root != None: + # ``src_root`` may be in LLVM's binary build directory which does not contain + # ``lit.py``, so use ``llvm_src_root`` instead. + lit_path = os.path.join(llvm_src_root, 'utils', 'lit') +else: + lit_path = src_root + +config.environment['PYTHONPATH'] = lit_path # Required because some tests import the lit module config.substitutions.append(('%{src_root}', src_root)) config.substitutions.append(('%{inputs}', os.path.join( src_root, 'tests', 'Inputs'))) config.substitutions.append(('%{lit}', "%%{python} %s" % ( - os.path.join(src_root, 'lit.py'),))) + os.path.join(lit_path, 'lit.py'),))) config.substitutions.append(('%{python}', sys.executable)) # Enable coverage.py reporting, assuming the coverage module has been installed @@ -52,3 +60,9 @@ try: except ImportError: lit_config.warning('Could not import psutil. Some tests will be skipped and' ' the --timeout command line argument will not work.') + +# Add llvm tools directory if this config is being loaded indirectly +llvm_tools_dir = getattr(config, 'llvm_tools_dir', None) +if llvm_tools_dir != None: + path = os.path.pathsep.join((llvm_tools_dir, config.environment['PATH'])) + config.environment['PATH'] = path diff --git a/llvm/utils/lit/tests/lit.site.cfg.in b/llvm/utils/lit/tests/lit.site.cfg.in new file mode 100644 index 00000000000..bdc1f58575e --- /dev/null +++ b/llvm/utils/lit/tests/lit.site.cfg.in @@ -0,0 +1,8 @@ +## Autogenerated by LLVM/Clang configuration. +# Do not edit! +config.llvm_src_root = "@LLVM_SOURCE_DIR@" +config.llvm_obj_root = "@LLVM_BINARY_DIR@" +config.llvm_tools_dir = "@LLVM_TOOLS_BINARY_DIR@" + +# Let the main config do the real work. +lit_config.load_config(config, "@LLVM_BINARY_DIR@/utils/lit/tests/lit.cfg") |