• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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