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 15import("//build_overrides/pigweed.gni") 16 17import("$dir_pw_build/target_types.gni") 18import("$dir_pw_docgen/docs.gni") 19import("$dir_pw_protobuf_compiler/proto.gni") 20import("$dir_pw_unit_test/test.gni") 21 22config("default_config") { 23 include_dirs = [ 24 "public", 25 "public_overrides", 26 ] 27} 28 29# pw_unit_test core library. 30pw_source_set("pw_unit_test") { 31 public_configs = [ ":default_config" ] 32 public_deps = [ 33 dir_pw_polyfill, 34 dir_pw_preprocessor, 35 dir_pw_string, 36 ] 37 public = [ 38 "public/pw_unit_test/event_handler.h", 39 "public/pw_unit_test/framework.h", 40 "public_overrides/gtest/gtest.h", 41 ] 42 sources = [ "framework.cc" ] 43} 44 45# Library providing an event handler which outputs human-readable text. 46pw_source_set("simple_printing_event_handler") { 47 public_deps = [ 48 ":pw_unit_test", 49 "$dir_pw_preprocessor", 50 ] 51 public = [ "public/pw_unit_test/simple_printing_event_handler.h" ] 52 sources = [ "simple_printing_event_handler.cc" ] 53} 54 55# Library providing a standard desktop main function for the pw_unit_test 56# framework. Unit test files can link against this library to build runnable 57# unit test executables. 58pw_source_set("simple_printing_main") { 59 public_deps = [ ":pw_unit_test" ] 60 deps = [ 61 ":simple_printing_event_handler", 62 "$dir_pw_sys_io", 63 ] 64 sources = [ "simple_printing_main.cc" ] 65} 66 67# Library providing an event handler which logs using pw_log. 68pw_source_set("logging_event_handler") { 69 public_deps = [ 70 ":pw_unit_test", 71 "$dir_pw_log", 72 "$dir_pw_preprocessor", 73 ] 74 public = [ "public/pw_unit_test/logging_event_handler.h" ] 75 sources = [ "logging_event_handler.cc" ] 76} 77 78pw_source_set("logging_main") { 79 public_deps = [ ":pw_unit_test" ] 80 deps = [ 81 ":logging_event_handler", 82 "$dir_pw_sys_io", 83 ] 84 sources = [ "logging_main.cc" ] 85} 86 87pw_source_set("rpc_service") { 88 public_configs = [ ":default_config" ] 89 public_deps = [ 90 ":pw_unit_test", 91 ":unit_test_proto.pwpb", 92 ":unit_test_proto.raw_rpc", 93 "$dir_pw_containers:vector", 94 ] 95 deps = [ dir_pw_log ] 96 public = [ 97 "public/pw_unit_test/internal/rpc_event_handler.h", 98 "public/pw_unit_test/unit_test_service.h", 99 ] 100 sources = [ 101 "rpc_event_handler.cc", 102 "unit_test_service.cc", 103 ] 104} 105 106pw_source_set("rpc_main") { 107 public_deps = [ ":pw_unit_test" ] 108 deps = [ 109 ":rpc_service", 110 "$dir_pw_rpc/system_server", 111 dir_pw_log, 112 ] 113 sources = [ "rpc_main.cc" ] 114} 115 116pw_proto_library("unit_test_proto") { 117 sources = [ "pw_unit_test_proto/unit_test.proto" ] 118} 119 120pw_doc_group("docs") { 121 sources = [ "docs.rst" ] 122} 123 124pw_test("framework_test") { 125 sources = [ "framework_test.cc" ] 126} 127 128pw_test_group("tests") { 129 tests = [ ":framework_test" ] 130} 131