summaryrefslogtreecommitdiffstats
path: root/llvm/utils/lit/tests
diff options
context:
space:
mode:
authorDan Liew <dan@su-root.co.uk>2016-01-08 22:36:22 +0000
committerDan Liew <dan@su-root.co.uk>2016-01-08 22:36:22 +0000
commit9d49638f4466f0000fccd2570cde04e11e560fcb (patch)
tree88d9684e78f568cbfa9c64649ebe7014fa8943a9 /llvm/utils/lit/tests
parentdba6b576cf017128dfff7fcf48e6d2e72d79202d (diff)
downloadbcm5719-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.cfg18
-rw-r--r--llvm/utils/lit/tests/lit.site.cfg.in8
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")
OpenPOWER on IntegriCloud