BUILD.bazel 15 KB

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