diff --git a/clang/test/CMakeLists.txt b/clang/test/CMakeLists.txt --- a/clang/test/CMakeLists.txt +++ b/clang/test/CMakeLists.txt @@ -3,6 +3,7 @@ llvm_canonicalize_cmake_booleans( CLANG_BUILD_EXAMPLES + CLANG_BUILT_STANDALONE CLANG_DEFAULT_PIE_ON_LINUX CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL CLANG_ENABLE_ARCMT diff --git a/clang/test/lit.site.cfg.py.in b/clang/test/lit.site.cfg.py.in --- a/clang/test/lit.site.cfg.py.in +++ b/clang/test/lit.site.cfg.py.in @@ -37,6 +37,7 @@ config.has_plugins = @CLANG_PLUGIN_SUPPORT@ config.clang_vendor_uti = "@CLANG_VENDOR_UTI@" config.llvm_external_lit = path(r"@LLVM_EXTERNAL_LIT@") +config.standalone_build = @CLANG_BUILT_STANDALONE@ import lit.llvm lit.llvm.initialize(lit_config, config) diff --git a/clang/test/utils/update_cc_test_checks/lit.local.cfg b/clang/test/utils/update_cc_test_checks/lit.local.cfg --- a/clang/test/utils/update_cc_test_checks/lit.local.cfg +++ b/clang/test/utils/update_cc_test_checks/lit.local.cfg @@ -10,27 +10,36 @@ from pipes import quote as shell_quote -config.test_format = lit.formats.ShTest(execute_external=False) -config.suffixes = ['.test'] - -clang_path = os.path.join(config.clang_tools_dir, 'clang') -extra_args = '--clang ' + shell_quote(clang_path) -opt_path = os.path.join(config.llvm_tools_dir, 'opt') -extra_args += ' --opt ' + shell_quote(opt_path) -script_path = os.path.join(config.llvm_src_root, 'utils', - 'update_cc_test_checks.py') -assert os.path.isfile(script_path) -# Windows: llvm-lit.py, Linux: llvm-lit -if config.llvm_external_lit: - lit = config.llvm_external_lit +if config.standalone_build: + # These tests require the update_cc_test_checks.py script from the llvm + # source tree, so skip these tests if we are doing standalone builds. + # These tests are only relevant to developers working with the + # update_cc_test_checks.py tool; they don't provide any coverage + # for any of the clang source code. + config.unsupported = True else: - lit = shell_quote(glob.glob(os.path.join(config.llvm_tools_dir, 'llvm-lit*'))[0]) -python = shell_quote(config.python_executable) -config.substitutions.append( - ('%update_cc_test_checks', "%s %s %s" % ( - python, shell_quote(script_path), extra_args))) -config.substitutions.append( - ('%clang_tools_dir', shell_quote(config.clang_tools_dir))) -config.substitutions.append( - ('%lit', "%s %s -Dclang_lit_site_cfg=%s -j1 -vv" % ( - python, lit, shell_quote(config.clang_lit_site_cfg)))) + + config.test_format = lit.formats.ShTest(execute_external=False) + config.suffixes = ['.test'] + + clang_path = os.path.join(config.clang_tools_dir, 'clang') + extra_args = '--clang ' + shell_quote(clang_path) + opt_path = os.path.join(config.llvm_tools_dir, 'opt') + extra_args += ' --opt ' + shell_quote(opt_path) + script_path = os.path.join(config.llvm_src_root, 'utils', + 'update_cc_test_checks.py') + assert os.path.isfile(script_path) + # Windows: llvm-lit.py, Linux: llvm-lit + if config.llvm_external_lit: + lit = config.llvm_external_lit + else: + lit = shell_quote(glob.glob(os.path.join(config.llvm_tools_dir, 'llvm-lit*'))[0]) + python = shell_quote(config.python_executable) + config.substitutions.append( + ('%update_cc_test_checks', "%s %s %s" % ( + python, shell_quote(script_path), extra_args))) + config.substitutions.append( + ('%clang_tools_dir', shell_quote(config.clang_tools_dir))) + config.substitutions.append( + ('%lit', "%s %s -Dclang_lit_site_cfg=%s -j1 -vv" % ( + python, lit, shell_quote(config.clang_lit_site_cfg))))