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-output-test_.cc", 68 "googletest-list-tests-unittest_.cc", 69 "googletest-shuffle-test_.cc", 70 "googletest-setuptestsuite-test_.cc", 71 "googletest-uninitialized-test_.cc", 72 "googletest-death-test_ex_test.cc", 73 "googletest-param-test-test", 74 "googletest-throw-on-failure-test_.cc", 75 "googletest-param-test-invalid-name1-test_.cc", 76 "googletest-param-test-invalid-name2-test_.cc", 77 ], 78 ) + select({ 79 "//:windows": [], 80 "//conditions:default": [], 81 }), 82 copts = select({ 83 "//:windows": ["-DGTEST_USE_OWN_TR1_TUPLE=0"], 84 "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"], 85 }) + select({ 86 # Ensure MSVC treats source files as UTF-8 encoded. 87 "//:msvc_compiler": ["-utf-8"], 88 "//conditions:default": [], 89 }), 90 includes = [ 91 "googletest", 92 "googletest/include", 93 "googletest/include/internal", 94 "googletest/test", 95 ], 96 linkopts = select({ 97 "//:qnx": [], 98 "//:windows": [], 99 "//conditions:default": ["-pthread"], 100 }), 101 deps = ["//:gtest_main"], 102) 103 104# Tests death tests. 105cc_test( 106 name = "googletest-death-test-test", 107 size = "medium", 108 srcs = ["googletest-death-test-test.cc"], 109 deps = ["//:gtest_main"], 110) 111 112cc_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() 120cc_test( 121 name = "googletest-listener-test", 122 size = "small", 123 srcs = ["googletest-listener-test.cc"], 124 deps = ["//:gtest_main"], 125) 126 127cc_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 138cc_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 149cc_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 159py_library( 160 name = "gtest_test_utils", 161 testonly = 1, 162 srcs = ["gtest_test_utils.py"], 163 imports = ["."], 164) 165 166cc_binary( 167 name = "gtest_help_test_", 168 testonly = 1, 169 srcs = ["gtest_help_test_.cc"], 170 deps = ["//:gtest_main"], 171) 172 173py_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 181cc_binary( 182 name = "googletest-output-test_", 183 testonly = 1, 184 srcs = ["googletest-output-test_.cc"], 185 deps = ["//:gtest"], 186) 187 188py_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 203cc_binary( 204 name = "googletest-color-test_", 205 testonly = 1, 206 srcs = ["googletest-color-test_.cc"], 207 deps = ["//:gtest"], 208) 209 210py_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 218cc_binary( 219 name = "googletest-env-var-test_", 220 testonly = 1, 221 srcs = ["googletest-env-var-test_.cc"], 222 deps = ["//:gtest"], 223) 224 225py_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 233cc_binary( 234 name = "googletest-failfast-unittest_", 235 testonly = 1, 236 srcs = ["googletest-failfast-unittest_.cc"], 237 deps = ["//:gtest"], 238) 239 240py_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 248cc_binary( 249 name = "googletest-filter-unittest_", 250 testonly = 1, 251 srcs = ["googletest-filter-unittest_.cc"], 252 deps = ["//:gtest"], 253) 254 255py_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 263cc_binary( 264 name = "googletest-global-environment-unittest_", 265 testonly = 1, 266 srcs = ["googletest-global-environment-unittest_.cc"], 267 deps = ["//:gtest"], 268) 269 270py_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 278cc_binary( 279 name = "googletest-break-on-failure-unittest_", 280 testonly = 1, 281 srcs = ["googletest-break-on-failure-unittest_.cc"], 282 deps = ["//:gtest"], 283) 284 285py_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 293cc_test( 294 name = "gtest_assert_by_exception_test", 295 size = "small", 296 srcs = ["gtest_assert_by_exception_test.cc"], 297 deps = ["//:gtest"], 298) 299 300cc_binary( 301 name = "googletest-throw-on-failure-test_", 302 testonly = 1, 303 srcs = ["googletest-throw-on-failure-test_.cc"], 304 deps = ["//:gtest"], 305) 306 307py_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 315cc_binary( 316 name = "googletest-list-tests-unittest_", 317 testonly = 1, 318 srcs = ["googletest-list-tests-unittest_.cc"], 319 deps = ["//:gtest"], 320) 321 322cc_test( 323 name = "gtest_skip_test", 324 size = "small", 325 srcs = ["gtest_skip_test.cc"], 326 deps = ["//:gtest_main"], 327) 328 329cc_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 336py_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 344py_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 354py_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 362cc_binary( 363 name = "googletest-shuffle-test_", 364 srcs = ["googletest-shuffle-test_.cc"], 365 deps = ["//:gtest"], 366) 367 368py_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 376cc_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 383cc_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 391py_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 402cc_binary( 403 name = "gtest_xml_output_unittest_", 404 testonly = 1, 405 srcs = ["gtest_xml_output_unittest_.cc"], 406 deps = ["//:gtest"], 407) 408 409cc_test( 410 name = "gtest_no_test_unittest", 411 size = "small", 412 srcs = ["gtest_no_test_unittest.cc"], 413 deps = ["//:gtest"], 414) 415 416py_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 436cc_binary( 437 name = "gtest_xml_outfile1_test_", 438 testonly = 1, 439 srcs = ["gtest_xml_outfile1_test_.cc"], 440 deps = ["//:gtest_main"], 441) 442 443cc_binary( 444 name = "gtest_xml_outfile2_test_", 445 testonly = 1, 446 srcs = ["gtest_xml_outfile2_test_.cc"], 447 deps = ["//:gtest_main"], 448) 449 450py_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 464cc_binary( 465 name = "googletest-setuptestsuite-test_", 466 testonly = 1, 467 srcs = ["googletest-setuptestsuite-test_.cc"], 468 deps = ["//:gtest_main"], 469) 470 471py_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 479cc_binary( 480 name = "googletest-uninitialized-test_", 481 testonly = 1, 482 srcs = ["googletest-uninitialized-test_.cc"], 483 deps = ["//:gtest"], 484) 485 486py_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 494cc_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 502py_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 510py_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 524py_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. 545cc_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 554cc_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 561cc_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 568py_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 580py_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) 591