1b89a7cc2SEnji Cooper# Copyright 2017 Google Inc.
2b89a7cc2SEnji Cooper# All Rights Reserved.
3b89a7cc2SEnji Cooper#
4b89a7cc2SEnji Cooper#
5b89a7cc2SEnji Cooper# Redistribution and use in source and binary forms, with or without
6b89a7cc2SEnji Cooper# modification, are permitted provided that the following conditions are
7b89a7cc2SEnji Cooper# met:
8b89a7cc2SEnji Cooper#
9b89a7cc2SEnji Cooper#     * Redistributions of source code must retain the above copyright
10b89a7cc2SEnji Cooper# notice, this list of conditions and the following disclaimer.
11b89a7cc2SEnji Cooper#     * Redistributions in binary form must reproduce the above
12b89a7cc2SEnji Cooper# copyright notice, this list of conditions and the following disclaimer
13b89a7cc2SEnji Cooper# in the documentation and/or other materials provided with the
14b89a7cc2SEnji Cooper# distribution.
15b89a7cc2SEnji Cooper#     * Neither the name of Google Inc. nor the names of its
16b89a7cc2SEnji Cooper# contributors may be used to endorse or promote products derived from
17b89a7cc2SEnji Cooper# this software without specific prior written permission.
18b89a7cc2SEnji Cooper#
19b89a7cc2SEnji Cooper# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20b89a7cc2SEnji Cooper# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21b89a7cc2SEnji Cooper# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22b89a7cc2SEnji Cooper# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23b89a7cc2SEnji Cooper# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24b89a7cc2SEnji Cooper# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25b89a7cc2SEnji Cooper# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26b89a7cc2SEnji Cooper# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27b89a7cc2SEnji Cooper# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28b89a7cc2SEnji Cooper# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29b89a7cc2SEnji Cooper# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30b89a7cc2SEnji Cooper#
31b89a7cc2SEnji Cooper# Bazel BUILD for The Google C++ Testing Framework (Google Test)
32b89a7cc2SEnji Cooper
3328f6c2f2SEnji Cooperload("@rules_python//python:defs.bzl", "py_library", "py_test")
3428f6c2f2SEnji Cooper
35b89a7cc2SEnji Cooperlicenses(["notice"])
36b89a7cc2SEnji Cooper
3728f6c2f2SEnji Cooperpackage(default_visibility = ["//:__subpackages__"])
38b89a7cc2SEnji Cooper
3928f6c2f2SEnji Cooper#on windows exclude gtest-tuple.h
40b89a7cc2SEnji Coopercc_test(
41b89a7cc2SEnji Cooper    name = "gtest_all_test",
42b89a7cc2SEnji Cooper    size = "small",
43b89a7cc2SEnji Cooper    srcs = glob(
44b89a7cc2SEnji Cooper        include = [
45b89a7cc2SEnji Cooper            "gtest-*.cc",
46b89a7cc2SEnji Cooper            "googletest-*.cc",
47b89a7cc2SEnji Cooper            "*.h",
48b89a7cc2SEnji Cooper            "googletest/include/gtest/**/*.h",
49b89a7cc2SEnji Cooper        ],
50b89a7cc2SEnji Cooper        exclude = [
51b89a7cc2SEnji Cooper            "gtest-unittest-api_test.cc",
52b89a7cc2SEnji Cooper            "googletest/src/gtest-all.cc",
53b89a7cc2SEnji Cooper            "gtest_all_test.cc",
54b89a7cc2SEnji Cooper            "gtest-death-test_ex_test.cc",
55b89a7cc2SEnji Cooper            "gtest-listener_test.cc",
56b89a7cc2SEnji Cooper            "gtest-unittest-api_test.cc",
57b89a7cc2SEnji Cooper            "googletest-param-test-test.cc",
5828f6c2f2SEnji Cooper            "googletest-param-test2-test.cc",
59b89a7cc2SEnji Cooper            "googletest-catch-exceptions-test_.cc",
60b89a7cc2SEnji Cooper            "googletest-color-test_.cc",
61b89a7cc2SEnji Cooper            "googletest-env-var-test_.cc",
6228f6c2f2SEnji Cooper            "googletest-failfast-unittest_.cc",
63b89a7cc2SEnji Cooper            "googletest-filter-unittest_.cc",
6428f6c2f2SEnji Cooper            "googletest-global-environment-unittest_.cc",
65b89a7cc2SEnji Cooper            "googletest-break-on-failure-unittest_.cc",
66b89a7cc2SEnji Cooper            "googletest-listener-test.cc",
6728f6c2f2SEnji Cooper            "googletest-message-test.cc",
68b89a7cc2SEnji Cooper            "googletest-output-test_.cc",
69b89a7cc2SEnji Cooper            "googletest-list-tests-unittest_.cc",
70b89a7cc2SEnji Cooper            "googletest-shuffle-test_.cc",
7128f6c2f2SEnji Cooper            "googletest-setuptestsuite-test_.cc",
72b89a7cc2SEnji Cooper            "googletest-uninitialized-test_.cc",
73b89a7cc2SEnji Cooper            "googletest-death-test_ex_test.cc",
74b89a7cc2SEnji Cooper            "googletest-param-test-test",
75b89a7cc2SEnji Cooper            "googletest-throw-on-failure-test_.cc",
76b89a7cc2SEnji Cooper            "googletest-param-test-invalid-name1-test_.cc",
77b89a7cc2SEnji Cooper            "googletest-param-test-invalid-name2-test_.cc",
78b89a7cc2SEnji Cooper        ],
79b89a7cc2SEnji Cooper    ) + select({
80b89a7cc2SEnji Cooper        "//:windows": [],
8128f6c2f2SEnji Cooper        "//conditions:default": [],
82b89a7cc2SEnji Cooper    }),
83b89a7cc2SEnji Cooper    copts = select({
84b89a7cc2SEnji Cooper        "//:windows": ["-DGTEST_USE_OWN_TR1_TUPLE=0"],
85b89a7cc2SEnji Cooper        "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"],
8628f6c2f2SEnji Cooper    }) + select({
8728f6c2f2SEnji Cooper        # Ensure MSVC treats source files as UTF-8 encoded.
8828f6c2f2SEnji Cooper        "//:msvc_compiler": ["-utf-8"],
8928f6c2f2SEnji Cooper        "//conditions:default": [],
90b89a7cc2SEnji Cooper    }),
91b89a7cc2SEnji Cooper    includes = [
92b89a7cc2SEnji Cooper        "googletest",
93b89a7cc2SEnji Cooper        "googletest/include",
94b89a7cc2SEnji Cooper        "googletest/include/internal",
95b89a7cc2SEnji Cooper        "googletest/test",
96b89a7cc2SEnji Cooper    ],
97b89a7cc2SEnji Cooper    linkopts = select({
9828f6c2f2SEnji Cooper        "//:qnx": [],
99b89a7cc2SEnji Cooper        "//:windows": [],
10028f6c2f2SEnji Cooper        "//conditions:default": ["-pthread"],
101b89a7cc2SEnji Cooper    }),
102b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
103b89a7cc2SEnji Cooper)
104b89a7cc2SEnji Cooper
105b89a7cc2SEnji Cooper# Tests death tests.
106b89a7cc2SEnji Coopercc_test(
107b89a7cc2SEnji Cooper    name = "googletest-death-test-test",
108b89a7cc2SEnji Cooper    size = "medium",
109b89a7cc2SEnji Cooper    srcs = ["googletest-death-test-test.cc"],
110b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
111b89a7cc2SEnji Cooper)
112b89a7cc2SEnji Cooper
113b89a7cc2SEnji Coopercc_test(
114b89a7cc2SEnji Cooper    name = "gtest_test_macro_stack_footprint_test",
115b89a7cc2SEnji Cooper    size = "small",
116b89a7cc2SEnji Cooper    srcs = ["gtest_test_macro_stack_footprint_test.cc"],
117b89a7cc2SEnji Cooper    deps = ["//:gtest"],
118b89a7cc2SEnji Cooper)
119b89a7cc2SEnji Cooper
120b89a7cc2SEnji Cooper#These googletest tests have their own main()
121b89a7cc2SEnji Coopercc_test(
122b89a7cc2SEnji Cooper    name = "googletest-listener-test",
123b89a7cc2SEnji Cooper    size = "small",
124b89a7cc2SEnji Cooper    srcs = ["googletest-listener-test.cc"],
125b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
126b89a7cc2SEnji Cooper)
127b89a7cc2SEnji Cooper
128b89a7cc2SEnji Coopercc_test(
129b89a7cc2SEnji Cooper    name = "gtest-unittest-api_test",
130b89a7cc2SEnji Cooper    size = "small",
131b89a7cc2SEnji Cooper    srcs = [
132b89a7cc2SEnji Cooper        "gtest-unittest-api_test.cc",
133b89a7cc2SEnji Cooper    ],
134b89a7cc2SEnji Cooper    deps = [
135b89a7cc2SEnji Cooper        "//:gtest",
136b89a7cc2SEnji Cooper    ],
137b89a7cc2SEnji Cooper)
138b89a7cc2SEnji Cooper
139b89a7cc2SEnji Coopercc_test(
140b89a7cc2SEnji Cooper    name = "googletest-param-test-test",
141b89a7cc2SEnji Cooper    size = "small",
142b89a7cc2SEnji Cooper    srcs = [
143b89a7cc2SEnji Cooper        "googletest-param-test-test.cc",
144b89a7cc2SEnji Cooper        "googletest-param-test-test.h",
145b89a7cc2SEnji Cooper        "googletest-param-test2-test.cc",
146b89a7cc2SEnji Cooper    ],
147b89a7cc2SEnji Cooper    deps = ["//:gtest"],
148b89a7cc2SEnji Cooper)
149b89a7cc2SEnji Cooper
150b89a7cc2SEnji Coopercc_test(
151b89a7cc2SEnji Cooper    name = "gtest_unittest",
152b89a7cc2SEnji Cooper    size = "small",
153b89a7cc2SEnji Cooper    srcs = ["gtest_unittest.cc"],
154b89a7cc2SEnji Cooper    shard_count = 2,
155b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
156b89a7cc2SEnji Cooper)
157b89a7cc2SEnji Cooper
158b89a7cc2SEnji Cooper#  Py tests
159b89a7cc2SEnji Cooper
160b89a7cc2SEnji Cooperpy_library(
161b89a7cc2SEnji Cooper    name = "gtest_test_utils",
162b89a7cc2SEnji Cooper    testonly = 1,
163b89a7cc2SEnji Cooper    srcs = ["gtest_test_utils.py"],
16428f6c2f2SEnji Cooper    imports = ["."],
165b89a7cc2SEnji Cooper)
166b89a7cc2SEnji Cooper
167b89a7cc2SEnji Coopercc_binary(
168b89a7cc2SEnji Cooper    name = "gtest_help_test_",
169b89a7cc2SEnji Cooper    testonly = 1,
170b89a7cc2SEnji Cooper    srcs = ["gtest_help_test_.cc"],
171b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
172b89a7cc2SEnji Cooper)
173b89a7cc2SEnji Cooper
174b89a7cc2SEnji Cooperpy_test(
175b89a7cc2SEnji Cooper    name = "gtest_help_test",
176b89a7cc2SEnji Cooper    size = "small",
177b89a7cc2SEnji Cooper    srcs = ["gtest_help_test.py"],
17828f6c2f2SEnji Cooper    args = select({
17928f6c2f2SEnji Cooper        "//:has_absl": ["--has_absl_flags"],
18028f6c2f2SEnji Cooper        "//conditions:default": [],
18128f6c2f2SEnji Cooper    }),
182b89a7cc2SEnji Cooper    data = [":gtest_help_test_"],
183b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
184b89a7cc2SEnji Cooper)
185b89a7cc2SEnji Cooper
186b89a7cc2SEnji Coopercc_binary(
187b89a7cc2SEnji Cooper    name = "googletest-output-test_",
188b89a7cc2SEnji Cooper    testonly = 1,
189b89a7cc2SEnji Cooper    srcs = ["googletest-output-test_.cc"],
190b89a7cc2SEnji Cooper    deps = ["//:gtest"],
191b89a7cc2SEnji Cooper)
192b89a7cc2SEnji Cooper
193b89a7cc2SEnji Cooperpy_test(
194b89a7cc2SEnji Cooper    name = "googletest-output-test",
195b89a7cc2SEnji Cooper    size = "small",
196b89a7cc2SEnji Cooper    srcs = ["googletest-output-test.py"],
197b89a7cc2SEnji Cooper    args = select({
19828f6c2f2SEnji Cooper        "//:has_absl": [],
199b89a7cc2SEnji Cooper        "//conditions:default": ["--no_stacktrace_support"],
200b89a7cc2SEnji Cooper    }),
201b89a7cc2SEnji Cooper    data = [
202b89a7cc2SEnji Cooper        "googletest-output-test-golden-lin.txt",
203b89a7cc2SEnji Cooper        ":googletest-output-test_",
204b89a7cc2SEnji Cooper    ],
205b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
206b89a7cc2SEnji Cooper)
207b89a7cc2SEnji Cooper
208b89a7cc2SEnji Coopercc_binary(
209b89a7cc2SEnji Cooper    name = "googletest-color-test_",
210b89a7cc2SEnji Cooper    testonly = 1,
211b89a7cc2SEnji Cooper    srcs = ["googletest-color-test_.cc"],
212b89a7cc2SEnji Cooper    deps = ["//:gtest"],
213b89a7cc2SEnji Cooper)
214b89a7cc2SEnji Cooper
215b89a7cc2SEnji Cooperpy_test(
216b89a7cc2SEnji Cooper    name = "googletest-color-test",
217b89a7cc2SEnji Cooper    size = "small",
218b89a7cc2SEnji Cooper    srcs = ["googletest-color-test.py"],
219b89a7cc2SEnji Cooper    data = [":googletest-color-test_"],
220b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
221b89a7cc2SEnji Cooper)
222b89a7cc2SEnji Cooper
223b89a7cc2SEnji Coopercc_binary(
224b89a7cc2SEnji Cooper    name = "googletest-env-var-test_",
225b89a7cc2SEnji Cooper    testonly = 1,
226b89a7cc2SEnji Cooper    srcs = ["googletest-env-var-test_.cc"],
227b89a7cc2SEnji Cooper    deps = ["//:gtest"],
228b89a7cc2SEnji Cooper)
229b89a7cc2SEnji Cooper
230b89a7cc2SEnji Cooperpy_test(
231b89a7cc2SEnji Cooper    name = "googletest-env-var-test",
232b89a7cc2SEnji Cooper    size = "medium",
233b89a7cc2SEnji Cooper    srcs = ["googletest-env-var-test.py"],
234b89a7cc2SEnji Cooper    data = [":googletest-env-var-test_"],
235b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
236b89a7cc2SEnji Cooper)
237b89a7cc2SEnji Cooper
238b89a7cc2SEnji Coopercc_binary(
23928f6c2f2SEnji Cooper    name = "googletest-failfast-unittest_",
24028f6c2f2SEnji Cooper    testonly = 1,
24128f6c2f2SEnji Cooper    srcs = ["googletest-failfast-unittest_.cc"],
24228f6c2f2SEnji Cooper    deps = ["//:gtest"],
24328f6c2f2SEnji Cooper)
24428f6c2f2SEnji Cooper
24528f6c2f2SEnji Cooperpy_test(
24628f6c2f2SEnji Cooper    name = "googletest-failfast-unittest",
24728f6c2f2SEnji Cooper    size = "medium",
24828f6c2f2SEnji Cooper    srcs = ["googletest-failfast-unittest.py"],
24928f6c2f2SEnji Cooper    data = [":googletest-failfast-unittest_"],
25028f6c2f2SEnji Cooper    deps = [":gtest_test_utils"],
25128f6c2f2SEnji Cooper)
25228f6c2f2SEnji Cooper
25328f6c2f2SEnji Coopercc_binary(
254b89a7cc2SEnji Cooper    name = "googletest-filter-unittest_",
255b89a7cc2SEnji Cooper    testonly = 1,
256b89a7cc2SEnji Cooper    srcs = ["googletest-filter-unittest_.cc"],
257b89a7cc2SEnji Cooper    deps = ["//:gtest"],
258b89a7cc2SEnji Cooper)
259b89a7cc2SEnji Cooper
260b89a7cc2SEnji Cooperpy_test(
261b89a7cc2SEnji Cooper    name = "googletest-filter-unittest",
262b89a7cc2SEnji Cooper    size = "medium",
263b89a7cc2SEnji Cooper    srcs = ["googletest-filter-unittest.py"],
264b89a7cc2SEnji Cooper    data = [":googletest-filter-unittest_"],
265b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
266b89a7cc2SEnji Cooper)
267b89a7cc2SEnji Cooper
26828f6c2f2SEnji Coopercc_binary(
26928f6c2f2SEnji Cooper    name = "googletest-global-environment-unittest_",
27028f6c2f2SEnji Cooper    testonly = 1,
27128f6c2f2SEnji Cooper    srcs = ["googletest-global-environment-unittest_.cc"],
27228f6c2f2SEnji Cooper    deps = ["//:gtest"],
27328f6c2f2SEnji Cooper)
27428f6c2f2SEnji Cooper
27528f6c2f2SEnji Cooperpy_test(
27628f6c2f2SEnji Cooper    name = "googletest-global-environment-unittest",
27728f6c2f2SEnji Cooper    size = "medium",
27828f6c2f2SEnji Cooper    srcs = ["googletest-global-environment-unittest.py"],
27928f6c2f2SEnji Cooper    data = [":googletest-global-environment-unittest_"],
28028f6c2f2SEnji Cooper    deps = [":gtest_test_utils"],
28128f6c2f2SEnji Cooper)
282b89a7cc2SEnji Cooper
283b89a7cc2SEnji Coopercc_binary(
284b89a7cc2SEnji Cooper    name = "googletest-break-on-failure-unittest_",
285b89a7cc2SEnji Cooper    testonly = 1,
286b89a7cc2SEnji Cooper    srcs = ["googletest-break-on-failure-unittest_.cc"],
287b89a7cc2SEnji Cooper    deps = ["//:gtest"],
288b89a7cc2SEnji Cooper)
289b89a7cc2SEnji Cooper
290b89a7cc2SEnji Cooperpy_test(
291b89a7cc2SEnji Cooper    name = "googletest-break-on-failure-unittest",
292b89a7cc2SEnji Cooper    size = "small",
293b89a7cc2SEnji Cooper    srcs = ["googletest-break-on-failure-unittest.py"],
294b89a7cc2SEnji Cooper    data = [":googletest-break-on-failure-unittest_"],
295b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
296b89a7cc2SEnji Cooper)
297b89a7cc2SEnji Cooper
298b89a7cc2SEnji Coopercc_test(
299b89a7cc2SEnji Cooper    name = "gtest_assert_by_exception_test",
300b89a7cc2SEnji Cooper    size = "small",
301b89a7cc2SEnji Cooper    srcs = ["gtest_assert_by_exception_test.cc"],
302b89a7cc2SEnji Cooper    deps = ["//:gtest"],
303b89a7cc2SEnji Cooper)
304b89a7cc2SEnji Cooper
305b89a7cc2SEnji Coopercc_binary(
306b89a7cc2SEnji Cooper    name = "googletest-throw-on-failure-test_",
307b89a7cc2SEnji Cooper    testonly = 1,
308b89a7cc2SEnji Cooper    srcs = ["googletest-throw-on-failure-test_.cc"],
309b89a7cc2SEnji Cooper    deps = ["//:gtest"],
310b89a7cc2SEnji Cooper)
311b89a7cc2SEnji Cooper
312b89a7cc2SEnji Cooperpy_test(
313b89a7cc2SEnji Cooper    name = "googletest-throw-on-failure-test",
314b89a7cc2SEnji Cooper    size = "small",
315b89a7cc2SEnji Cooper    srcs = ["googletest-throw-on-failure-test.py"],
316b89a7cc2SEnji Cooper    data = [":googletest-throw-on-failure-test_"],
317b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
318b89a7cc2SEnji Cooper)
319b89a7cc2SEnji Cooper
320b89a7cc2SEnji Coopercc_binary(
321b89a7cc2SEnji Cooper    name = "googletest-list-tests-unittest_",
322b89a7cc2SEnji Cooper    testonly = 1,
323b89a7cc2SEnji Cooper    srcs = ["googletest-list-tests-unittest_.cc"],
324b89a7cc2SEnji Cooper    deps = ["//:gtest"],
325b89a7cc2SEnji Cooper)
326b89a7cc2SEnji Cooper
327e9e2022eSEnji Coopercc_test(
32828f6c2f2SEnji Cooper    name = "gtest_skip_test",
32928f6c2f2SEnji Cooper    size = "small",
33028f6c2f2SEnji Cooper    srcs = ["gtest_skip_test.cc"],
33128f6c2f2SEnji Cooper    deps = ["//:gtest_main"],
33228f6c2f2SEnji Cooper)
33328f6c2f2SEnji Cooper
33428f6c2f2SEnji Coopercc_test(
335e9e2022eSEnji Cooper    name = "gtest_skip_in_environment_setup_test",
336e9e2022eSEnji Cooper    size = "small",
337e9e2022eSEnji Cooper    srcs = ["gtest_skip_in_environment_setup_test.cc"],
338e9e2022eSEnji Cooper    deps = ["//:gtest_main"],
339e9e2022eSEnji Cooper)
340e9e2022eSEnji Cooper
341b89a7cc2SEnji Cooperpy_test(
34228f6c2f2SEnji Cooper    name = "gtest_skip_check_output_test",
34328f6c2f2SEnji Cooper    size = "small",
34428f6c2f2SEnji Cooper    srcs = ["gtest_skip_check_output_test.py"],
34528f6c2f2SEnji Cooper    data = [":gtest_skip_test"],
34628f6c2f2SEnji Cooper    deps = [":gtest_test_utils"],
34728f6c2f2SEnji Cooper)
34828f6c2f2SEnji Cooper
34928f6c2f2SEnji Cooperpy_test(
35028f6c2f2SEnji Cooper    name = "gtest_skip_environment_check_output_test",
35128f6c2f2SEnji Cooper    size = "small",
35228f6c2f2SEnji Cooper    srcs = ["gtest_skip_environment_check_output_test.py"],
35328f6c2f2SEnji Cooper    data = [
35428f6c2f2SEnji Cooper        ":gtest_skip_in_environment_setup_test",
35528f6c2f2SEnji Cooper    ],
35628f6c2f2SEnji Cooper    deps = [":gtest_test_utils"],
35728f6c2f2SEnji Cooper)
35828f6c2f2SEnji Cooper
35928f6c2f2SEnji Cooperpy_test(
360b89a7cc2SEnji Cooper    name = "googletest-list-tests-unittest",
361b89a7cc2SEnji Cooper    size = "small",
362b89a7cc2SEnji Cooper    srcs = ["googletest-list-tests-unittest.py"],
363b89a7cc2SEnji Cooper    data = [":googletest-list-tests-unittest_"],
364b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
365b89a7cc2SEnji Cooper)
366b89a7cc2SEnji Cooper
367b89a7cc2SEnji Coopercc_binary(
368b89a7cc2SEnji Cooper    name = "googletest-shuffle-test_",
369b89a7cc2SEnji Cooper    srcs = ["googletest-shuffle-test_.cc"],
370b89a7cc2SEnji Cooper    deps = ["//:gtest"],
371b89a7cc2SEnji Cooper)
372b89a7cc2SEnji Cooper
373b89a7cc2SEnji Cooperpy_test(
374b89a7cc2SEnji Cooper    name = "googletest-shuffle-test",
375b89a7cc2SEnji Cooper    size = "small",
376b89a7cc2SEnji Cooper    srcs = ["googletest-shuffle-test.py"],
377b89a7cc2SEnji Cooper    data = [":googletest-shuffle-test_"],
378b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
379b89a7cc2SEnji Cooper)
380b89a7cc2SEnji Cooper
381b89a7cc2SEnji Coopercc_binary(
382b89a7cc2SEnji Cooper    name = "googletest-catch-exceptions-no-ex-test_",
383b89a7cc2SEnji Cooper    testonly = 1,
384b89a7cc2SEnji Cooper    srcs = ["googletest-catch-exceptions-test_.cc"],
385b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
386b89a7cc2SEnji Cooper)
387b89a7cc2SEnji Cooper
388b89a7cc2SEnji Coopercc_binary(
389b89a7cc2SEnji Cooper    name = "googletest-catch-exceptions-ex-test_",
390b89a7cc2SEnji Cooper    testonly = 1,
391b89a7cc2SEnji Cooper    srcs = ["googletest-catch-exceptions-test_.cc"],
392b89a7cc2SEnji Cooper    copts = ["-fexceptions"],
393b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
394b89a7cc2SEnji Cooper)
395b89a7cc2SEnji Cooper
396b89a7cc2SEnji Cooperpy_test(
397b89a7cc2SEnji Cooper    name = "googletest-catch-exceptions-test",
398b89a7cc2SEnji Cooper    size = "small",
399b89a7cc2SEnji Cooper    srcs = ["googletest-catch-exceptions-test.py"],
400b89a7cc2SEnji Cooper    data = [
401b89a7cc2SEnji Cooper        ":googletest-catch-exceptions-ex-test_",
402b89a7cc2SEnji Cooper        ":googletest-catch-exceptions-no-ex-test_",
403b89a7cc2SEnji Cooper    ],
404b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
405b89a7cc2SEnji Cooper)
406b89a7cc2SEnji Cooper
407b89a7cc2SEnji Coopercc_binary(
408b89a7cc2SEnji Cooper    name = "gtest_xml_output_unittest_",
409b89a7cc2SEnji Cooper    testonly = 1,
410b89a7cc2SEnji Cooper    srcs = ["gtest_xml_output_unittest_.cc"],
411b89a7cc2SEnji Cooper    deps = ["//:gtest"],
412b89a7cc2SEnji Cooper)
413b89a7cc2SEnji Cooper
414b89a7cc2SEnji Coopercc_test(
415b89a7cc2SEnji Cooper    name = "gtest_no_test_unittest",
416b89a7cc2SEnji Cooper    size = "small",
417b89a7cc2SEnji Cooper    srcs = ["gtest_no_test_unittest.cc"],
418b89a7cc2SEnji Cooper    deps = ["//:gtest"],
419b89a7cc2SEnji Cooper)
420b89a7cc2SEnji Cooper
421b89a7cc2SEnji Cooperpy_test(
422b89a7cc2SEnji Cooper    name = "gtest_xml_output_unittest",
423b89a7cc2SEnji Cooper    size = "small",
424b89a7cc2SEnji Cooper    srcs = [
425b89a7cc2SEnji Cooper        "gtest_xml_output_unittest.py",
426b89a7cc2SEnji Cooper        "gtest_xml_test_utils.py",
427b89a7cc2SEnji Cooper    ],
428b89a7cc2SEnji Cooper    args = select({
42928f6c2f2SEnji Cooper        "//:has_absl": [],
430b89a7cc2SEnji Cooper        "//conditions:default": ["--no_stacktrace_support"],
431b89a7cc2SEnji Cooper    }),
432b89a7cc2SEnji Cooper    data = [
433b89a7cc2SEnji Cooper        # We invoke gtest_no_test_unittest to verify the XML output
434b89a7cc2SEnji Cooper        # when the test program contains no test definition.
435b89a7cc2SEnji Cooper        ":gtest_no_test_unittest",
436b89a7cc2SEnji Cooper        ":gtest_xml_output_unittest_",
437b89a7cc2SEnji Cooper    ],
438b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
439b89a7cc2SEnji Cooper)
440b89a7cc2SEnji Cooper
441b89a7cc2SEnji Coopercc_binary(
442b89a7cc2SEnji Cooper    name = "gtest_xml_outfile1_test_",
443b89a7cc2SEnji Cooper    testonly = 1,
444b89a7cc2SEnji Cooper    srcs = ["gtest_xml_outfile1_test_.cc"],
445b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
446b89a7cc2SEnji Cooper)
447b89a7cc2SEnji Cooper
448b89a7cc2SEnji Coopercc_binary(
449b89a7cc2SEnji Cooper    name = "gtest_xml_outfile2_test_",
450b89a7cc2SEnji Cooper    testonly = 1,
451b89a7cc2SEnji Cooper    srcs = ["gtest_xml_outfile2_test_.cc"],
452b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
453b89a7cc2SEnji Cooper)
454b89a7cc2SEnji Cooper
455b89a7cc2SEnji Cooperpy_test(
456b89a7cc2SEnji Cooper    name = "gtest_xml_outfiles_test",
457b89a7cc2SEnji Cooper    size = "small",
458b89a7cc2SEnji Cooper    srcs = [
459b89a7cc2SEnji Cooper        "gtest_xml_outfiles_test.py",
460b89a7cc2SEnji Cooper        "gtest_xml_test_utils.py",
461b89a7cc2SEnji Cooper    ],
462b89a7cc2SEnji Cooper    data = [
463b89a7cc2SEnji Cooper        ":gtest_xml_outfile1_test_",
464b89a7cc2SEnji Cooper        ":gtest_xml_outfile2_test_",
465b89a7cc2SEnji Cooper    ],
466b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
467b89a7cc2SEnji Cooper)
468b89a7cc2SEnji Cooper
469b89a7cc2SEnji Coopercc_binary(
47028f6c2f2SEnji Cooper    name = "googletest-setuptestsuite-test_",
47128f6c2f2SEnji Cooper    testonly = 1,
47228f6c2f2SEnji Cooper    srcs = ["googletest-setuptestsuite-test_.cc"],
47328f6c2f2SEnji Cooper    deps = ["//:gtest_main"],
47428f6c2f2SEnji Cooper)
47528f6c2f2SEnji Cooper
47628f6c2f2SEnji Cooperpy_test(
47728f6c2f2SEnji Cooper    name = "googletest-setuptestsuite-test",
47828f6c2f2SEnji Cooper    size = "medium",
47928f6c2f2SEnji Cooper    srcs = ["googletest-setuptestsuite-test.py"],
48028f6c2f2SEnji Cooper    data = [":googletest-setuptestsuite-test_"],
48128f6c2f2SEnji Cooper    deps = [":gtest_test_utils"],
48228f6c2f2SEnji Cooper)
48328f6c2f2SEnji Cooper
48428f6c2f2SEnji Coopercc_binary(
485b89a7cc2SEnji Cooper    name = "googletest-uninitialized-test_",
486b89a7cc2SEnji Cooper    testonly = 1,
487b89a7cc2SEnji Cooper    srcs = ["googletest-uninitialized-test_.cc"],
488b89a7cc2SEnji Cooper    deps = ["//:gtest"],
489b89a7cc2SEnji Cooper)
490b89a7cc2SEnji Cooper
491b89a7cc2SEnji Cooperpy_test(
492b89a7cc2SEnji Cooper    name = "googletest-uninitialized-test",
493b89a7cc2SEnji Cooper    size = "medium",
494b89a7cc2SEnji Cooper    srcs = ["googletest-uninitialized-test.py"],
495b89a7cc2SEnji Cooper    data = ["googletest-uninitialized-test_"],
496b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
497b89a7cc2SEnji Cooper)
498b89a7cc2SEnji Cooper
499b89a7cc2SEnji Coopercc_binary(
500b89a7cc2SEnji Cooper    name = "gtest_testbridge_test_",
501b89a7cc2SEnji Cooper    testonly = 1,
502b89a7cc2SEnji Cooper    srcs = ["gtest_testbridge_test_.cc"],
503b89a7cc2SEnji Cooper    deps = ["//:gtest_main"],
504b89a7cc2SEnji Cooper)
505b89a7cc2SEnji Cooper
506b89a7cc2SEnji Cooper# Tests that filtering via testbridge works
507b89a7cc2SEnji Cooperpy_test(
508b89a7cc2SEnji Cooper    name = "gtest_testbridge_test",
509b89a7cc2SEnji Cooper    size = "small",
510b89a7cc2SEnji Cooper    srcs = ["gtest_testbridge_test.py"],
511b89a7cc2SEnji Cooper    data = [":gtest_testbridge_test_"],
512b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
513b89a7cc2SEnji Cooper)
514b89a7cc2SEnji Cooper
515b89a7cc2SEnji Cooperpy_test(
516b89a7cc2SEnji Cooper    name = "googletest-json-outfiles-test",
517b89a7cc2SEnji Cooper    size = "small",
518b89a7cc2SEnji Cooper    srcs = [
519b89a7cc2SEnji Cooper        "googletest-json-outfiles-test.py",
520b89a7cc2SEnji Cooper        "gtest_json_test_utils.py",
521b89a7cc2SEnji Cooper    ],
522b89a7cc2SEnji Cooper    data = [
523b89a7cc2SEnji Cooper        ":gtest_xml_outfile1_test_",
524b89a7cc2SEnji Cooper        ":gtest_xml_outfile2_test_",
525b89a7cc2SEnji Cooper    ],
526b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
527b89a7cc2SEnji Cooper)
528b89a7cc2SEnji Cooper
529b89a7cc2SEnji Cooperpy_test(
530b89a7cc2SEnji Cooper    name = "googletest-json-output-unittest",
531b89a7cc2SEnji Cooper    size = "medium",
532b89a7cc2SEnji Cooper    srcs = [
533b89a7cc2SEnji Cooper        "googletest-json-output-unittest.py",
534b89a7cc2SEnji Cooper        "gtest_json_test_utils.py",
535b89a7cc2SEnji Cooper    ],
53628f6c2f2SEnji Cooper    args = select({
53728f6c2f2SEnji Cooper        "//:has_absl": [],
53828f6c2f2SEnji Cooper        "//conditions:default": ["--no_stacktrace_support"],
53928f6c2f2SEnji Cooper    }),
540b89a7cc2SEnji Cooper    data = [
541b89a7cc2SEnji Cooper        # We invoke gtest_no_test_unittest to verify the JSON output
542b89a7cc2SEnji Cooper        # when the test program contains no test definition.
543b89a7cc2SEnji Cooper        ":gtest_no_test_unittest",
544b89a7cc2SEnji Cooper        ":gtest_xml_output_unittest_",
545b89a7cc2SEnji Cooper    ],
546b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
547b89a7cc2SEnji Cooper)
54828f6c2f2SEnji Cooper
549b89a7cc2SEnji Cooper# Verifies interaction of death tests and exceptions.
550b89a7cc2SEnji Coopercc_test(
551b89a7cc2SEnji Cooper    name = "googletest-death-test_ex_catch_test",
552b89a7cc2SEnji Cooper    size = "medium",
553b89a7cc2SEnji Cooper    srcs = ["googletest-death-test_ex_test.cc"],
554b89a7cc2SEnji Cooper    copts = ["-fexceptions"],
555b89a7cc2SEnji Cooper    defines = ["GTEST_ENABLE_CATCH_EXCEPTIONS_=1"],
556b89a7cc2SEnji Cooper    deps = ["//:gtest"],
557b89a7cc2SEnji Cooper)
558b89a7cc2SEnji Cooper
559b89a7cc2SEnji Coopercc_binary(
560b89a7cc2SEnji Cooper    name = "googletest-param-test-invalid-name1-test_",
561b89a7cc2SEnji Cooper    testonly = 1,
562b89a7cc2SEnji Cooper    srcs = ["googletest-param-test-invalid-name1-test_.cc"],
563b89a7cc2SEnji Cooper    deps = ["//:gtest"],
564b89a7cc2SEnji Cooper)
565b89a7cc2SEnji Cooper
566b89a7cc2SEnji Coopercc_binary(
567b89a7cc2SEnji Cooper    name = "googletest-param-test-invalid-name2-test_",
568b89a7cc2SEnji Cooper    testonly = 1,
569b89a7cc2SEnji Cooper    srcs = ["googletest-param-test-invalid-name2-test_.cc"],
570b89a7cc2SEnji Cooper    deps = ["//:gtest"],
571b89a7cc2SEnji Cooper)
572b89a7cc2SEnji Cooper
573b89a7cc2SEnji Cooperpy_test(
574b89a7cc2SEnji Cooper    name = "googletest-param-test-invalid-name1-test",
575b89a7cc2SEnji Cooper    size = "small",
576b89a7cc2SEnji Cooper    srcs = ["googletest-param-test-invalid-name1-test.py"],
577b89a7cc2SEnji Cooper    data = [":googletest-param-test-invalid-name1-test_"],
57828f6c2f2SEnji Cooper    tags = [
57928f6c2f2SEnji Cooper        "no_test_msvc2015",
58028f6c2f2SEnji Cooper        "no_test_msvc2017",
58128f6c2f2SEnji Cooper    ],
582b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
583b89a7cc2SEnji Cooper)
584b89a7cc2SEnji Cooper
585b89a7cc2SEnji Cooperpy_test(
586b89a7cc2SEnji Cooper    name = "googletest-param-test-invalid-name2-test",
587b89a7cc2SEnji Cooper    size = "small",
588b89a7cc2SEnji Cooper    srcs = ["googletest-param-test-invalid-name2-test.py"],
589b89a7cc2SEnji Cooper    data = [":googletest-param-test-invalid-name2-test_"],
59028f6c2f2SEnji Cooper    tags = [
59128f6c2f2SEnji Cooper        "no_test_msvc2015",
59228f6c2f2SEnji Cooper        "no_test_msvc2017",
59328f6c2f2SEnji Cooper    ],
594b89a7cc2SEnji Cooper    deps = [":gtest_test_utils"],
595b89a7cc2SEnji Cooper)
596