blob: dcda2ab378db933b3aabb4b379cd6afbc8e94a09 [file] [log] [blame]
# -*- 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
# command line variables.
environment = {}
# requireAndAnd: Require '&&' between commands, until they get globally killed
# and the test runner updated.
requireAndAnd = True