forked from OSchip/llvm-project
Support running tests using the new 'lit', via 'make test LIT2=1'.
llvm-svn: 81225
This commit is contained in:
parent
c09988dda5
commit
be4253a0ca
|
@ -22,6 +22,14 @@ else
|
|||
VGARG=
|
||||
endif
|
||||
|
||||
ifdef LIT2
|
||||
all::
|
||||
@ echo '--- Running clang tests for $(TARGET_TRIPLE) ---'
|
||||
@ $(LLVM_SRC_ROOT)/utils/lit/lit.py \
|
||||
--path $(ToolDir) \
|
||||
--path $(LLVM_SRC_ROOT)/test/Scripts \
|
||||
$(TESTARGS) $(TESTDIRS) $(VGARG)
|
||||
else
|
||||
all::
|
||||
@ echo '--- Running clang tests for $(TARGET_TRIPLE) ---'
|
||||
@ $(PROJ_SRC_DIR)/../utils/test/MultiTestRunner.py \
|
||||
|
@ -29,6 +37,7 @@ all::
|
|||
--path $(ToolDir) \
|
||||
--path $(LLVM_SRC_ROOT)/test/Scripts \
|
||||
$(TESTARGS) $(TESTDIRS) $(VGARG)
|
||||
endif
|
||||
|
||||
clean::
|
||||
@ rm -rf Output/
|
||||
|
|
|
@ -1,10 +1,92 @@
|
|||
# -*- Python -*-
|
||||
|
||||
def config_new():
|
||||
# Configuration file for the 'lit' test runner.
|
||||
|
||||
# name: The name of this test suite.
|
||||
config.name = 'Clang'
|
||||
|
||||
# testFormat: The test format to use to interpret tests.
|
||||
#
|
||||
# For now we require '&&' between commands, until they get globally killed and
|
||||
# the test runner updated.
|
||||
config.test_format = lit.formats.ShTest(execute_external = True,
|
||||
require_and_and = True)
|
||||
|
||||
# suffixes: A list of file extensions to treat as test files.
|
||||
config.suffixes = ['.c', '.cpp', '.m', '.mm']
|
||||
|
||||
###
|
||||
|
||||
# Discover the 'clang' and 'clangcc' to use.
|
||||
|
||||
import os
|
||||
|
||||
def inferClang(PATH):
|
||||
# Determine which clang to use.
|
||||
clang = os.getenv('CLANG')
|
||||
|
||||
# If the user set clang in the environment, definitely use that and don't
|
||||
# try to validate.
|
||||
if clang:
|
||||
return clang
|
||||
|
||||
# Otherwise look in the path.
|
||||
clang = lit.util.which('clang', PATH)
|
||||
|
||||
if not clang:
|
||||
lit.fatal("couldn't find 'clang' program, try setting "
|
||||
"CLANG in your environment")
|
||||
|
||||
return clang
|
||||
|
||||
def inferClangCC(clang, PATH):
|
||||
clangcc = os.getenv('CLANGCC')
|
||||
|
||||
# If the user set clang in the environment, definitely use that and don't
|
||||
# try to validate.
|
||||
if clangcc:
|
||||
return clangcc
|
||||
|
||||
# Otherwise try adding -cc since we expect to be looking in a build
|
||||
# directory.
|
||||
if clang.endswith('.exe'):
|
||||
clangccName = clang[:-4] + '-cc.exe'
|
||||
else:
|
||||
clangccName = clang + '-cc'
|
||||
clangcc = lit.util.which(clangccName, PATH)
|
||||
if not clangcc:
|
||||
# Otherwise ask clang.
|
||||
res = lit.util.capture([clang, '-print-prog-name=clang-cc'])
|
||||
res = res.strip()
|
||||
if res and os.path.exists(res):
|
||||
clangcc = res
|
||||
|
||||
if not clangcc:
|
||||
lit.fatal("couldn't find 'clang-cc' program, try setting "
|
||||
"CLANGCC in your environment")
|
||||
|
||||
return clangcc
|
||||
|
||||
clang = inferClang(config.environment['PATH'])
|
||||
if not lit.quiet:
|
||||
lit.note('using clang: %r' % clang)
|
||||
config.substitutions.append( (' clang ', ' ' + clang + ' ') )
|
||||
|
||||
clang_cc = inferClangCC(clang, config.environment['PATH'])
|
||||
if not lit.quiet:
|
||||
lit.note('using clang-cc: %r' % clang_cc)
|
||||
config.substitutions.append( (' clang-cc ', ' ' + clang_cc + ' ') )
|
||||
|
||||
if 'config' in globals():
|
||||
config_new()
|
||||
raise SystemExit # End configuration.
|
||||
|
||||
# Configuration file for the 'lit' test runner.
|
||||
|
||||
# suffixes: A list of file extensions to treat as test files.
|
||||
suffixes = ['.c', '.cpp', '.m', '.mm']
|
||||
|
||||
|
||||
# environment: The base environment to use when running test commands.
|
||||
#
|
||||
# The 'PATH' and 'SYSTEMROOT' variables will be set automatically from the lit
|
||||
|
|
Loading…
Reference in New Issue