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 33load("@rules_python//python:defs.bzl", "py_library", "py_test") 34 35licenses(["notice"]) 36 37package(default_visibility = ["//:__subpackages__"]) 38 39#on windows exclude gtest-tuple.h 40cc_test( 41 name = "gtest_all_test", 42 size = "small", 43 srcs = glob( 44 include = [ 45 "gtest-*.cc", 46 "googletest-*.cc", 47 "*.h", 48 "googletest/include/gtest/**/*.h", 49 ], 50 exclude = [ 51 "gtest-unittest-api_test.cc", 52 "googletest/src/gtest-all.cc", 53 "gtest_all_test.cc", 54 "gtest-death-test_ex_test.cc", 55 "gtest-listener_test.cc", 56 "gtest-unittest-api_test.cc", 57 "googletest-param-test-test.cc", 58 "googletest-param-test2-test.cc", 59 "googletest-catch-exceptions-test_.cc", 60 "googletest-color-test_.cc", 61 "googletest-env-var-test_.cc", 62 "googletest-failfast-unittest_.cc", 63 "googletest-filter-unittest_.cc", 64 "googletest-global-environment-unittest_.cc", 65 "googletest-break-on-failure-unittest_.cc", 66 "googletest-listener-test.cc", 67 "googletest-message-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 "//:qnx": [], 99 "//:windows": [], 100 "//conditions:default": ["-pthread"], 101 }), 102 deps = ["//:gtest_main"], 103) 104 105# Tests death tests. 106cc_test( 107 name = "googletest-death-test-test", 108 size = "medium", 109 srcs = ["googletest-death-test-test.cc"], 110 deps = ["//:gtest_main"], 111) 112 113cc_test( 114 name = "gtest_test_macro_stack_footprint_test", 115 size = "small", 116 srcs = ["gtest_test_macro_stack_footprint_test.cc"], 117 deps = ["//:gtest"], 118) 119 120#These googletest tests have their own main() 121cc_test( 122 name = "googletest-listener-test", 123 size = "small", 124 srcs = ["googletest-listener-test.cc"], 125 deps = ["//:gtest_main"], 126) 127 128cc_test( 129 name = "gtest-unittest-api_test", 130 size = "small", 131 srcs = [ 132 "gtest-unittest-api_test.cc", 133 ], 134 deps = [ 135 "//:gtest", 136 ], 137) 138 139cc_test( 140 name = "googletest-param-test-test", 141 size = "small", 142 srcs = [ 143 "googletest-param-test-test.cc", 144 "googletest-param-test-test.h", 145 "googletest-param-test2-test.cc", 146 ], 147 deps = ["//:gtest"], 148) 149 150cc_test( 151 name = "gtest_unittest", 152 size = "small", 153 srcs = ["gtest_unittest.cc"], 154 shard_count = 2, 155 deps = ["//:gtest_main"], 156) 157 158# Py tests 159 160py_library( 161 name = "gtest_test_utils", 162 testonly = 1, 163 srcs = ["gtest_test_utils.py"], 164 imports = ["."], 165) 166 167cc_binary( 168 name = "gtest_help_test_", 169 testonly = 1, 170 srcs = ["gtest_help_test_.cc"], 171 deps = ["//:gtest_main"], 172) 173 174py_test( 175 name = "gtest_help_test", 176 size = "small", 177 srcs = ["gtest_help_test.py"], 178 args = select({ 179 "//:has_absl": ["--has_absl_flags"], 180 "//conditions:default": [], 181 }), 182 data = [":gtest_help_test_"], 183 deps = [":gtest_test_utils"], 184) 185 186cc_binary( 187 name = "googletest-output-test_", 188 testonly = 1, 189 srcs = ["googletest-output-test_.cc"], 190 deps = ["//:gtest"], 191) 192 193py_test( 194 name = "googletest-output-test", 195 size = "small", 196 srcs = ["googletest-output-test.py"], 197 args = select({ 198 "//:has_absl": [], 199 "//conditions:default": ["--no_stacktrace_support"], 200 }), 201 data = [ 202 "googletest-output-test-golden-lin.txt", 203 ":googletest-output-test_", 204 ], 205 deps = [":gtest_test_utils"], 206) 207 208cc_binary( 209 name = "googletest-color-test_", 210 testonly = 1, 211 srcs = ["googletest-color-test_.cc"], 212 deps = ["//:gtest"], 213) 214 215py_test( 216 name = "googletest-color-test", 217 size = "small", 218 srcs = ["googletest-color-test.py"], 219 data = [":googletest-color-test_"], 220 deps = [":gtest_test_utils"], 221) 222 223cc_binary( 224 name = "googletest-env-var-test_", 225 testonly = 1, 226 srcs = ["googletest-env-var-test_.cc"], 227 deps = ["//:gtest"], 228) 229 230py_test( 231 name = "googletest-env-var-test", 232 size = "medium", 233 srcs = ["googletest-env-var-test.py"], 234 data = [":googletest-env-var-test_"], 235 deps = [":gtest_test_utils"], 236) 237 238cc_binary( 239 name = "googletest-failfast-unittest_", 240 testonly = 1, 241 srcs = ["googletest-failfast-unittest_.cc"], 242 deps = ["//:gtest"], 243) 244 245py_test( 246 name = "googletest-failfast-unittest", 247 size = "medium", 248 srcs = ["googletest-failfast-unittest.py"], 249 data = [":googletest-failfast-unittest_"], 250 deps = [":gtest_test_utils"], 251) 252 253cc_binary( 254 name = "googletest-filter-unittest_", 255 testonly = 1, 256 srcs = ["googletest-filter-unittest_.cc"], 257 deps = ["//:gtest"], 258) 259 260py_test( 261 name = "googletest-filter-unittest", 262 size = "medium", 263 srcs = ["googletest-filter-unittest.py"], 264 data = [":googletest-filter-unittest_"], 265 deps = [":gtest_test_utils"], 266) 267 268cc_binary( 269 name = "googletest-global-environment-unittest_", 270 testonly = 1, 271 srcs = ["googletest-global-environment-unittest_.cc"], 272 deps = ["//:gtest"], 273) 274 275py_test( 276 name = "googletest-global-environment-unittest", 277 size = "medium", 278 srcs = ["googletest-global-environment-unittest.py"], 279 data = [":googletest-global-environment-unittest_"], 280 deps = [":gtest_test_utils"], 281) 282 283cc_binary( 284 name = "googletest-break-on-failure-unittest_", 285 testonly = 1, 286 srcs = ["googletest-break-on-failure-unittest_.cc"], 287 deps = ["//:gtest"], 288) 289 290py_test( 291 name = "googletest-break-on-failure-unittest", 292 size = "small", 293 srcs = ["googletest-break-on-failure-unittest.py"], 294 data = [":googletest-break-on-failure-unittest_"], 295 deps = [":gtest_test_utils"], 296) 297 298cc_test( 299 name = "gtest_assert_by_exception_test", 300 size = "small", 301 srcs = ["gtest_assert_by_exception_test.cc"], 302 deps = ["//:gtest"], 303) 304 305cc_binary( 306 name = "googletest-throw-on-failure-test_", 307 testonly = 1, 308 srcs = ["googletest-throw-on-failure-test_.cc"], 309 deps = ["//:gtest"], 310) 311 312py_test( 313 name = "googletest-throw-on-failure-test", 314 size = "small", 315 srcs = ["googletest-throw-on-failure-test.py"], 316 data = [":googletest-throw-on-failure-test_"], 317 deps = [":gtest_test_utils"], 318) 319 320cc_binary( 321 name = "googletest-list-tests-unittest_", 322 testonly = 1, 323 srcs = ["googletest-list-tests-unittest_.cc"], 324 deps = ["//:gtest"], 325) 326 327cc_test( 328 name = "gtest_skip_test", 329 size = "small", 330 srcs = ["gtest_skip_test.cc"], 331 deps = ["//:gtest_main"], 332) 333 334cc_test( 335 name = "gtest_skip_in_environment_setup_test", 336 size = "small", 337 srcs = ["gtest_skip_in_environment_setup_test.cc"], 338 deps = ["//:gtest_main"], 339) 340 341py_test( 342 name = "gtest_skip_check_output_test", 343 size = "small", 344 srcs = ["gtest_skip_check_output_test.py"], 345 data = [":gtest_skip_test"], 346 deps = [":gtest_test_utils"], 347) 348 349py_test( 350 name = "gtest_skip_environment_check_output_test", 351 size = "small", 352 srcs = ["gtest_skip_environment_check_output_test.py"], 353 data = [ 354 ":gtest_skip_in_environment_setup_test", 355 ], 356 deps = [":gtest_test_utils"], 357) 358 359py_test( 360 name = "googletest-list-tests-unittest", 361 size = "small", 362 srcs = ["googletest-list-tests-unittest.py"], 363 data = [":googletest-list-tests-unittest_"], 364 deps = [":gtest_test_utils"], 365) 366 367cc_binary( 368 name = "googletest-shuffle-test_", 369 srcs = ["googletest-shuffle-test_.cc"], 370 deps = ["//:gtest"], 371) 372 373py_test( 374 name = "googletest-shuffle-test", 375 size = "small", 376 srcs = ["googletest-shuffle-test.py"], 377 data = [":googletest-shuffle-test_"], 378 deps = [":gtest_test_utils"], 379) 380 381cc_binary( 382 name = "googletest-catch-exceptions-no-ex-test_", 383 testonly = 1, 384 srcs = ["googletest-catch-exceptions-test_.cc"], 385 deps = ["//:gtest_main"], 386) 387 388cc_binary( 389 name = "googletest-catch-exceptions-ex-test_", 390 testonly = 1, 391 srcs = ["googletest-catch-exceptions-test_.cc"], 392 copts = ["-fexceptions"], 393 deps = ["//:gtest_main"], 394) 395 396py_test( 397 name = "googletest-catch-exceptions-test", 398 size = "small", 399 srcs = ["googletest-catch-exceptions-test.py"], 400 data = [ 401 ":googletest-catch-exceptions-ex-test_", 402 ":googletest-catch-exceptions-no-ex-test_", 403 ], 404 deps = [":gtest_test_utils"], 405) 406 407cc_binary( 408 name = "gtest_xml_output_unittest_", 409 testonly = 1, 410 srcs = ["gtest_xml_output_unittest_.cc"], 411 deps = ["//:gtest"], 412) 413 414cc_test( 415 name = "gtest_no_test_unittest", 416 size = "small", 417 srcs = ["gtest_no_test_unittest.cc"], 418 deps = ["//:gtest"], 419) 420 421py_test( 422 name = "gtest_xml_output_unittest", 423 size = "small", 424 srcs = [ 425 "gtest_xml_output_unittest.py", 426 "gtest_xml_test_utils.py", 427 ], 428 args = select({ 429 "//:has_absl": [], 430 "//conditions:default": ["--no_stacktrace_support"], 431 }), 432 data = [ 433 # We invoke gtest_no_test_unittest to verify the XML output 434 # when the test program contains no test definition. 435 ":gtest_no_test_unittest", 436 ":gtest_xml_output_unittest_", 437 ], 438 deps = [":gtest_test_utils"], 439) 440 441cc_binary( 442 name = "gtest_xml_outfile1_test_", 443 testonly = 1, 444 srcs = ["gtest_xml_outfile1_test_.cc"], 445 deps = ["//:gtest_main"], 446) 447 448cc_binary( 449 name = "gtest_xml_outfile2_test_", 450 testonly = 1, 451 srcs = ["gtest_xml_outfile2_test_.cc"], 452 deps = ["//:gtest_main"], 453) 454 455py_test( 456 name = "gtest_xml_outfiles_test", 457 size = "small", 458 srcs = [ 459 "gtest_xml_outfiles_test.py", 460 "gtest_xml_test_utils.py", 461 ], 462 data = [ 463 ":gtest_xml_outfile1_test_", 464 ":gtest_xml_outfile2_test_", 465 ], 466 deps = [":gtest_test_utils"], 467) 468 469cc_binary( 470 name = "googletest-setuptestsuite-test_", 471 testonly = 1, 472 srcs = ["googletest-setuptestsuite-test_.cc"], 473 deps = ["//:gtest_main"], 474) 475 476py_test( 477 name = "googletest-setuptestsuite-test", 478 size = "medium", 479 srcs = ["googletest-setuptestsuite-test.py"], 480 data = [":googletest-setuptestsuite-test_"], 481 deps = [":gtest_test_utils"], 482) 483 484cc_binary( 485 name = "googletest-uninitialized-test_", 486 testonly = 1, 487 srcs = ["googletest-uninitialized-test_.cc"], 488 deps = ["//:gtest"], 489) 490 491py_test( 492 name = "googletest-uninitialized-test", 493 size = "medium", 494 srcs = ["googletest-uninitialized-test.py"], 495 data = ["googletest-uninitialized-test_"], 496 deps = [":gtest_test_utils"], 497) 498 499cc_binary( 500 name = "gtest_testbridge_test_", 501 testonly = 1, 502 srcs = ["gtest_testbridge_test_.cc"], 503 deps = ["//:gtest_main"], 504) 505 506# Tests that filtering via testbridge works 507py_test( 508 name = "gtest_testbridge_test", 509 size = "small", 510 srcs = ["gtest_testbridge_test.py"], 511 data = [":gtest_testbridge_test_"], 512 deps = [":gtest_test_utils"], 513) 514 515py_test( 516 name = "googletest-json-outfiles-test", 517 size = "small", 518 srcs = [ 519 "googletest-json-outfiles-test.py", 520 "gtest_json_test_utils.py", 521 ], 522 data = [ 523 ":gtest_xml_outfile1_test_", 524 ":gtest_xml_outfile2_test_", 525 ], 526 deps = [":gtest_test_utils"], 527) 528 529py_test( 530 name = "googletest-json-output-unittest", 531 size = "medium", 532 srcs = [ 533 "googletest-json-output-unittest.py", 534 "gtest_json_test_utils.py", 535 ], 536 args = select({ 537 "//:has_absl": [], 538 "//conditions:default": ["--no_stacktrace_support"], 539 }), 540 data = [ 541 # We invoke gtest_no_test_unittest to verify the JSON output 542 # when the test program contains no test definition. 543 ":gtest_no_test_unittest", 544 ":gtest_xml_output_unittest_", 545 ], 546 deps = [":gtest_test_utils"], 547) 548 549# Verifies interaction of death tests and exceptions. 550cc_test( 551 name = "googletest-death-test_ex_catch_test", 552 size = "medium", 553 srcs = ["googletest-death-test_ex_test.cc"], 554 copts = ["-fexceptions"], 555 defines = ["GTEST_ENABLE_CATCH_EXCEPTIONS_=1"], 556 deps = ["//:gtest"], 557) 558 559cc_binary( 560 name = "googletest-param-test-invalid-name1-test_", 561 testonly = 1, 562 srcs = ["googletest-param-test-invalid-name1-test_.cc"], 563 deps = ["//:gtest"], 564) 565 566cc_binary( 567 name = "googletest-param-test-invalid-name2-test_", 568 testonly = 1, 569 srcs = ["googletest-param-test-invalid-name2-test_.cc"], 570 deps = ["//:gtest"], 571) 572 573py_test( 574 name = "googletest-param-test-invalid-name1-test", 575 size = "small", 576 srcs = ["googletest-param-test-invalid-name1-test.py"], 577 data = [":googletest-param-test-invalid-name1-test_"], 578 tags = [ 579 "no_test_msvc2015", 580 "no_test_msvc2017", 581 ], 582 deps = [":gtest_test_utils"], 583) 584 585py_test( 586 name = "googletest-param-test-invalid-name2-test", 587 size = "small", 588 srcs = ["googletest-param-test-invalid-name2-test.py"], 589 data = [":googletest-param-test-invalid-name2-test_"], 590 tags = [ 591 "no_test_msvc2015", 592 "no_test_msvc2017", 593 ], 594 deps = [":gtest_test_utils"], 595) 596