1# This file is licensed under the Apache License v2.0 with LLVM Exceptions. 2# See https://llvm.org/LICENSE.txt for license information. 3# SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 4 5package( 6 default_visibility = ["//visibility:public"], 7 licenses = ["notice"], 8) 9 10cc_test( 11 name = "ast_tests", 12 size = "medium", 13 srcs = glob( 14 [ 15 "AST/*.cpp", 16 "AST/*.h", 17 ], 18 allow_empty = False, 19 ), 20 shard_count = 20, 21 deps = [ 22 "//clang:ast", 23 "//clang:ast_matchers", 24 "//clang:basic", 25 "//clang:frontend", 26 "//clang:lex", 27 "//clang:testing", 28 "//clang:tooling", 29 "//llvm:Core", 30 "//llvm:Support", 31 "//llvm:TestingSupport", 32 "//llvm:gmock", 33 "//llvm:gtest", 34 "//llvm:gtest_main", 35 ], 36) 37 38cc_library( 39 name = "ast_matchers_tests_hdrs", 40 testonly = 1, 41 hdrs = glob( 42 ["ASTMatchers/*.h"], 43 allow_empty = False, 44 ), 45 deps = [ 46 "//clang:ast_matchers", 47 "//clang:frontend", 48 "//clang:testing", 49 "//clang:tooling", 50 "//llvm:gtest", 51 ], 52) 53 54cc_test( 55 name = "ast_matchers_tests", 56 size = "medium", 57 srcs = glob( 58 ["ASTMatchers/*.cpp"], 59 allow_empty = False, 60 ), 61 shard_count = 20, 62 deps = [ 63 ":ast_matchers_tests_hdrs", 64 "//clang:ast", 65 "//clang:ast_matchers", 66 "//clang:frontend", 67 "//clang:tooling", 68 "//llvm:Support", 69 "//llvm:TestingSupport", 70 "//llvm:gtest", 71 "//llvm:gtest_main", 72 ], 73) 74 75cc_test( 76 name = "ast_matchers_dynamic_tests", 77 size = "small", 78 srcs = glob( 79 ["ASTMatchers/Dynamic/*.cpp"], 80 allow_empty = False, 81 ), 82 deps = [ 83 ":ast_matchers_tests_hdrs", 84 "//clang:ast_matchers", 85 "//clang:ast_matchers_dynamic", 86 "//clang:frontend", 87 "//clang:tooling", 88 "//llvm:Support", 89 "//llvm:gtest", 90 "//llvm:gtest_main", 91 ], 92) 93 94cc_test( 95 name = "analysis_tests", 96 size = "small", 97 srcs = glob( 98 [ 99 "Analysis/*.cpp", 100 "Analysis/*.h", 101 ], 102 allow_empty = False, 103 ), 104 deps = [ 105 "//clang:analysis", 106 "//clang:ast", 107 "//clang:ast_matchers", 108 "//clang:basic", 109 "//clang:lex", 110 "//clang:parse", 111 "//clang:tooling", 112 "//llvm:Support", 113 "//llvm:gmock", 114 "//llvm:gtest", 115 "//llvm:gtest_main", 116 ], 117) 118 119cc_test( 120 name = "basic_tests", 121 size = "small", 122 srcs = glob( 123 ["Basic/*.cpp"], 124 allow_empty = False, 125 ), 126 deps = [ 127 "//clang:basic", 128 "//clang:frontend", 129 "//clang:lex", 130 "//llvm:Support", 131 "//llvm:config", 132 "//llvm:gmock", 133 "//llvm:gtest", 134 "//llvm:gtest_main", 135 ], 136) 137 138cc_test( 139 name = "codegen_tests", 140 size = "small", 141 srcs = glob( 142 [ 143 "CodeGen/*.cpp", 144 "CodeGen/*.h", 145 ], 146 allow_empty = False, 147 ), 148 deps = [ 149 "//clang:ast", 150 "//clang:basic", 151 "//clang:codegen", 152 "//clang:frontend", 153 "//clang:lex", 154 "//clang:parse", 155 "//clang:sema", 156 "//llvm:Core", 157 "//llvm:Support", 158 "//llvm:gtest", 159 "//llvm:gtest_main", 160 ], 161) 162 163cc_test( 164 name = "format_tests", 165 size = "medium", 166 srcs = glob( 167 [ 168 "Format/*.cpp", 169 "Format/*.h", 170 "Tooling/*.h", 171 ], 172 allow_empty = False, 173 ), 174 copts = ["$(STACK_FRAME_UNLIMITED)"], 175 shard_count = 20, 176 deps = [ 177 "//clang:basic", 178 "//clang:format", 179 "//clang:frontend", 180 "//clang:tooling_core", 181 "//llvm:Support", 182 "//llvm:gtest", 183 "//llvm:gtest_main", 184 ], 185) 186 187cc_test( 188 name = "frontend_tests", 189 size = "small", 190 srcs = glob( 191 ["Frontend/*.cpp"], 192 allow_empty = False, 193 ), 194 deps = [ 195 "//clang:ast", 196 "//clang:basic", 197 "//clang:codegen", 198 "//clang:driver_options_inc_gen", 199 "//clang:frontend", 200 "//clang:frontend_tool", 201 "//clang:lex", 202 "//clang:sema", 203 "//clang:serialization", 204 "//llvm:Support", 205 "//llvm:gmock", 206 "//llvm:gtest", 207 "//llvm:gtest_main", 208 ], 209) 210 211cc_test( 212 name = "lex_tests", 213 size = "small", 214 srcs = glob( 215 [ 216 "Lex/*.cpp", 217 "Lex/*.h", 218 ], 219 allow_empty = False, 220 ), 221 copts = ["$(STACK_FRAME_UNLIMITED)"], 222 deps = [ 223 "//clang:ast", 224 "//clang:basic", 225 "//clang:lex", 226 "//clang:parse", 227 "//clang:sema", 228 "//clang:serialization", 229 "//llvm:Support", 230 "//llvm:gmock", 231 "//llvm:gtest", 232 "//llvm:gtest_main", 233 ], 234) 235 236# A library to carefully expose the tooling headers using the include prefix 237# expected by the `rename_tests`. 238cc_library( 239 name = "rename_tests_tooling_hdrs", 240 testonly = 1, 241 hdrs = glob( 242 ["Tooling/*.h"], 243 allow_empty = False, 244 ), 245 include_prefix = "unittests", 246 deps = [ 247 "//clang:ast", 248 "//clang:basic", 249 "//clang:frontend", 250 "//clang:rewrite", 251 "//clang:tooling", 252 "//clang:tooling_core", 253 "//llvm:Support", 254 "//llvm:gtest", 255 ], 256) 257 258cc_test( 259 name = "rename_tests", 260 size = "small", 261 timeout = "moderate", 262 srcs = glob( 263 [ 264 "Rename/*.cpp", 265 "Rename/*.h", 266 ], 267 allow_empty = False, 268 ), 269 shard_count = 20, 270 deps = [ 271 ":rename_tests_tooling_hdrs", 272 "//clang:ast_matchers", 273 "//clang:basic", 274 "//clang:format", 275 "//clang:frontend", 276 "//clang:tooling", 277 "//clang:tooling_refactoring", 278 "//llvm:Support", 279 "//llvm:gtest", 280 "//llvm:gtest_main", 281 ], 282) 283 284cc_test( 285 name = "rewrite_tests", 286 size = "small", 287 srcs = glob( 288 ["Rewrite/*.cpp"], 289 allow_empty = False, 290 ), 291 deps = [ 292 "//clang:rewrite", 293 "//clang:tooling", 294 "//llvm:gtest", 295 "//llvm:gtest_main", 296 ], 297) 298 299cc_test( 300 name = "sema_tests", 301 size = "small", 302 srcs = glob( 303 ["Sema/*.cpp"], 304 allow_empty = False, 305 ), 306 deps = [ 307 ":ast_matchers_tests_hdrs", 308 "//clang:ast", 309 "//clang:ast_matchers", 310 "//clang:frontend", 311 "//clang:lex", 312 "//clang:parse", 313 "//clang:sema", 314 "//clang:tooling", 315 "//llvm:TestingSupport", 316 "//llvm:gmock", 317 "//llvm:gtest", 318 "//llvm:gtest_main", 319 ], 320) 321 322cc_library( 323 name = "static_analyzer_test_headers", 324 testonly = 1, 325 hdrs = glob( 326 ["StaticAnalyzer/*.h"], 327 allow_empty = False, 328 ), 329 deps = [ 330 "//clang:ast_matchers", 331 "//clang:crosstu", 332 "//clang:frontend", 333 "//clang:static_analyzer_core", 334 "//clang:static_analyzer_frontend", 335 "//clang:tooling", 336 "//llvm:gtest", 337 ], 338) 339 340cc_test( 341 name = "static_analyzer_tests", 342 size = "small", 343 srcs = glob( 344 ["StaticAnalyzer/*.cpp"], 345 allow_empty = False, 346 exclude = [ 347 # New test has unused-variable warnings. 348 "StaticAnalyzer/ParamRegionTest.cpp", 349 ], 350 ), 351 deps = [ 352 ":static_analyzer_test_headers", 353 "//clang:basic", 354 "//clang:frontend", 355 "//clang:static_analyzer_core", 356 "//clang:static_analyzer_frontend", 357 "//clang:tooling", 358 "//llvm:Support", 359 "//llvm:config", 360 "//llvm:gtest", 361 "//llvm:gtest_main", 362 ], 363) 364 365cc_test( 366 name = "tooling_tests", 367 size = "medium", 368 srcs = glob( 369 [ 370 "Tooling/*.cpp", 371 "Tooling/*.h", 372 ], 373 allow_empty = False, 374 ), 375 shard_count = 20, 376 deps = [ 377 "//clang:ast", 378 "//clang:ast_matchers", 379 "//clang:basic", 380 "//clang:format", 381 "//clang:frontend", 382 "//clang:lex", 383 "//clang:rewrite", 384 "//clang:tooling", 385 "//clang:tooling_core", 386 "//clang:tooling_dependency_scanning", 387 "//clang:tooling_inclusions", 388 "//clang:tooling_refactoring", 389 "//clang:transformer", 390 "//llvm:Support", 391 "//llvm:TestingSupport", 392 "//llvm:gmock", 393 "//llvm:gtest", 394 "//llvm:gtest_main", 395 ], 396) 397 398# A library to carefully expose the tooling headers using the include prefix 399# expected by the `tooling_recursive_ast_visitor_tests`. 400cc_library( 401 name = "tooling_recursive_ast_visitor_tests_tooling_hdrs", 402 testonly = 1, 403 hdrs = glob( 404 ["Tooling/*.h"], 405 allow_empty = False, 406 ), 407 strip_include_prefix = "Tooling", 408 deps = [ 409 "//clang:ast", 410 "//clang:basic", 411 "//clang:frontend", 412 "//clang:rewrite", 413 "//clang:tooling", 414 "//clang:tooling_core", 415 "//llvm:Support", 416 "//llvm:gtest", 417 ], 418) 419 420cc_test( 421 name = "tooling_recursive_ast_visitor_tests", 422 size = "medium", 423 srcs = glob( 424 ["Tooling/RecursiveASTVisitorTests/*.cpp"], 425 allow_empty = False, 426 ) + [ 427 "Tooling/RecursiveASTVisitorTests/CallbacksCommon.h", 428 ], 429 deps = [ 430 ":tooling_recursive_ast_visitor_tests_tooling_hdrs", 431 "//clang:ast", 432 "//clang:basic", 433 "//clang:frontend", 434 "//clang:lex", 435 "//clang:tooling", 436 "//clang:tooling_syntax", 437 "//llvm:Support", 438 "//llvm:TestingSupport", 439 "//llvm:gmock", 440 "//llvm:gtest", 441 "//llvm:gtest_main", 442 ], 443) 444 445cc_test( 446 name = "tooling_syntax_tests", 447 size = "medium", 448 srcs = glob( 449 [ 450 "Tooling/Syntax/*.cpp", 451 "Tooling/Syntax/*.h", 452 ], 453 allow_empty = False, 454 ), 455 shard_count = 20, 456 deps = [ 457 "//clang:ast", 458 "//clang:basic", 459 "//clang:frontend", 460 "//clang:lex", 461 "//clang:testing", 462 "//clang:tooling", 463 "//clang:tooling_core", 464 "//clang:tooling_syntax", 465 "//llvm:Support", 466 "//llvm:TestingSupport", 467 "//llvm:gmock", 468 "//llvm:gtest", 469 "//llvm:gtest_main", 470 ], 471) 472 473cc_test( 474 name = "libclang_tests", 475 size = "small", 476 srcs = glob( 477 ["libclang/*.cpp"], 478 allow_empty = False, 479 ) + [ 480 "libclang/TestUtils.h", 481 ], 482 deps = [ 483 "//clang:c-bindings", 484 "//llvm:Support", 485 "//llvm:gtest", 486 "//llvm:gtest_main", 487 ], 488) 489