forked from llvm-mirror/llvm
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Teach 'make check-lit' to run unittests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@81753 91177308-0d34-0410-b5e6-96231b3b80d8
- Loading branch information
Showing
2 changed files
with
81 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,65 @@ | ||
# -*- Python -*- | ||
|
||
# Configuration file for the 'lit' test runner. | ||
|
||
import os | ||
|
||
# name: The name of this test suite. | ||
config.name = 'LLVM-Unit' | ||
|
||
# suffixes: A list of file extensions to treat as test files, this is actually | ||
# set by on_clone(). | ||
config.suffixes = [] | ||
|
||
# test_source_root: The root path where tests are located. | ||
# test_exec_root: The root path where tests should be run. | ||
llvm_obj_root = getattr(config, 'llvm_obj_root', None) | ||
if llvm_obj_root is not None: | ||
config.test_exec_root = os.path.join(llvm_obj_root, 'unittests') | ||
config.test_source_root = config.test_exec_root | ||
|
||
# testFormat: The test format to use to interpret tests. | ||
llvm_build_mode = getattr(config, 'llvm_build_mode', "Debug") | ||
config.test_format = lit.formats.GoogleTest(llvm_build_mode, 'Tests') | ||
|
||
### | ||
|
||
import os | ||
|
||
# Check that the object root is known. | ||
if config.test_exec_root is None: | ||
# Otherwise, we haven't loaded the site specific configuration (the user is | ||
# probably trying to run on a test file directly, and either the site | ||
# configuration hasn't been created by the build system, or we are in an | ||
# out-of-tree build situation). | ||
|
||
# Try to detect the situation where we are using an out-of-tree build by | ||
# looking for 'llvm-config'. | ||
# | ||
# FIXME: I debated (i.e., wrote and threw away) adding logic to | ||
# automagically generate the lit.site.cfg if we are in some kind of fresh | ||
# build situation. This means knowing how to invoke the build system | ||
# though, and I decided it was too much magic. | ||
|
||
llvm_config = lit.util.which('llvm-config', config.environment['PATH']) | ||
if not llvm_config: | ||
lit.fatal('No site specific configuration available!') | ||
|
||
# Get the source and object roots. | ||
llvm_src_root = lit.util.capture(['llvm-config', '--src-root']).strip() | ||
llvm_obj_root = lit.util.capture(['llvm-config', '--obj-root']).strip() | ||
|
||
# Validate that we got a tree which points to here. | ||
this_src_root = os.path.join(os.path.dirname(__file__),'..','..') | ||
if os.path.realpath(llvm_src_root) != os.path.realpath(this_src_root): | ||
lit.fatal('No site specific configuration available!') | ||
|
||
# Check that the site specific configuration exists. | ||
site_cfg = os.path.join(llvm_obj_root, 'test', 'Unit', 'lit.site.cfg') | ||
if not os.path.exists(site_cfg): | ||
lit.fatal('No site specific configuration available!') | ||
|
||
# Okay, that worked. Notify the user of the automagic, and reconfigure. | ||
lit.note('using out-of-tree build at %r' % llvm_obj_root) | ||
lit.load_config(config, site_cfg) | ||
raise SystemExit |