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