blob: 4977d1be373238a989e550e2b256471623930128 [file] [log] [blame]
mistergf63e2a12017-08-01 14:36:29 -04001package(default_visibility = ["//visibility:public"])
2
3licenses(["notice"])
4
5config_setting(
6 name = "win",
7 values = {"cpu": "x64_windows_msvc"},
8)
9
10cc_library(
11 name = "gmock",
12 srcs = glob(
13 include = [
14 "googlemock/src/*.cc",
15 "googlemock/include/gmock/**/*.h",
16 ],
17 exclude = [
18 "googlemock/src/gmock-all.cc",
19 ],
20 ),
21 hdrs = glob([
22 "googlemock/include/gmock/*.h",
23 ]),
24 includes = [
25 "googlemock",
26 "googlemock/include",
27 ],
28 linkopts = select({
29 ":win": [],
30 "//conditions:default": ["-pthread"],
31 }),
32 deps = [
33 ":gtest",
34 ],
35)
36
37cc_library(
38 name = "gtest",
39 srcs = glob(
40 include = [
41 "googletest/src/*.cc",
42 "googletest/src/*.h",
43 "googletest/include/gtest/**/*.h",
44 ],
45 exclude = [
46 "googletest/src/gtest-all.cc",
47 "googletest/src/gtest_main.cc",
48 ],
49 ),
50 hdrs = glob([
51 "googletest/include/gtest/*.h",
52 ]),
53 copts = select(
54 {
55 ":win": [],
56 "//conditions:default": ["-pthread"],
57 },
58 ),
59 includes = [
60 "googletest",
61 "googletest/include",
62 ],
63 linkopts = select({
64 ":win": [],
65 "//conditions:default": [
66 "-pthread",
67 ],
68 }),
69)
70
71cc_library(
72 name = "gtest_main",
73 srcs = glob(
74 include = [
75 "googletest/src/gtest_main.cc",
76 ],
77 ),
78 hdrs = glob([
79 "googletest/include/gtest/*.h",
80 "googletest/include/gtest/**/*.h",
81 ]),
82 includes = [
83 "googletest",
84 "googletest/include",
85 ],
86 deps = [":gmock"],
87)
88
misterg6615f7d2017-08-02 14:36:39 -040089""" gtest own tests """
mistergf63e2a12017-08-01 14:36:29 -040090
91#on windows exclude gtest-tuple.h and gtest-tuple_test.cc
92filegroup(
93 name = "win_only_test_files",
94 srcs = glob(
95 include = [
96 "googletest/test/gtest-*.cc",
97 "googletest/test/*.h",
98 "googletest/include/gtest/**/*.h",
99 ],
100 exclude = [
101 "googletest/src/gtest-unittest-api_test.cc",
102 "googletest/include/gtest/internal/gtest-tuple.h",
103 "googletest/test/gtest-tuple_test.cc",
104 "googletest/src/gtest-all.cc",
105 "googletest/test/gtest_all_test.cc",
106 "googletest/test/gtest-death-test_ex_test.cc",
107 "googletest/test/gtest-listener_test.cc",
108 "googletest/test/gtest-unittest-api_test.cc",
109 "googletest/test/gtest-param-test_test.cc",
110 ],
111 ),
112)
113
114filegroup(
115 name = "default_test_files",
116 srcs = glob(
117 include = [
118 "googletest/test/gtest-*.cc",
119 "googletest/test/*.h",
120 "googletest/include/gtest/**/*.h",
121 ],
122 exclude = [
123 "googletest/src/gtest-unittest-api_test.cc",
124 "googletest/src/gtest-all.cc",
125 "googletest/test/gtest_all_test.cc",
126 "googletest/test/gtest-death-test_ex_test.cc",
127 "googletest/test/gtest-listener_test.cc",
128 "googletest/test/gtest-unittest-api_test.cc",
129 "googletest/test/gtest-param-test_test.cc",
130 ],
131 ),
132)
133
134cc_test(
135 name = "gtest_all_test",
136 size = "small",
137 srcs = select({
138 ":win": [":win_only_test_files"],
139 "//conditions:default": [":default_test_files"],
140 }),
141 copts = select({
142 ":win": ["-DGTEST_USE_OWN_TR1_TUPLE=0"],
143 "//conditions:default": ["-DGTEST_USE_OWN_TR1_TUPLE=1"],
144 }),
145 includes = [
146 "googletest",
147 "googletest/include",
148 "googletest/include/internal",
149 "googletest/test",
150 ],
151 linkopts = select({
152 ":win": [],
153 "//conditions:default": [
154 "-pthread",
155 ],
156 }),
157 deps = [":gtest_main"],
158)
159
misterg6615f7d2017-08-02 14:36:39 -0400160#These googletest tests have their own main()
mistergf63e2a12017-08-01 14:36:29 -0400161cc_test(
162 name = "gtest-death-test",
163 size = "small",
164 srcs = [
165 "googletest/test/gtest-death-test_ex_test.cc",
166 ],
167 copts = [
168 "-DGTEST_ENABLE_CATCH_EXCEPTIONS_=1",
169 ],
170 deps = [
171 ":gtest_main",
172 ],
173)
174
175cc_test(
176 name = "gtest-listener_test",
177 size = "small",
178 srcs = [
179 "googletest/test/gtest-listener_test.cc",
180 ],
181 deps = [
182 ":gtest_main",
183 ],
184)
185
186cc_test(
187 name = "gtest-unittest-api_test",
188 size = "small",
189 srcs = [
190 "googletest/test/gtest-unittest-api_test.cc",
191 ],
192 deps = [
193 ":gtest_main",
194 ],
195)
196
197cc_test(
198 name = "gtest-param-test_test",
199 size = "small",
200 srcs = [
201 "googletest/test/gtest-param-test2_test.cc",
202 "googletest/test/gtest-param-test_test.cc",
203 "googletest/test/gtest-param-test_test.h",
204 ],
205 deps = [
206 ":gtest_main",
207 ],
208)
209
misterg6615f7d2017-08-02 14:36:39 -0400210# The following rules build samples of how to use gTest.
mistergf63e2a12017-08-01 14:36:29 -0400211cc_library(
mistergb3edada2017-08-01 14:50:59 -0400212 name = "gtest_sample_lib",
mistergf63e2a12017-08-01 14:36:29 -0400213 srcs = [
214 "googletest/samples/sample1.cc",
215 "googletest/samples/sample2.cc",
216 "googletest/samples/sample4.cc",
217 ],
218 hdrs = [
219 "googletest/samples/prime_tables.h",
220 "googletest/samples/sample1.h",
221 "googletest/samples/sample2.h",
222 "googletest/samples/sample3-inl.h",
223 "googletest/samples/sample4.h",
224 ],
mistergf63e2a12017-08-01 14:36:29 -0400225)
226
227cc_test(
mistergb3edada2017-08-01 14:50:59 -0400228 name = "gtest_samples",
mistergf63e2a12017-08-01 14:36:29 -0400229 size = "small",
230 srcs = glob(
misterg6615f7d2017-08-02 14:36:39 -0400231 # All Samples here except
232 # Sample9 is designed to fail on purpose
233 # Sample10 can be run with --check_for_leaks command line flag, should be separate
mistergf63e2a12017-08-01 14:36:29 -0400234 include = [
misterg6615f7d2017-08-02 14:36:39 -0400235 "googletest/samples/sample1_unitest.cc",
236 "googletest/samples/sample2_unitest.cc",
237 "googletest/samples/sample3_unitest.cc",
238 "googletest/samples/sample4_unitest.cc",
239 "googletest/samples/sample5_unitest.cc",
240 "googletest/samples/sample6_unitest.cc",
241 "googletest/samples/sample7_unitest.cc",
242 "googletest/samples/sample8_unitest.cc",
mistergf63e2a12017-08-01 14:36:29 -0400243 ],
244 ),
245 includes = [
246 "googletest/samples",
247 ],
248 deps = [
mistergf63e2a12017-08-01 14:36:29 -0400249 ":gtest_main",
misterg6615f7d2017-08-02 14:36:39 -0400250 ":gtest_sample_lib",
mistergf63e2a12017-08-01 14:36:29 -0400251 ],
252)
253
mistergf63e2a12017-08-01 14:36:29 -0400254cc_test(
mistergb3edada2017-08-01 14:50:59 -0400255 name = "gtest_sample9",
mistergf63e2a12017-08-01 14:36:29 -0400256 size = "small",
257 srcs = glob(
258 include = [
259 "googletest/samples/sample9_unittest.cc",
260 ],
261 ),
262 includes = [
263 "googletest/samples",
264 ],
265 deps = [
mistergb3edada2017-08-01 14:50:59 -0400266 ":gtest_main",
mistergf63e2a12017-08-01 14:36:29 -0400267 ],
268)
269
270cc_test(
mistergb3edada2017-08-01 14:50:59 -0400271 name = "gtest_sample10",
mistergf63e2a12017-08-01 14:36:29 -0400272 size = "small",
273 srcs = glob(
274 include = [
275 "googletest/samples/sample10_unittest.cc",
276 ],
277 ),
278 includes = [
279 "googletest/samples",
280 ],
281 deps = [
mistergb3edada2017-08-01 14:50:59 -0400282 ":gtest_main",
mistergf63e2a12017-08-01 14:36:29 -0400283 ],
284)