BUILD.bazel (15351B)
1 # Copyright 2017 Google Inc. 2 # All Rights Reserved. 3 # 4 # 5 # Redistribution and use in source and binary forms, with or without 6 # modification, are permitted provided that the following conditions are 7 # met: 8 # 9 # * Redistributions of source code must retain the above copyright 10 # notice, this list of conditions and the following disclaimer. 11 # * Redistributions in binary form must reproduce the above 12 # copyright notice, this list of conditions and the following disclaimer 13 # in the documentation and/or other materials provided with the 14 # distribution. 15 # * Neither the name of Google Inc. nor the names of its 16 # contributors may be used to endorse or promote products derived from 17 # this software without specific prior written permission. 18 # 19 # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 20 # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 21 # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 22 # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 23 # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 24 # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 25 # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 26 # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 27 # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 28 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 29 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 30 # 31 # Bazel BUILD for The Google C++ Testing Framework (Google Test) 32 33 load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_test") 34 load("@rules_python//python:defs.bzl", "py_library", "py_test") 35 36 licenses(["notice"]) 37 38 package(default_visibility = ["//:__subpackages__"]) 39 40 #on windows exclude gtest-tuple.h 41 cc_test( 42 name = "gtest_all_test", 43 size = "small", 44 srcs = glob( 45 include = [ 46 "gtest-*.cc", 47 "googletest-*.cc", 48 "*.h", 49 "googletest/include/gtest/**/*.h", 50 ], 51 exclude = [ 52 "gtest-unittest-api_test.cc", 53 "googletest/src/gtest-all.cc", 54 "gtest_all_test.cc", 55 "gtest-death-test_ex_test.cc", 56 "gtest-listener_test.cc", 57 "gtest-unittest-api_test.cc", 58 "googletest-param-test-test.cc", 59 "googletest-param-test2-test.cc", 60 "googletest-catch-exceptions-test_.cc", 61 "googletest-color-test_.cc", 62 "googletest-env-var-test_.cc", 63 "googletest-failfast-unittest_.cc", 64 "googletest-filter-unittest_.cc", 65 "googletest-global-environment-unittest_.cc", 66 "googletest-break-on-failure-unittest_.cc", 67 "googletest-listener-test.cc", 68 "googletest-output-test_.cc", 69 "googletest-list-tests-unittest_.cc", 70 "googletest-shuffle-test_.cc", 71 "googletest-setuptestsuite-test_.cc", 72 "googletest-uninitialized-test_.cc", 73 "googletest-death-test_ex_test.cc", 74 "googletest-param-test-test", 75 "googletest-throw-on-failure-test_.cc", 76 "googletest-param-test-invalid-name1-test_.cc", 77 "googletest-param-test-invalid-name2-test_.cc", 78 ], 79 ) + select({ 80 "//:windows": [], 81 "//conditions:default": [], 82 }), 83 copts = select({ 84 "//:windows": ["-DGTEST_USE_OWN_TR1_TUPLE=0"], 85 "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"], 86 }) + select({ 87 # Ensure MSVC treats source files as UTF-8 encoded. 88 "//:msvc_compiler": ["-utf-8"], 89 "//conditions:default": [], 90 }), 91 includes = [ 92 "googletest", 93 "googletest/include", 94 "googletest/include/internal", 95 "googletest/test", 96 ], 97 linkopts = select({ 98 "//:windows": [], 99 "//conditions:default": ["-pthread"], 100 }), 101 deps = ["//:gtest_main"], 102 ) 103 104 # Tests death tests. 105 cc_test( 106 name = "googletest-death-test-test", 107 size = "medium", 108 srcs = ["googletest-death-test-test.cc"], 109 deps = ["//:gtest_main"], 110 ) 111 112 cc_test( 113 name = "gtest_test_macro_stack_footprint_test", 114 size = "small", 115 srcs = ["gtest_test_macro_stack_footprint_test.cc"], 116 deps = ["//:gtest"], 117 ) 118 119 #These googletest tests have their own main() 120 cc_test( 121 name = "googletest-listener-test", 122 size = "small", 123 srcs = ["googletest-listener-test.cc"], 124 deps = ["//:gtest_main"], 125 ) 126 127 cc_test( 128 name = "gtest-unittest-api_test", 129 size = "small", 130 srcs = [ 131 "gtest-unittest-api_test.cc", 132 ], 133 deps = [ 134 "//:gtest", 135 ], 136 ) 137 138 cc_test( 139 name = "googletest-param-test-test", 140 size = "small", 141 srcs = [ 142 "googletest-param-test-test.cc", 143 "googletest-param-test-test.h", 144 "googletest-param-test2-test.cc", 145 ], 146 deps = ["//:gtest"], 147 ) 148 149 cc_test( 150 name = "gtest_unittest", 151 size = "small", 152 srcs = ["gtest_unittest.cc"], 153 shard_count = 2, 154 deps = ["//:gtest_main"], 155 ) 156 157 # Py tests 158 159 py_library( 160 name = "gtest_test_utils", 161 testonly = 1, 162 srcs = ["gtest_test_utils.py"], 163 imports = ["."], 164 ) 165 166 cc_binary( 167 name = "gtest_help_test_", 168 testonly = 1, 169 srcs = ["gtest_help_test_.cc"], 170 deps = ["//:gtest_main"], 171 ) 172 173 py_test( 174 name = "gtest_help_test", 175 size = "small", 176 srcs = ["gtest_help_test.py"], 177 data = [":gtest_help_test_"], 178 deps = [":gtest_test_utils"], 179 ) 180 181 cc_binary( 182 name = "googletest-output-test_", 183 testonly = 1, 184 srcs = ["googletest-output-test_.cc"], 185 deps = ["//:gtest"], 186 ) 187 188 py_test( 189 name = "googletest-output-test", 190 size = "small", 191 srcs = ["googletest-output-test.py"], 192 args = select({ 193 "//:has_absl": [], 194 "//conditions:default": ["--no_stacktrace_support"], 195 }), 196 data = [ 197 "googletest-output-test-golden-lin.txt", 198 ":googletest-output-test_", 199 ], 200 deps = [":gtest_test_utils"], 201 ) 202 203 cc_binary( 204 name = "googletest-color-test_", 205 testonly = 1, 206 srcs = ["googletest-color-test_.cc"], 207 deps = ["//:gtest"], 208 ) 209 210 py_test( 211 name = "googletest-color-test", 212 size = "small", 213 srcs = ["googletest-color-test.py"], 214 data = [":googletest-color-test_"], 215 deps = [":gtest_test_utils"], 216 ) 217 218 cc_binary( 219 name = "googletest-env-var-test_", 220 testonly = 1, 221 srcs = ["googletest-env-var-test_.cc"], 222 deps = ["//:gtest"], 223 ) 224 225 py_test( 226 name = "googletest-env-var-test", 227 size = "medium", 228 srcs = ["googletest-env-var-test.py"], 229 data = [":googletest-env-var-test_"], 230 deps = [":gtest_test_utils"], 231 ) 232 233 cc_binary( 234 name = "googletest-failfast-unittest_", 235 testonly = 1, 236 srcs = ["googletest-failfast-unittest_.cc"], 237 deps = ["//:gtest"], 238 ) 239 240 py_test( 241 name = "googletest-failfast-unittest", 242 size = "medium", 243 srcs = ["googletest-failfast-unittest.py"], 244 data = [":googletest-failfast-unittest_"], 245 deps = [":gtest_test_utils"], 246 ) 247 248 cc_binary( 249 name = "googletest-filter-unittest_", 250 testonly = 1, 251 srcs = ["googletest-filter-unittest_.cc"], 252 deps = ["//:gtest"], 253 ) 254 255 py_test( 256 name = "googletest-filter-unittest", 257 size = "medium", 258 srcs = ["googletest-filter-unittest.py"], 259 data = [":googletest-filter-unittest_"], 260 deps = [":gtest_test_utils"], 261 ) 262 263 cc_binary( 264 name = "googletest-global-environment-unittest_", 265 testonly = 1, 266 srcs = ["googletest-global-environment-unittest_.cc"], 267 deps = ["//:gtest"], 268 ) 269 270 py_test( 271 name = "googletest-global-environment-unittest", 272 size = "medium", 273 srcs = ["googletest-global-environment-unittest.py"], 274 data = [":googletest-global-environment-unittest_"], 275 deps = [":gtest_test_utils"], 276 ) 277 278 cc_binary( 279 name = "googletest-break-on-failure-unittest_", 280 testonly = 1, 281 srcs = ["googletest-break-on-failure-unittest_.cc"], 282 deps = ["//:gtest"], 283 ) 284 285 py_test( 286 name = "googletest-break-on-failure-unittest", 287 size = "small", 288 srcs = ["googletest-break-on-failure-unittest.py"], 289 data = [":googletest-break-on-failure-unittest_"], 290 deps = [":gtest_test_utils"], 291 ) 292 293 cc_test( 294 name = "gtest_assert_by_exception_test", 295 size = "small", 296 srcs = ["gtest_assert_by_exception_test.cc"], 297 deps = ["//:gtest"], 298 ) 299 300 cc_binary( 301 name = "googletest-throw-on-failure-test_", 302 testonly = 1, 303 srcs = ["googletest-throw-on-failure-test_.cc"], 304 deps = ["//:gtest"], 305 ) 306 307 py_test( 308 name = "googletest-throw-on-failure-test", 309 size = "small", 310 srcs = ["googletest-throw-on-failure-test.py"], 311 data = [":googletest-throw-on-failure-test_"], 312 deps = [":gtest_test_utils"], 313 ) 314 315 cc_binary( 316 name = "googletest-list-tests-unittest_", 317 testonly = 1, 318 srcs = ["googletest-list-tests-unittest_.cc"], 319 deps = ["//:gtest"], 320 ) 321 322 cc_test( 323 name = "gtest_skip_test", 324 size = "small", 325 srcs = ["gtest_skip_test.cc"], 326 deps = ["//:gtest_main"], 327 ) 328 329 cc_test( 330 name = "gtest_skip_in_environment_setup_test", 331 size = "small", 332 srcs = ["gtest_skip_in_environment_setup_test.cc"], 333 deps = ["//:gtest_main"], 334 ) 335 336 py_test( 337 name = "gtest_skip_check_output_test", 338 size = "small", 339 srcs = ["gtest_skip_check_output_test.py"], 340 data = [":gtest_skip_test"], 341 deps = [":gtest_test_utils"], 342 ) 343 344 py_test( 345 name = "gtest_skip_environment_check_output_test", 346 size = "small", 347 srcs = ["gtest_skip_environment_check_output_test.py"], 348 data = [ 349 ":gtest_skip_in_environment_setup_test", 350 ], 351 deps = [":gtest_test_utils"], 352 ) 353 354 py_test( 355 name = "googletest-list-tests-unittest", 356 size = "small", 357 srcs = ["googletest-list-tests-unittest.py"], 358 data = [":googletest-list-tests-unittest_"], 359 deps = [":gtest_test_utils"], 360 ) 361 362 cc_binary( 363 name = "googletest-shuffle-test_", 364 srcs = ["googletest-shuffle-test_.cc"], 365 deps = ["//:gtest"], 366 ) 367 368 py_test( 369 name = "googletest-shuffle-test", 370 size = "small", 371 srcs = ["googletest-shuffle-test.py"], 372 data = [":googletest-shuffle-test_"], 373 deps = [":gtest_test_utils"], 374 ) 375 376 cc_binary( 377 name = "googletest-catch-exceptions-no-ex-test_", 378 testonly = 1, 379 srcs = ["googletest-catch-exceptions-test_.cc"], 380 deps = ["//:gtest_main"], 381 ) 382 383 cc_binary( 384 name = "googletest-catch-exceptions-ex-test_", 385 testonly = 1, 386 srcs = ["googletest-catch-exceptions-test_.cc"], 387 copts = ["-fexceptions"], 388 deps = ["//:gtest_main"], 389 ) 390 391 py_test( 392 name = "googletest-catch-exceptions-test", 393 size = "small", 394 srcs = ["googletest-catch-exceptions-test.py"], 395 data = [ 396 ":googletest-catch-exceptions-ex-test_", 397 ":googletest-catch-exceptions-no-ex-test_", 398 ], 399 deps = [":gtest_test_utils"], 400 ) 401 402 cc_binary( 403 name = "gtest_xml_output_unittest_", 404 testonly = 1, 405 srcs = ["gtest_xml_output_unittest_.cc"], 406 deps = ["//:gtest"], 407 ) 408 409 cc_test( 410 name = "gtest_no_test_unittest", 411 size = "small", 412 srcs = ["gtest_no_test_unittest.cc"], 413 deps = ["//:gtest"], 414 ) 415 416 py_test( 417 name = "gtest_xml_output_unittest", 418 size = "small", 419 srcs = [ 420 "gtest_xml_output_unittest.py", 421 "gtest_xml_test_utils.py", 422 ], 423 args = select({ 424 "//:has_absl": [], 425 "//conditions:default": ["--no_stacktrace_support"], 426 }), 427 data = [ 428 # We invoke gtest_no_test_unittest to verify the XML output 429 # when the test program contains no test definition. 430 ":gtest_no_test_unittest", 431 ":gtest_xml_output_unittest_", 432 ], 433 deps = [":gtest_test_utils"], 434 ) 435 436 cc_binary( 437 name = "gtest_xml_outfile1_test_", 438 testonly = 1, 439 srcs = ["gtest_xml_outfile1_test_.cc"], 440 deps = ["//:gtest_main"], 441 ) 442 443 cc_binary( 444 name = "gtest_xml_outfile2_test_", 445 testonly = 1, 446 srcs = ["gtest_xml_outfile2_test_.cc"], 447 deps = ["//:gtest_main"], 448 ) 449 450 py_test( 451 name = "gtest_xml_outfiles_test", 452 size = "small", 453 srcs = [ 454 "gtest_xml_outfiles_test.py", 455 "gtest_xml_test_utils.py", 456 ], 457 data = [ 458 ":gtest_xml_outfile1_test_", 459 ":gtest_xml_outfile2_test_", 460 ], 461 deps = [":gtest_test_utils"], 462 ) 463 464 cc_binary( 465 name = "googletest-setuptestsuite-test_", 466 testonly = 1, 467 srcs = ["googletest-setuptestsuite-test_.cc"], 468 deps = ["//:gtest_main"], 469 ) 470 471 py_test( 472 name = "googletest-setuptestsuite-test", 473 size = "medium", 474 srcs = ["googletest-setuptestsuite-test.py"], 475 data = [":googletest-setuptestsuite-test_"], 476 deps = [":gtest_test_utils"], 477 ) 478 479 cc_binary( 480 name = "googletest-uninitialized-test_", 481 testonly = 1, 482 srcs = ["googletest-uninitialized-test_.cc"], 483 deps = ["//:gtest"], 484 ) 485 486 py_test( 487 name = "googletest-uninitialized-test", 488 size = "medium", 489 srcs = ["googletest-uninitialized-test.py"], 490 data = ["googletest-uninitialized-test_"], 491 deps = [":gtest_test_utils"], 492 ) 493 494 cc_binary( 495 name = "gtest_testbridge_test_", 496 testonly = 1, 497 srcs = ["gtest_testbridge_test_.cc"], 498 deps = ["//:gtest_main"], 499 ) 500 501 # Tests that filtering via testbridge works 502 py_test( 503 name = "gtest_testbridge_test", 504 size = "small", 505 srcs = ["gtest_testbridge_test.py"], 506 data = [":gtest_testbridge_test_"], 507 deps = [":gtest_test_utils"], 508 ) 509 510 py_test( 511 name = "googletest-json-outfiles-test", 512 size = "small", 513 srcs = [ 514 "googletest-json-outfiles-test.py", 515 "gtest_json_test_utils.py", 516 ], 517 data = [ 518 ":gtest_xml_outfile1_test_", 519 ":gtest_xml_outfile2_test_", 520 ], 521 deps = [":gtest_test_utils"], 522 ) 523 524 py_test( 525 name = "googletest-json-output-unittest", 526 size = "medium", 527 srcs = [ 528 "googletest-json-output-unittest.py", 529 "gtest_json_test_utils.py", 530 ], 531 args = select({ 532 "//:has_absl": [], 533 "//conditions:default": ["--no_stacktrace_support"], 534 }), 535 data = [ 536 # We invoke gtest_no_test_unittest to verify the JSON output 537 # when the test program contains no test definition. 538 ":gtest_no_test_unittest", 539 ":gtest_xml_output_unittest_", 540 ], 541 deps = [":gtest_test_utils"], 542 ) 543 544 # Verifies interaction of death tests and exceptions. 545 cc_test( 546 name = "googletest-death-test_ex_catch_test", 547 size = "medium", 548 srcs = ["googletest-death-test_ex_test.cc"], 549 copts = ["-fexceptions"], 550 defines = ["GTEST_ENABLE_CATCH_EXCEPTIONS_=1"], 551 deps = ["//:gtest"], 552 ) 553 554 cc_binary( 555 name = "googletest-param-test-invalid-name1-test_", 556 testonly = 1, 557 srcs = ["googletest-param-test-invalid-name1-test_.cc"], 558 deps = ["//:gtest"], 559 ) 560 561 cc_binary( 562 name = "googletest-param-test-invalid-name2-test_", 563 testonly = 1, 564 srcs = ["googletest-param-test-invalid-name2-test_.cc"], 565 deps = ["//:gtest"], 566 ) 567 568 py_test( 569 name = "googletest-param-test-invalid-name1-test", 570 size = "small", 571 srcs = ["googletest-param-test-invalid-name1-test.py"], 572 data = [":googletest-param-test-invalid-name1-test_"], 573 tags = [ 574 "no_test_msvc2015", 575 "no_test_msvc2017", 576 ], 577 deps = [":gtest_test_utils"], 578 ) 579 580 py_test( 581 name = "googletest-param-test-invalid-name2-test", 582 size = "small", 583 srcs = ["googletest-param-test-invalid-name2-test.py"], 584 data = [":googletest-param-test-invalid-name2-test_"], 585 tags = [ 586 "no_test_msvc2015", 587 "no_test_msvc2017", 588 ], 589 deps = [":gtest_test_utils"], 590 )