b06a00a106fdd3f3a1ecf506c59ed3648764ab2d
[platform/upstream/gtest.git] / googletest / test / BUILD.bazel
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 )