• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2020 The Pigweed Authors
2#
3# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4# use this file except in compliance with the License. You may obtain a copy of
5# the License at
6#
7#     https://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12# License for the specific language governing permissions and limitations under
13# the License.
14
15include($ENV{PW_ROOT}/pw_build/pigweed.cmake)
16include($ENV{PW_ROOT}/pw_protobuf_compiler/proto.cmake)
17
18include($ENV{PW_ROOT}/pw_unit_test/backend.cmake)
19
20pw_add_module_config(pw_unit_test_CONFIG)
21
22pw_add_library(pw_unit_test.config INTERFACE
23  HEADERS
24    public/pw_unit_test/config.h
25  PUBLIC_INCLUDES
26    public
27  PUBLIC_DEPS
28    ${pw_unit_test_CONFIG}
29    pw_polyfill
30)
31
32add_library(pw_unit_test INTERFACE)
33target_include_directories(pw_unit_test
34  INTERFACE
35    public
36)
37
38# Temporarily redirect deprecated googletest pointer to new pointer.
39target_link_libraries(pw_unit_test
40  INTERFACE
41    "${pw_unit_test_BACKEND}"
42)
43
44pw_add_library(pw_unit_test.light STATIC
45  HEADERS
46    light_public_overrides/pw_unit_test/framework_backend.h
47  SOURCES
48    framework_light.cc
49  PUBLIC_DEPS
50    pw_bytes.alignment
51    pw_polyfill
52    pw_preprocessor
53    pw_result
54    pw_status
55    pw_string.builder
56    pw_unit_test.config
57    pw_unit_test.event_handler
58  PRIVATE_DEPS
59    pw_assert
60  PUBLIC_INCLUDES
61    light_public_overrides
62    public
63    public_overrides
64)
65
66pw_add_library(pw_unit_test.googletest INTERFACE
67  HEADERS
68    googletest_public_overrides/pw_unit_test/framework_backend.h
69  PUBLIC_INCLUDES
70    googletest_public_overrides
71  PUBLIC_DEPS
72    pw_third_party.googletest
73    pw_result
74    pw_status
75)
76
77pw_add_library(pw_unit_test.googletest_handler_adapter STATIC
78  SOURCES
79    googletest_handler_adapter.cc
80  PUBLIC_DEPS
81    pw_unit_test.event_handler
82    pw_third_party.googletest
83  PUBLIC_INCLUDES
84    public
85)
86
87pw_add_library(pw_unit_test.fuzztest INTERFACE
88  PUBLIC_DEPS
89    pw_fuzzer.fuzztest
90    pw_unit_test.googletest
91)
92
93pw_add_test(pw_unit_test.framework_test
94    SOURCES
95      framework_test.cc
96    PRIVATE_DEPS
97      pw_assert
98      pw_status
99    GROUPS
100      pw_unit_test
101  )
102
103if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.light")
104  pw_add_test(pw_unit_test.framework_light_test
105    SOURCES
106      framework_light_test.cc
107    PRIVATE_DEPS
108      pw_string
109    GROUPS
110      pw_unit_test
111  )
112endif()
113
114pw_add_library(pw_unit_test.static_library_support STATIC
115  HEADERS
116    public/pw_unit_test/static_library_support.h
117  PUBLIC_INCLUDES
118    public
119  SOURCES
120    static_library_support.cc
121  PUBLIC_DEPS
122    pw_unit_test.light
123)
124
125pw_add_library(pw_unit_test.event_handler INTERFACE
126  HEADERS
127    public/pw_unit_test/event_handler.h
128  PUBLIC_INCLUDES
129    public
130)
131
132pw_add_library(pw_unit_test.status_macros INTERFACE
133  HEADERS
134    public/pw_unit_test/status_macros.h
135  PUBLIC_INCLUDES
136    public
137  PUBLIC_DEPS
138    pw_status
139    pw_third_party.fuchsia.stdcompat
140)
141
142pw_add_library(pw_unit_test.googletest_style_event_handler STATIC
143  HEADERS
144    public/pw_unit_test/googletest_style_event_handler.h
145  PUBLIC_INCLUDES
146    public
147  PUBLIC_DEPS
148    pw_unit_test.event_handler
149    pw_preprocessor
150  SOURCES
151    googletest_style_event_handler.cc
152)
153
154if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.googletest")
155  pw_add_library(pw_unit_test.googletest_test_matchers INTERFACE
156    HEADERS
157      public/pw_unit_test/googletest_test_matchers.h
158    PUBLIC_INCLUDES
159      public
160    PUBLIC_DEPS
161      pw_result
162      pw_status
163      pw_third_party.googletest
164  )
165  pw_add_test(pw_unit_test.googletest_test_matchers_test
166    SOURCES
167      googletest_test_matchers_test.cc
168    PRIVATE_DEPS
169      pw_unit_test.googletest_test_matchers
170    GROUPS
171      pw_unit_test
172  )
173endif()
174
175pw_add_library(pw_unit_test.simple_printing_main STATIC
176  SOURCES
177    simple_printing_main.cc
178    simple_printing_event_handler.cc
179  PRIVATE_DEPS
180    pw_unit_test
181    pw_unit_test.googletest_style_event_handler
182    pw_preprocessor
183    pw_string
184    pw_sys_io
185)
186
187pw_add_library(pw_unit_test.logging_event_handler STATIC
188  HEADERS
189    public/pw_unit_test/logging_event_handler.h
190  PUBLIC_INCLUDES
191    public
192  PUBLIC_DEPS
193    pw_log
194    pw_unit_test.googletest_style_event_handler
195  SOURCES
196    logging_event_handler.cc
197)
198
199pw_add_library(pw_unit_test.logging_main STATIC
200  SOURCES
201    logging_main.cc
202  PRIVATE_DEPS
203    pw_unit_test.logging_event_handler
204    pw_unit_test
205)
206
207pw_add_library(pw_unit_test.constexpr INTERFACE
208  HEADERS
209    public/pw_unit_test/constexpr.h
210  PUBLIC_INCLUDES
211    public
212  PUBLIC_DEPS
213    pw_preprocessor
214    pw_third_party.fuchsia.stdcompat
215)
216
217pw_add_test(pw_unit_test.constexpr_test
218  SOURCES
219    constexpr_test.cc
220  PRIVATE_DEPS
221    pw_compilation_testing._pigweed_only_negative_compilation
222    pw_unit_test.constexpr
223  GROUPS
224    pw_unit_test
225)
226
227pw_add_library(pw_unit_test.multi_event_handler INTERFACE
228  HEADERS
229    public/pw_unit_test/multi_event_handler.h
230  PUBLIC_INCLUDES
231    public
232  PUBLIC_DEPS
233    pw_unit_test.event_handler
234)
235
236pw_add_test(pw_unit_test.multi_event_handler_test
237  SOURCES
238    multi_event_handler_test.cc
239  PRIVATE_DEPS
240    pw_unit_test.multi_event_handler
241  GROUPS
242    pw_unit_test
243)
244
245pw_add_library(pw_unit_test.test_record_event_handler INTERFACE
246  HEADERS
247    public/pw_unit_test/internal/test_record_trie.h
248    public/pw_unit_test/test_record_event_handler.h
249  PUBLIC_INCLUDES
250    public
251  PUBLIC_DEPS
252    pw_assert
253    pw_json.builder
254    pw_unit_test.event_handler
255)
256
257pw_add_test(pw_unit_test.test_record_event_handler_test
258  SOURCES
259    test_record_event_handler_test.cc
260  PRIVATE_DEPS
261    pw_unit_test.test_record_event_handler
262  GROUPS
263    pw_unit_test
264)
265
266pw_proto_library(pw_unit_test.unit_test_proto
267  SOURCES
268    pw_unit_test_proto/unit_test.proto
269)
270
271if("${pw_unit_test_BACKEND}" STREQUAL "pw_unit_test.light")
272  pw_add_library(pw_unit_test.rpc_service STATIC
273    PUBLIC_DEPS
274      pw_unit_test.config
275      pw_unit_test.event_handler
276      pw_unit_test
277      pw_unit_test.unit_test_proto.pwpb
278      pw_unit_test.unit_test_proto.raw_rpc
279      pw_containers.vector
280    PRIVATE_DEPS
281      pw_log
282    PUBLIC_INCLUDES
283      public
284      rpc_light_public
285    HEADERS
286      public/pw_unit_test/unit_test_service.h
287      rpc_light_public/pw_unit_test/internal/rpc_event_handler.h
288    SOURCES
289      unit_test_service.cc
290      rpc_light_event_handler.cc
291  )
292else()
293  pw_add_library(pw_unit_test.rpc_service STATIC
294    PUBLIC_DEPS
295      pw_unit_test.config
296      pw_unit_test.event_handler
297      pw_unit_test
298      pw_unit_test.unit_test_proto.pwpb
299      pw_unit_test.unit_test_proto.raw_rpc
300      pw_containers.vector
301    PRIVATE_DEPS
302      pw_log
303    PUBLIC_INCLUDES
304      public
305      rpc_gtest_public
306    HEADERS
307      public/pw_unit_test/unit_test_service.h
308      rpc_light_public/pw_unit_test/internal/rpc_event_handler.h
309      rpc_gtest_public/pw_unit_test/internal/rpc_event_handler.h
310    SOURCES
311      unit_test_service.cc
312      rpc_gtest_event_handler.cc
313  )
314endif()
315