• 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)
16
17pw_add_module_config(pw_unit_test_CONFIG)
18
19pw_add_library(pw_unit_test.config INTERFACE
20  HEADERS
21    public/pw_unit_test/config.h
22  PUBLIC_INCLUDES
23    public
24  PUBLIC_DEPS
25    ${pw_unit_test_CONFIG}
26    pw_polyfill
27)
28
29add_library(pw_unit_test INTERFACE)
30target_include_directories(pw_unit_test
31  INTERFACE
32    public
33)
34
35# Temporarily redirect deprecated googletest pointer to new pointer.
36if("${pw_unit_test_GOOGLETEST_BACKEND}" STREQUAL "pw_third_party.googletest")
37  message(DEPRECATION
38    "pw_unit_test_GOOGLETEST_BACKEND is deprecated. Set pw_unit_test_BACKEND "
39    "to pw_unit_test.googletest instead."
40  )
41  target_link_libraries(pw_unit_test
42    INTERFACE
43      pw_unit_test.googletest
44  )
45else()
46  target_link_libraries(pw_unit_test
47    INTERFACE
48      "${pw_unit_test_BACKEND}"
49  )
50endif()
51
52pw_add_library(pw_unit_test.light STATIC
53  HEADERS
54    light_public_overrides/pw_unit_test/framework_backend.h
55  SOURCES
56    framework_light.cc
57  PUBLIC_DEPS
58    pw_bytes.alignment
59    pw_polyfill
60    pw_preprocessor
61    pw_string
62    pw_unit_test.config
63  PUBLIC_INCLUDES
64    light_public_overrides
65    public
66    public_overrides
67)
68
69pw_add_library(pw_unit_test.googletest INTERFACE
70  HEADERS
71    googletest_public_overrides/pw_unit_test/framework_backend.h
72  PUBLIC_INCLUDES
73    googletest_public_overrides
74  PUBLIC_DEPS
75    pw_third_party.googletest
76)
77
78pw_add_library(pw_unit_test.googletest_handler_adapter STATIC
79  SOURCES
80    googletest_handler_adapter.cc
81  PUBLIC_DEPS
82    pw_unit_test.event_handler
83    pw_third_party.googletest
84  PUBLIC_INCLUDES
85    public
86)
87
88pw_add_test(pw_unit_test.framework_test
89    SOURCES
90      framework_test.cc
91    PRIVATE_DEPS
92      pw_assert
93      pw_status
94    GROUPS
95      pw_unit_test
96  )
97
98if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.light")
99  pw_add_test(pw_unit_test.framework_light_test
100    SOURCES
101      framework_light_test.cc
102    PRIVATE_DEPS
103      pw_string
104    GROUPS
105      pw_unit_test
106  )
107endif()
108
109pw_add_library(pw_unit_test.static_library_support STATIC
110  HEADERS
111    public/pw_unit_test/static_library_support.h
112  PUBLIC_INCLUDES
113    public
114  SOURCES
115    static_library_support.cc
116  PUBLIC_DEPS
117    pw_unit_test.light
118)
119
120pw_add_library(pw_unit_test.event_handler INTERFACE
121  HEADERS
122    public/pw_unit_test/event_handler.h
123  PUBLIC_INCLUDES
124    public
125)
126
127pw_add_library(pw_unit_test.googletest_style_event_handler STATIC
128  HEADERS
129    public/pw_unit_test/googletest_style_event_handler.h
130  PUBLIC_INCLUDES
131    public
132  PUBLIC_DEPS
133    pw_unit_test.event_handler
134    pw_preprocessor
135  SOURCES
136    googletest_style_event_handler.cc
137)
138
139if(${pw_unit_test_BACKEND} STREQUAL "pw_unit_test.googletest")
140  pw_add_library(pw_unit_test.googletest_test_matchers INTERFACE
141    HEADERS
142      public/pw_unit_test/googletest_test_matchers.h
143    PUBLIC_INCLUDES
144      public
145    PUBLIC_DEPS
146      pw_result
147      pw_status
148      pw_third_party.googletest
149  )
150  pw_add_test(pw_unit_test.googletest_test_matchers_test
151    SOURCES
152      googletest_test_matchers_test.cc
153    PRIVATE_DEPS
154      pw_unit_test.googletest_test_matchers
155    GROUPS
156      pw_unit_test
157  )
158endif()
159
160pw_add_library(pw_unit_test.simple_printing_main STATIC
161  SOURCES
162    simple_printing_main.cc
163    simple_printing_event_handler.cc
164  PRIVATE_DEPS
165    pw_unit_test
166    pw_unit_test.googletest_style_event_handler
167    pw_preprocessor
168    pw_string
169    pw_sys_io
170)
171
172pw_add_library(pw_unit_test.logging_event_handler STATIC
173  HEADERS
174    public/pw_unit_test/logging_event_handler.h
175  PUBLIC_INCLUDES
176    public
177  PUBLIC_DEPS
178    pw_log
179    pw_unit_test.googletest_style_event_handler
180  SOURCES
181    logging_event_handler.cc
182)
183
184pw_add_library(pw_unit_test.logging_main STATIC
185  SOURCES
186    logging_main.cc
187  PRIVATE_DEPS
188    pw_unit_test.logging_event_handler
189    pw_unit_test
190)
191
192pw_add_library(pw_unit_test.multi_event_handler INTERFACE
193  HEADERS
194    public/pw_unit_test/multi_event_handler.h
195  PUBLIC_INCLUDES
196    public
197  PUBLIC_DEPS
198    pw_unit_test.event_handler
199)
200
201pw_add_test(pw_unit_test.multi_event_handler_test
202  SOURCES
203    multi_event_handler_test.cc
204  PRIVATE_DEPS
205    pw_unit_test.multi_event_handler
206  GROUPS
207    pw_unit_test
208)
209
210pw_add_library(pw_unit_test.test_record_event_handler INTERFACE
211  HEADERS
212    public/pw_unit_test/internal/test_record_trie.h
213    public/pw_unit_test/test_record_event_handler.h
214  PUBLIC_INCLUDES
215    public
216  PUBLIC_DEPS
217    pw_assert
218    pw_json.builder
219    pw_unit_test.event_handler
220)
221
222pw_add_test(pw_unit_test.test_record_event_handler_test
223  SOURCES
224    test_record_event_handler_test.cc
225  PRIVATE_DEPS
226    pw_unit_test.test_record_event_handler
227  GROUPS
228    pw_unit_test
229)
230