# This file is licensed under the Apache License v2.0 with LLVM Exceptions. # See https://llvm.org/LICENSE.txt for license information. # SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception package( default_visibility = ["//visibility:public"], licenses = ["notice"], ) cc_test( name = "ast_tests", size = "medium", srcs = glob( [ "AST/*.cpp", "AST/*.h", ], allow_empty = False, ), shard_count = 20, deps = [ "//clang:ast", "//clang:ast_matchers", "//clang:basic", "//clang:frontend", "//clang:lex", "//clang:testing", "//clang:tooling", "//llvm:Core", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_library( name = "ast_matchers_tests_hdrs", testonly = 1, hdrs = glob( ["ASTMatchers/*.h"], allow_empty = False, ), deps = [ "//clang:ast_matchers", "//clang:frontend", "//clang:testing", "//clang:tooling", "//llvm:gtest", ], ) cc_test( name = "ast_matchers_tests", size = "medium", srcs = glob( ["ASTMatchers/*.cpp"], allow_empty = False, ), shard_count = 20, deps = [ ":ast_matchers_tests_hdrs", "//clang:ast", "//clang:ast_matchers", "//clang:frontend", "//clang:tooling", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "ast_matchers_dynamic_tests", size = "small", srcs = glob( ["ASTMatchers/Dynamic/*.cpp"], allow_empty = False, ), deps = [ ":ast_matchers_tests_hdrs", "//clang:ast_matchers", "//clang:ast_matchers_dynamic", "//clang:frontend", "//clang:tooling", "//llvm:Support", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "analysis_tests", size = "small", srcs = glob( [ "Analysis/*.cpp", "Analysis/*.h", ], allow_empty = False, ), deps = [ "//clang:analysis", "//clang:ast", "//clang:ast_matchers", "//clang:basic", "//clang:lex", "//clang:parse", "//clang:tooling", "//llvm:Support", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "analysis_flow_sensitive_tests", srcs = glob( [ "Analysis/FlowSensitive/*.cpp", "Analysis/FlowSensitive/*.h", ], allow_empty = False, ), deps = [ "//clang:analysis", "//clang:ast", "//clang:ast_matchers", "//clang:basic", "//clang:lex", "//clang:serialization", "//clang:tooling", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "basic_tests", size = "small", srcs = glob( ["Basic/*.cpp"], allow_empty = False, ), deps = [ "//clang:basic", "//clang:frontend", "//clang:lex", "//llvm:Support", "//llvm:TestingSupport", "//llvm:config", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "codegen_tests", size = "small", srcs = glob( [ "CodeGen/*.cpp", "CodeGen/*.h", ], allow_empty = False, ), deps = [ "//clang:ast", "//clang:basic", "//clang:codegen", "//clang:frontend", "//clang:lex", "//clang:parse", "//clang:sema", "//llvm:Core", "//llvm:Support", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "format_tests", size = "medium", srcs = glob( [ "Format/*.cpp", "Format/*.h", "Tooling/*.h", ], allow_empty = False, ), copts = ["$(STACK_FRAME_UNLIMITED)"], shard_count = 20, deps = [ "//clang:basic", "//clang:format", "//clang:frontend", "//clang:tooling_core", "//llvm:Support", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "frontend_tests", size = "small", srcs = glob( ["Frontend/*.cpp"], allow_empty = False, ), deps = [ "//clang:ast", "//clang:basic", "//clang:codegen", "//clang:driver_options_inc_gen", "//clang:frontend", "//clang:frontend_tool", "//clang:lex", "//clang:sema", "//clang:serialization", "//llvm:Support", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "lex_tests", size = "small", srcs = glob( [ "Lex/*.cpp", "Lex/*.h", ], allow_empty = False, ), copts = ["$(STACK_FRAME_UNLIMITED)"], deps = [ "//clang:ast", "//clang:basic", "//clang:lex", "//clang:parse", "//clang:sema", "//clang:serialization", "//llvm:Support", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) # A library to carefully expose the tooling headers using the include prefix # expected by the `rename_tests`. cc_library( name = "rename_tests_tooling_hdrs", testonly = 1, hdrs = glob( ["Tooling/*.h"], allow_empty = False, ), include_prefix = "unittests", deps = [ "//clang:ast", "//clang:basic", "//clang:frontend", "//clang:rewrite", "//clang:tooling", "//clang:tooling_core", "//llvm:Support", "//llvm:gtest", ], ) cc_test( name = "rename_tests", size = "small", timeout = "moderate", srcs = glob( [ "Rename/*.cpp", "Rename/*.h", ], allow_empty = False, ), shard_count = 20, deps = [ ":rename_tests_tooling_hdrs", "//clang:ast_matchers", "//clang:basic", "//clang:format", "//clang:frontend", "//clang:tooling", "//clang:tooling_refactoring", "//llvm:Support", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "rewrite_tests", size = "small", srcs = glob( ["Rewrite/*.cpp"], allow_empty = False, ), deps = [ "//clang:rewrite", "//clang:tooling", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "sema_tests", size = "small", srcs = glob( ["Sema/*.cpp"], allow_empty = False, ), deps = [ ":ast_matchers_tests_hdrs", "//clang:ast", "//clang:ast_matchers", "//clang:frontend", "//clang:lex", "//clang:parse", "//clang:sema", "//clang:tooling", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_library( name = "static_analyzer_test_headers", testonly = 1, hdrs = glob( ["StaticAnalyzer/*.h"], allow_empty = False, ), deps = [ "//clang:ast_matchers", "//clang:crosstu", "//clang:frontend", "//clang:static_analyzer_core", "//clang:static_analyzer_frontend", "//clang:testing", "//clang:tooling", "//llvm:gtest", ], ) cc_test( name = "static_analyzer_tests", size = "small", srcs = glob( ["StaticAnalyzer/*.cpp"], allow_empty = False, exclude = [ # New test has unused-variable warnings. "StaticAnalyzer/ParamRegionTest.cpp", ], ), deps = [ ":static_analyzer_test_headers", "//clang:basic", "//clang:frontend", "//clang:static_analyzer_core", "//clang:static_analyzer_frontend", "//clang:tooling", "//llvm:Support", "//llvm:config", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "tooling_tests", size = "medium", srcs = glob( [ "Tooling/*.cpp", "Tooling/*.h", ], allow_empty = False, ), shard_count = 20, deps = [ "//clang:ast", "//clang:ast_matchers", "//clang:basic", "//clang:format", "//clang:frontend", "//clang:lex", "//clang:rewrite", "//clang:testing", "//clang:tooling", "//clang:tooling_core", "//clang:tooling_dependency_scanning", "//clang:tooling_inclusions", "//clang:tooling_refactoring", "//clang:transformer", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) # A library to carefully expose the tooling headers using the include prefix # expected by the `tooling_recursive_ast_visitor_tests`. cc_library( name = "tooling_recursive_ast_visitor_tests_tooling_hdrs", testonly = 1, hdrs = glob( ["Tooling/*.h"], allow_empty = False, ), strip_include_prefix = "Tooling", deps = [ "//clang:ast", "//clang:basic", "//clang:frontend", "//clang:rewrite", "//clang:tooling", "//clang:tooling_core", "//llvm:Support", "//llvm:gtest", ], ) cc_test( name = "tooling_recursive_ast_visitor_tests", size = "medium", srcs = glob( ["Tooling/RecursiveASTVisitorTests/*.cpp"], allow_empty = False, ) + [ "Tooling/RecursiveASTVisitorTests/CallbacksCommon.h", ], deps = [ ":tooling_recursive_ast_visitor_tests_tooling_hdrs", "//clang:ast", "//clang:basic", "//clang:frontend", "//clang:lex", "//clang:tooling", "//clang:tooling_syntax", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "tooling_syntax_tests", size = "medium", srcs = glob( [ "Tooling/Syntax/*.cpp", "Tooling/Syntax/*.h", ], allow_empty = False, ), shard_count = 20, deps = [ "//clang:ast", "//clang:basic", "//clang:frontend", "//clang:lex", "//clang:testing", "//clang:tooling", "//clang:tooling_core", "//clang:tooling_syntax", "//llvm:Support", "//llvm:TestingSupport", "//llvm:gmock", "//llvm:gtest", "//llvm:gtest_main", ], ) cc_test( name = "libclang_tests", size = "small", srcs = glob( ["libclang/*.cpp"], allow_empty = False, ) + [ "libclang/TestUtils.h", ], args = select({ "@bazel_tools//src/conditions:windows": [ # Need to disable the VFS tests that don't use Windows friendly # paths. These are also disabled on Windows in the CMake build. "--gtest_filter=-*VirtualFileOverlay*", ], "//conditions:default": [], }), deps = [ "//clang:libclang", "//llvm:Support", "//llvm:gtest", "//llvm:gtest_main", ], )