InstrProf: lit.cfg magic for running tests from source

Implement magic in compiler-rt to enable llvm-lit to be invoked on the
source tree in lib/profile.  This relies on a paired commit in the llvm
tree that exposes a new built-in parameter.

<rdar://problem/16458307>

llvm-svn: 205263
This commit is contained in:
Duncan P. N. Exon Smith 2014-03-31 23:14:28 +00:00
parent acb367bd62
commit da91cbdfa8
3 changed files with 20 additions and 0 deletions

View File

@ -1,4 +1,5 @@
set(PROFILE_LIT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
set(PROFILE_LIT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
set(PROFILE_TEST_DEPS)
if(NOT COMPILER_RT_STANDALONE_BUILD)

View File

@ -8,6 +8,22 @@ config.name = 'Profile'
# Setup source root.
config.test_source_root = os.path.dirname(__file__)
# Setup executable root.
if hasattr(config, 'profile_lit_binary_dir') and \
config.profile_lit_binary_dir is not None:
config.test_exec_root = config.profile_lit_binary_dir
# If the above check didn't work, we're probably in the source tree. Use some
# magic to re-execute from the build tree.
if config.test_exec_root is None:
# The magic relies on knowing compilerrt_site_basedir.
compilerrt_basedir = lit_config.params.get('compilerrt_site_basedir', None)
if compilerrt_basedir:
site_cfg = os.path.join(compilerrt_basedir, 'profile', 'lit.site.cfg')
if os.path.exists(site_cfg):
lit_config.load_config(config, site_cfg)
raise SystemExit
# Test suffixes.
config.suffixes = ['.c', '.cc', '.cpp', '.m', '.mm', '.ll', '.test']

View File

@ -1,6 +1,9 @@
## Autogenerated by LLVM/Clang configuration.
# Do not edit!
# Tool-specific config options.
config.profile_lit_binary_dir = "@PROFILE_LIT_BINARY_DIR@"
# Load common config for all compiler-rt lit tests.
lit_config.load_config(config, "@COMPILER_RT_BINARY_DIR@/test/lit.common.configured")