xref: /aosp_15_r20/external/pigweed/pw_rpc/BUILD.gn (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2021 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerimport("//build_overrides/pigweed.gni")
16*61c4878aSAndroid Build Coastguard Worker
17*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_bloat/bloat.gni")
18*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/python.gni")
19*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/python_action.gni")
20*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/python_action_test.gni")
21*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_build/target_types.gni")
22*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_chrono/backend.gni")
23*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_compilation_testing/negative_compilation_test.gni")
24*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_docgen/docs.gni")
25*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_protobuf_compiler/proto.gni")
26*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_sync/backend.gni")
27*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_third_party/nanopb/nanopb.gni")
28*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_thread/backend.gni")
29*61c4878aSAndroid Build Coastguard Workerimport("$dir_pw_unit_test/test.gni")
30*61c4878aSAndroid Build Coastguard Workerimport("config.gni")
31*61c4878aSAndroid Build Coastguard Workerimport("internal/integration_test_ports.gni")
32*61c4878aSAndroid Build Coastguard Worker
33*61c4878aSAndroid Build Coastguard Workerconfig("public_include_path") {
34*61c4878aSAndroid Build Coastguard Worker  include_dirs = [ "public" ]
35*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
36*61c4878aSAndroid Build Coastguard Worker}
37*61c4878aSAndroid Build Coastguard Worker
38*61c4878aSAndroid Build Coastguard Workerconfig("disable_global_mutex_config") {
39*61c4878aSAndroid Build Coastguard Worker  defines = [
40*61c4878aSAndroid Build Coastguard Worker    "PW_RPC_USE_GLOBAL_MUTEX=0",
41*61c4878aSAndroid Build Coastguard Worker    "PW_RPC_YIELD_MODE=PW_RPC_YIELD_MODE_BUSY_LOOP",
42*61c4878aSAndroid Build Coastguard Worker  ]
43*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
44*61c4878aSAndroid Build Coastguard Worker}
45*61c4878aSAndroid Build Coastguard Worker
46*61c4878aSAndroid Build Coastguard Worker# Set pw_rpc_CONFIG to this to disable the global mutex. If additional options
47*61c4878aSAndroid Build Coastguard Worker# are needed, a config target that sets those can depend on this.
48*61c4878aSAndroid Build Coastguard Workergroup("disable_global_mutex") {
49*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":disable_global_mutex_config" ]
50*61c4878aSAndroid Build Coastguard Worker}
51*61c4878aSAndroid Build Coastguard Worker
52*61c4878aSAndroid Build Coastguard Workerconfig("global_mutex_config") {
53*61c4878aSAndroid Build Coastguard Worker  defines = [ "PW_RPC_USE_GLOBAL_MUTEX=1" ]
54*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
55*61c4878aSAndroid Build Coastguard Worker}
56*61c4878aSAndroid Build Coastguard Worker
57*61c4878aSAndroid Build Coastguard Worker# Set pw_rpc_CONFIG to this to always enable the global mutex. The mutex is
58*61c4878aSAndroid Build Coastguard Worker# enabled by default, so this is a no-op.
59*61c4878aSAndroid Build Coastguard Workergroup("use_global_mutex") {
60*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":global_mutex_config" ]
61*61c4878aSAndroid Build Coastguard Worker}
62*61c4878aSAndroid Build Coastguard Worker
63*61c4878aSAndroid Build Coastguard Workerconfig("dynamic_allocation_config") {
64*61c4878aSAndroid Build Coastguard Worker  defines = [ "PW_RPC_DYNAMIC_ALLOCATION=1" ]
65*61c4878aSAndroid Build Coastguard Worker  visibility = [ ":*" ]
66*61c4878aSAndroid Build Coastguard Worker}
67*61c4878aSAndroid Build Coastguard Worker
68*61c4878aSAndroid Build Coastguard Worker# Use this for pw_rpc_CONFIG to enable dynamic allocation.
69*61c4878aSAndroid Build Coastguard Workerpw_source_set("use_dynamic_allocation") {
70*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":dynamic_allocation_config" ]
71*61c4878aSAndroid Build Coastguard Worker}
72*61c4878aSAndroid Build Coastguard Worker
73*61c4878aSAndroid Build Coastguard Workerpw_source_set("config") {
74*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_rpc/internal/config.h" ]
75*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
76*61c4878aSAndroid Build Coastguard Worker  public_deps = [ pw_rpc_CONFIG ]
77*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
78*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
79*61c4878aSAndroid Build Coastguard Worker}
80*61c4878aSAndroid Build Coastguard Worker
81*61c4878aSAndroid Build Coastguard Workerpw_source_set("log_config") {
82*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_rpc/internal/log_config.h" ]
83*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
84*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":config" ]
85*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
86*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
87*61c4878aSAndroid Build Coastguard Worker}
88*61c4878aSAndroid Build Coastguard Worker
89*61c4878aSAndroid Build Coastguard Workerpw_source_set("server") {
90*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
91*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":common" ]
92*61c4878aSAndroid Build Coastguard Worker  deps = [
93*61c4878aSAndroid Build Coastguard Worker    ":log_config",
94*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
95*61c4878aSAndroid Build Coastguard Worker  ]
96*61c4878aSAndroid Build Coastguard Worker  public = [
97*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/server.h",
98*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/service.h",
99*61c4878aSAndroid Build Coastguard Worker  ]
100*61c4878aSAndroid Build Coastguard Worker  sources = [
101*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/hash.h",
102*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method.h",
103*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method_lookup.h",
104*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method_union.h",
105*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/server_call.h",
106*61c4878aSAndroid Build Coastguard Worker    "server.cc",
107*61c4878aSAndroid Build Coastguard Worker    "server_call.cc",
108*61c4878aSAndroid Build Coastguard Worker    "service.cc",
109*61c4878aSAndroid Build Coastguard Worker  ]
110*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
111*61c4878aSAndroid Build Coastguard Worker  allow_circular_includes_from = [ ":common" ]
112*61c4878aSAndroid Build Coastguard Worker}
113*61c4878aSAndroid Build Coastguard Worker
114*61c4878aSAndroid Build Coastguard Workerpw_source_set("client") {
115*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
116*61c4878aSAndroid Build Coastguard Worker  public_deps = [
117*61c4878aSAndroid Build Coastguard Worker    ":common",
118*61c4878aSAndroid Build Coastguard Worker    dir_pw_result,
119*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
120*61c4878aSAndroid Build Coastguard Worker  ]
121*61c4878aSAndroid Build Coastguard Worker  deps = [
122*61c4878aSAndroid Build Coastguard Worker    ":log_config",
123*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
124*61c4878aSAndroid Build Coastguard Worker    dir_pw_preprocessor,
125*61c4878aSAndroid Build Coastguard Worker  ]
126*61c4878aSAndroid Build Coastguard Worker  public = [
127*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/client.h",
128*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/client_call.h",
129*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/service_client.h",
130*61c4878aSAndroid Build Coastguard Worker  ]
131*61c4878aSAndroid Build Coastguard Worker  sources = [
132*61c4878aSAndroid Build Coastguard Worker    "client.cc",
133*61c4878aSAndroid Build Coastguard Worker    "client_call.cc",
134*61c4878aSAndroid Build Coastguard Worker  ]
135*61c4878aSAndroid Build Coastguard Worker  allow_circular_includes_from = [ ":common" ]
136*61c4878aSAndroid Build Coastguard Worker}
137*61c4878aSAndroid Build Coastguard Worker
138*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_server") {
139*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
140*61c4878aSAndroid Build Coastguard Worker  public_deps = [
141*61c4878aSAndroid Build Coastguard Worker    ":client",
142*61c4878aSAndroid Build Coastguard Worker    ":server",
143*61c4878aSAndroid Build Coastguard Worker  ]
144*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/client_server.h" ]
145*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_server.cc" ]
146*61c4878aSAndroid Build Coastguard Worker}
147*61c4878aSAndroid Build Coastguard Worker
148*61c4878aSAndroid Build Coastguard Workerpw_source_set("synchronous_client_api") {
149*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
150*61c4878aSAndroid Build Coastguard Worker  public_deps = [
151*61c4878aSAndroid Build Coastguard Worker    ":client",
152*61c4878aSAndroid Build Coastguard Worker    ":common",
153*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_chrono:system_clock",
154*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:timed_thread_notification",
155*61c4878aSAndroid Build Coastguard Worker  ]
156*61c4878aSAndroid Build Coastguard Worker  public = [
157*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/synchronous_call.h",
158*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/synchronous_call_result.h",
159*61c4878aSAndroid Build Coastguard Worker  ]
160*61c4878aSAndroid Build Coastguard Worker  sources = [ "public/pw_rpc/internal/synchronous_call_impl.h" ]
161*61c4878aSAndroid Build Coastguard Worker}
162*61c4878aSAndroid Build Coastguard Worker
163*61c4878aSAndroid Build Coastguard Worker# Classes shared by the server and client.
164*61c4878aSAndroid Build Coastguard Workerpw_source_set("common") {
165*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
166*61c4878aSAndroid Build Coastguard Worker  public_deps = [
167*61c4878aSAndroid Build Coastguard Worker    ":config",
168*61c4878aSAndroid Build Coastguard Worker    ":protos.pwpb",
169*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:intrusive_list",
170*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:lock_annotations",
171*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_toolchain:no_destructor",
172*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
173*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
174*61c4878aSAndroid Build Coastguard Worker    dir_pw_function,
175*61c4878aSAndroid Build Coastguard Worker    dir_pw_polyfill,
176*61c4878aSAndroid Build Coastguard Worker    dir_pw_span,
177*61c4878aSAndroid Build Coastguard Worker    dir_pw_status,
178*61c4878aSAndroid Build Coastguard Worker  ]
179*61c4878aSAndroid Build Coastguard Worker
180*61c4878aSAndroid Build Coastguard Worker  if (pw_sync_MUTEX_BACKEND != "") {
181*61c4878aSAndroid Build Coastguard Worker    public_deps += [ "$dir_pw_sync:mutex" ]
182*61c4878aSAndroid Build Coastguard Worker  }
183*61c4878aSAndroid Build Coastguard Worker
184*61c4878aSAndroid Build Coastguard Worker  deps = [
185*61c4878aSAndroid Build Coastguard Worker    ":log_config",
186*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
187*61c4878aSAndroid Build Coastguard Worker  ]
188*61c4878aSAndroid Build Coastguard Worker
189*61c4878aSAndroid Build Coastguard Worker  # pw_rpc needs a way to yield the current thread. Depending on its
190*61c4878aSAndroid Build Coastguard Worker  # configuration, it may need either pw_thread:sleep or pw_thread:yield.
191*61c4878aSAndroid Build Coastguard Worker  if (pw_thread_SLEEP_BACKEND != "") {
192*61c4878aSAndroid Build Coastguard Worker    deps += [ "$dir_pw_thread:sleep" ]
193*61c4878aSAndroid Build Coastguard Worker  }
194*61c4878aSAndroid Build Coastguard Worker  if (pw_thread_YIELD_BACKEND != "") {
195*61c4878aSAndroid Build Coastguard Worker    deps += [ "$dir_pw_thread:yield" ]
196*61c4878aSAndroid Build Coastguard Worker  }
197*61c4878aSAndroid Build Coastguard Worker
198*61c4878aSAndroid Build Coastguard Worker  public = [
199*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/channel.h",
200*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/method_id.h",
201*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/method_info.h",
202*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/packet_meta.h",
203*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/service_id.h",
204*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/writer.h",
205*61c4878aSAndroid Build Coastguard Worker  ]
206*61c4878aSAndroid Build Coastguard Worker  sources = [
207*61c4878aSAndroid Build Coastguard Worker    "call.cc",
208*61c4878aSAndroid Build Coastguard Worker    "channel.cc",
209*61c4878aSAndroid Build Coastguard Worker    "channel_list.cc",
210*61c4878aSAndroid Build Coastguard Worker    "endpoint.cc",
211*61c4878aSAndroid Build Coastguard Worker    "packet.cc",
212*61c4878aSAndroid Build Coastguard Worker    "packet_meta.cc",
213*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/call.h",
214*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/call_context.h",
215*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/channel_list.h",
216*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/encoding_buffer.h",
217*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/endpoint.h",
218*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/grpc.h",
219*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/lock.h",
220*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method_info.h",
221*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/packet.h",
222*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/method_type.h",
223*61c4878aSAndroid Build Coastguard Worker  ]
224*61c4878aSAndroid Build Coastguard Worker  friend = [ "./*" ]
225*61c4878aSAndroid Build Coastguard Worker}
226*61c4878aSAndroid Build Coastguard Worker
227*61c4878aSAndroid Build Coastguard Workerpw_source_set("benchmark") {
228*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
229*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":protos.raw_rpc" ]
230*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/benchmark.h" ]
231*61c4878aSAndroid Build Coastguard Worker  sources = [ "benchmark.cc" ]
232*61c4878aSAndroid Build Coastguard Worker}
233*61c4878aSAndroid Build Coastguard Worker
234*61c4878aSAndroid Build Coastguard Workerpw_source_set("fake_channel_output") {
235*61c4878aSAndroid Build Coastguard Worker  public = [
236*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/fake_channel_output.h",
237*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/payloads_view.h",
238*61c4878aSAndroid Build Coastguard Worker  ]
239*61c4878aSAndroid Build Coastguard Worker  sources = [ "fake_channel_output.cc" ]
240*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
241*61c4878aSAndroid Build Coastguard Worker  public_deps = [
242*61c4878aSAndroid Build Coastguard Worker    ":common",
243*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:filtered_view",
244*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:vector",
245*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:wrapped_iterator",
246*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
247*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
248*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
249*61c4878aSAndroid Build Coastguard Worker    dir_pw_function,
250*61c4878aSAndroid Build Coastguard Worker  ]
251*61c4878aSAndroid Build Coastguard Worker  deps = [ ":log_config" ]
252*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
253*61c4878aSAndroid Build Coastguard Worker}
254*61c4878aSAndroid Build Coastguard Worker
255*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_server_testing") {
256*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/internal/client_server_testing.h" ]
257*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
258*61c4878aSAndroid Build Coastguard Worker  public_deps = [
259*61c4878aSAndroid Build Coastguard Worker    ":client_server",
260*61c4878aSAndroid Build Coastguard Worker    ":fake_channel_output",
261*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes",
262*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
263*61c4878aSAndroid Build Coastguard Worker  ]
264*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
265*61c4878aSAndroid Build Coastguard Worker}
266*61c4878aSAndroid Build Coastguard Worker
267*61c4878aSAndroid Build Coastguard Workerpw_source_set("client_server_testing_threaded") {
268*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/internal/client_server_testing_threaded.h" ]
269*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
270*61c4878aSAndroid Build Coastguard Worker  public_deps = [
271*61c4878aSAndroid Build Coastguard Worker    ":client_server_testing",
272*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_bytes",
273*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
274*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
275*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:lock_annotations",
276*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:mutex",
277*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:thread",
278*61c4878aSAndroid Build Coastguard Worker  ]
279*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
280*61c4878aSAndroid Build Coastguard Worker}
281*61c4878aSAndroid Build Coastguard Worker
282*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_helpers") {
283*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/test_helpers.h" ]
284*61c4878aSAndroid Build Coastguard Worker  public_deps = [
285*61c4878aSAndroid Build Coastguard Worker    ":fake_channel_output",
286*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_chrono:system_clock",
287*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
288*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:counting_semaphore",
289*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:yield",
290*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
291*61c4878aSAndroid Build Coastguard Worker  ]
292*61c4878aSAndroid Build Coastguard Worker}
293*61c4878aSAndroid Build Coastguard Worker
294*61c4878aSAndroid Build Coastguard Worker# thread_testing target is kept for backward compatibility.
295*61c4878aSAndroid Build Coastguard Worker# New code should use test_helpers instead.
296*61c4878aSAndroid Build Coastguard Workerpw_source_set("thread_testing") {
297*61c4878aSAndroid Build Coastguard Worker  public = [ "public/pw_rpc/thread_testing.h" ]
298*61c4878aSAndroid Build Coastguard Worker  public_deps = [ ":test_helpers" ]
299*61c4878aSAndroid Build Coastguard Worker}
300*61c4878aSAndroid Build Coastguard Worker
301*61c4878aSAndroid Build Coastguard Workerpw_source_set("test_utils") {
302*61c4878aSAndroid Build Coastguard Worker  public = [
303*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/fake_channel_output.h",
304*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method_impl_tester.h",
305*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/method_info_tester.h",
306*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/test_method_context.h",
307*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/internal/test_utils.h",
308*61c4878aSAndroid Build Coastguard Worker    "pw_rpc_private/fake_server_reader_writer.h",
309*61c4878aSAndroid Build Coastguard Worker    "pw_rpc_private/test_method.h",
310*61c4878aSAndroid Build Coastguard Worker  ]
311*61c4878aSAndroid Build Coastguard Worker  public_configs = [ ":public_include_path" ]
312*61c4878aSAndroid Build Coastguard Worker  public_deps = [
313*61c4878aSAndroid Build Coastguard Worker    ":client",
314*61c4878aSAndroid Build Coastguard Worker    ":server",
315*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_containers:vector",
316*61c4878aSAndroid Build Coastguard Worker    "raw:fake_channel_output",
317*61c4878aSAndroid Build Coastguard Worker    "raw:server_api",
318*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
319*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
320*61c4878aSAndroid Build Coastguard Worker  ]
321*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
322*61c4878aSAndroid Build Coastguard Worker}
323*61c4878aSAndroid Build Coastguard Worker
324*61c4878aSAndroid Build Coastguard Workerpw_source_set("integration_testing") {
325*61c4878aSAndroid Build Coastguard Worker  testonly = pw_unit_test_TESTONLY
326*61c4878aSAndroid Build Coastguard Worker  public = [
327*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/integration_test_socket_client.h",
328*61c4878aSAndroid Build Coastguard Worker    "public/pw_rpc/integration_testing.h",
329*61c4878aSAndroid Build Coastguard Worker  ]
330*61c4878aSAndroid Build Coastguard Worker  sources = [ "integration_testing.cc" ]
331*61c4878aSAndroid Build Coastguard Worker  public_deps = [
332*61c4878aSAndroid Build Coastguard Worker    ":client",
333*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_hdlc:decoder",
334*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_hdlc:default_addresses",
335*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_hdlc:rpc_channel_output",
336*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_stream:socket_stream",
337*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_unit_test:logging",
338*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
339*61c4878aSAndroid Build Coastguard Worker    dir_pw_function,
340*61c4878aSAndroid Build Coastguard Worker    dir_pw_unit_test,
341*61c4878aSAndroid Build Coastguard Worker  ]
342*61c4878aSAndroid Build Coastguard Worker  deps = [ dir_pw_log ]
343*61c4878aSAndroid Build Coastguard Worker}
344*61c4878aSAndroid Build Coastguard Worker
345*61c4878aSAndroid Build Coastguard Workerpw_executable("test_rpc_server") {
346*61c4878aSAndroid Build Coastguard Worker  sources = [ "test_rpc_server.cc" ]
347*61c4878aSAndroid Build Coastguard Worker  deps = [
348*61c4878aSAndroid Build Coastguard Worker    ":benchmark",
349*61c4878aSAndroid Build Coastguard Worker    ":log_config",
350*61c4878aSAndroid Build Coastguard Worker    "system_server",
351*61c4878aSAndroid Build Coastguard Worker    "system_server:socket",
352*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
353*61c4878aSAndroid Build Coastguard Worker  ]
354*61c4878aSAndroid Build Coastguard Worker}
355*61c4878aSAndroid Build Coastguard Worker
356*61c4878aSAndroid Build Coastguard Workerpw_executable("client_integration_test") {
357*61c4878aSAndroid Build Coastguard Worker  testonly = pw_unit_test_TESTONLY
358*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_integration_test.cc" ]
359*61c4878aSAndroid Build Coastguard Worker  deps = [
360*61c4878aSAndroid Build Coastguard Worker    ":client",
361*61c4878aSAndroid Build Coastguard Worker    ":integration_testing",
362*61c4878aSAndroid Build Coastguard Worker    ":protos.raw_rpc",
363*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
364*61c4878aSAndroid Build Coastguard Worker    dir_pw_log,
365*61c4878aSAndroid Build Coastguard Worker    dir_pw_unit_test,
366*61c4878aSAndroid Build Coastguard Worker  ]
367*61c4878aSAndroid Build Coastguard Worker
368*61c4878aSAndroid Build Coastguard Worker  deps += [ "pwpb:client_integration_test" ]
369*61c4878aSAndroid Build Coastguard Worker
370*61c4878aSAndroid Build Coastguard Worker  if (dir_pw_third_party_nanopb != "") {
371*61c4878aSAndroid Build Coastguard Worker    deps += [ "nanopb:client_integration_test" ]
372*61c4878aSAndroid Build Coastguard Worker  }
373*61c4878aSAndroid Build Coastguard Worker}
374*61c4878aSAndroid Build Coastguard Worker
375*61c4878aSAndroid Build Coastguard Workerpw_python_action_test("cpp_client_server_integration_test") {
376*61c4878aSAndroid Build Coastguard Worker  testonly = pw_unit_test_TESTONLY
377*61c4878aSAndroid Build Coastguard Worker  script = "py/pw_rpc/testing.py"
378*61c4878aSAndroid Build Coastguard Worker  args = [
379*61c4878aSAndroid Build Coastguard Worker    "--server",
380*61c4878aSAndroid Build Coastguard Worker    "<TARGET_FILE(:test_rpc_server)>",
381*61c4878aSAndroid Build Coastguard Worker    "--client",
382*61c4878aSAndroid Build Coastguard Worker    "<TARGET_FILE(:client_integration_test)>",
383*61c4878aSAndroid Build Coastguard Worker    "--",
384*61c4878aSAndroid Build Coastguard Worker    "$pw_rpc_CPP_CLIENT_INTEGRATION_TEST_PORT",
385*61c4878aSAndroid Build Coastguard Worker  ]
386*61c4878aSAndroid Build Coastguard Worker  deps = [
387*61c4878aSAndroid Build Coastguard Worker    ":client_integration_test",
388*61c4878aSAndroid Build Coastguard Worker    ":test_rpc_server",
389*61c4878aSAndroid Build Coastguard Worker  ]
390*61c4878aSAndroid Build Coastguard Worker  tags = [ "integration" ]
391*61c4878aSAndroid Build Coastguard Worker}
392*61c4878aSAndroid Build Coastguard Worker
393*61c4878aSAndroid Build Coastguard Workerpw_proto_library("protos") {
394*61c4878aSAndroid Build Coastguard Worker  sources = [
395*61c4878aSAndroid Build Coastguard Worker    "benchmark.proto",
396*61c4878aSAndroid Build Coastguard Worker    "echo.proto",
397*61c4878aSAndroid Build Coastguard Worker    "internal/packet.proto",
398*61c4878aSAndroid Build Coastguard Worker  ]
399*61c4878aSAndroid Build Coastguard Worker  inputs = [
400*61c4878aSAndroid Build Coastguard Worker    "benchmark.options",
401*61c4878aSAndroid Build Coastguard Worker    "benchmark.pwpb_options",
402*61c4878aSAndroid Build Coastguard Worker    "echo.options",
403*61c4878aSAndroid Build Coastguard Worker    "echo.pwpb_options",
404*61c4878aSAndroid Build Coastguard Worker  ]
405*61c4878aSAndroid Build Coastguard Worker  python_package = "py"
406*61c4878aSAndroid Build Coastguard Worker  prefix = "pw_rpc"
407*61c4878aSAndroid Build Coastguard Worker}
408*61c4878aSAndroid Build Coastguard Worker
409*61c4878aSAndroid Build Coastguard Workerpw_doc_group("docs") {
410*61c4878aSAndroid Build Coastguard Worker  sources = [
411*61c4878aSAndroid Build Coastguard Worker    "cpp.rst",
412*61c4878aSAndroid Build Coastguard Worker    "design.rst",
413*61c4878aSAndroid Build Coastguard Worker    "docs.rst",
414*61c4878aSAndroid Build Coastguard Worker    "guides.rst",
415*61c4878aSAndroid Build Coastguard Worker    "libraries.rst",
416*61c4878aSAndroid Build Coastguard Worker    "protocol.rst",
417*61c4878aSAndroid Build Coastguard Worker  ]
418*61c4878aSAndroid Build Coastguard Worker  inputs = [
419*61c4878aSAndroid Build Coastguard Worker    "Kconfig",
420*61c4878aSAndroid Build Coastguard Worker    "benchmark.proto",
421*61c4878aSAndroid Build Coastguard Worker    "echo.proto",
422*61c4878aSAndroid Build Coastguard Worker    "internal/packet.proto",
423*61c4878aSAndroid Build Coastguard Worker  ]
424*61c4878aSAndroid Build Coastguard Worker  group_deps = [
425*61c4878aSAndroid Build Coastguard Worker    "nanopb:docs",
426*61c4878aSAndroid Build Coastguard Worker    "pwpb:docs",
427*61c4878aSAndroid Build Coastguard Worker    "py:docs",
428*61c4878aSAndroid Build Coastguard Worker    "ts:docs",
429*61c4878aSAndroid Build Coastguard Worker  ]
430*61c4878aSAndroid Build Coastguard Worker  report_deps = [ ":server_size" ]
431*61c4878aSAndroid Build Coastguard Worker}
432*61c4878aSAndroid Build Coastguard Worker
433*61c4878aSAndroid Build Coastguard Workerpw_size_diff("server_size") {
434*61c4878aSAndroid Build Coastguard Worker  title = "Pigweed RPC server size report"
435*61c4878aSAndroid Build Coastguard Worker
436*61c4878aSAndroid Build Coastguard Worker  binaries = [
437*61c4878aSAndroid Build Coastguard Worker    {
438*61c4878aSAndroid Build Coastguard Worker      target = "size_report:server_only"
439*61c4878aSAndroid Build Coastguard Worker      base = "size_report:base"
440*61c4878aSAndroid Build Coastguard Worker      label = "Server by itself"
441*61c4878aSAndroid Build Coastguard Worker    },
442*61c4878aSAndroid Build Coastguard Worker  ]
443*61c4878aSAndroid Build Coastguard Worker
444*61c4878aSAndroid Build Coastguard Worker  if (dir_pw_third_party_nanopb != "") {
445*61c4878aSAndroid Build Coastguard Worker    binaries += [
446*61c4878aSAndroid Build Coastguard Worker      {
447*61c4878aSAndroid Build Coastguard Worker        target = "size_report:server_with_echo_service"
448*61c4878aSAndroid Build Coastguard Worker        base = "size_report:base_with_nanopb"
449*61c4878aSAndroid Build Coastguard Worker        label = "Server with a registered nanopb EchoService"
450*61c4878aSAndroid Build Coastguard Worker      },
451*61c4878aSAndroid Build Coastguard Worker    ]
452*61c4878aSAndroid Build Coastguard Worker  }
453*61c4878aSAndroid Build Coastguard Worker}
454*61c4878aSAndroid Build Coastguard Worker
455*61c4878aSAndroid Build Coastguard Workerpw_test_group("tests") {
456*61c4878aSAndroid Build Coastguard Worker  tests = [
457*61c4878aSAndroid Build Coastguard Worker    ":call_test",
458*61c4878aSAndroid Build Coastguard Worker    ":callback_test",
459*61c4878aSAndroid Build Coastguard Worker    ":channel_test",
460*61c4878aSAndroid Build Coastguard Worker    ":client_server_test",
461*61c4878aSAndroid Build Coastguard Worker    ":test_helpers_test",
462*61c4878aSAndroid Build Coastguard Worker    ":fake_channel_output_test",
463*61c4878aSAndroid Build Coastguard Worker    ":method_test",
464*61c4878aSAndroid Build Coastguard Worker    ":ids_test",
465*61c4878aSAndroid Build Coastguard Worker    ":packet_test",
466*61c4878aSAndroid Build Coastguard Worker    ":packet_meta_test",
467*61c4878aSAndroid Build Coastguard Worker    ":server_test",
468*61c4878aSAndroid Build Coastguard Worker    ":service_test",
469*61c4878aSAndroid Build Coastguard Worker  ]
470*61c4878aSAndroid Build Coastguard Worker  group_deps = [
471*61c4878aSAndroid Build Coastguard Worker    "fuzz:tests",
472*61c4878aSAndroid Build Coastguard Worker    "nanopb:tests",
473*61c4878aSAndroid Build Coastguard Worker    "pwpb:tests",
474*61c4878aSAndroid Build Coastguard Worker    "raw:tests",
475*61c4878aSAndroid Build Coastguard Worker  ]
476*61c4878aSAndroid Build Coastguard Worker}
477*61c4878aSAndroid Build Coastguard Worker
478*61c4878aSAndroid Build Coastguard Workerpw_proto_library("test_protos") {
479*61c4878aSAndroid Build Coastguard Worker  sources = [
480*61c4878aSAndroid Build Coastguard Worker    "pw_rpc_test_protos/no_package.proto",
481*61c4878aSAndroid Build Coastguard Worker    "pw_rpc_test_protos/test.proto",
482*61c4878aSAndroid Build Coastguard Worker  ]
483*61c4878aSAndroid Build Coastguard Worker  inputs = [ "pw_rpc_test_protos/test.options" ]
484*61c4878aSAndroid Build Coastguard Worker  visibility = [ "./*" ]
485*61c4878aSAndroid Build Coastguard Worker}
486*61c4878aSAndroid Build Coastguard Worker
487*61c4878aSAndroid Build Coastguard Workerpw_test("call_test") {
488*61c4878aSAndroid Build Coastguard Worker  deps = [
489*61c4878aSAndroid Build Coastguard Worker    ":server",
490*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
491*61c4878aSAndroid Build Coastguard Worker  ]
492*61c4878aSAndroid Build Coastguard Worker  sources = [ "call_test.cc" ]
493*61c4878aSAndroid Build Coastguard Worker
494*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
495*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
496*61c4878aSAndroid Build Coastguard Worker}
497*61c4878aSAndroid Build Coastguard Worker
498*61c4878aSAndroid Build Coastguard Workerpw_test("callback_test") {
499*61c4878aSAndroid Build Coastguard Worker  enable_if = pw_thread_THREAD_BACKEND == "$dir_pw_thread_stl:thread"
500*61c4878aSAndroid Build Coastguard Worker  deps = [
501*61c4878aSAndroid Build Coastguard Worker    ":client",
502*61c4878aSAndroid Build Coastguard Worker    ":server",
503*61c4878aSAndroid Build Coastguard Worker    ":test_protos.raw_rpc",
504*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:binary_semaphore",
505*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:non_portable_test_thread_options",
506*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:sleep",
507*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread:yield",
508*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_thread_stl:non_portable_test_thread_options",
509*61c4878aSAndroid Build Coastguard Worker    "raw:client_testing",
510*61c4878aSAndroid Build Coastguard Worker  ]
511*61c4878aSAndroid Build Coastguard Worker  sources = [ "callback_test.cc" ]
512*61c4878aSAndroid Build Coastguard Worker
513*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
514*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
515*61c4878aSAndroid Build Coastguard Worker}
516*61c4878aSAndroid Build Coastguard Worker
517*61c4878aSAndroid Build Coastguard Workerpw_test("channel_test") {
518*61c4878aSAndroid Build Coastguard Worker  deps = [
519*61c4878aSAndroid Build Coastguard Worker    ":server",
520*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
521*61c4878aSAndroid Build Coastguard Worker  ]
522*61c4878aSAndroid Build Coastguard Worker  sources = [ "channel_test.cc" ]
523*61c4878aSAndroid Build Coastguard Worker
524*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
525*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
526*61c4878aSAndroid Build Coastguard Worker}
527*61c4878aSAndroid Build Coastguard Worker
528*61c4878aSAndroid Build Coastguard Workerpw_python_action("generate_ids_test") {
529*61c4878aSAndroid Build Coastguard Worker  outputs = [ "$target_gen_dir/generated_ids_test.cc" ]
530*61c4878aSAndroid Build Coastguard Worker
531*61c4878aSAndroid Build Coastguard Worker  script = "py/tests/ids_test.py"
532*61c4878aSAndroid Build Coastguard Worker  args = [ "--generate-cc-test" ] + rebase_path(outputs, root_build_dir)
533*61c4878aSAndroid Build Coastguard Worker  python_deps = [
534*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_build/py",
535*61c4878aSAndroid Build Coastguard Worker    "py",
536*61c4878aSAndroid Build Coastguard Worker  ]
537*61c4878aSAndroid Build Coastguard Worker}
538*61c4878aSAndroid Build Coastguard Worker
539*61c4878aSAndroid Build Coastguard Workerpw_test("ids_test") {
540*61c4878aSAndroid Build Coastguard Worker  deps = [ ":server" ]
541*61c4878aSAndroid Build Coastguard Worker  source_gen_deps = [ ":generate_ids_test" ]
542*61c4878aSAndroid Build Coastguard Worker
543*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
544*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
545*61c4878aSAndroid Build Coastguard Worker}
546*61c4878aSAndroid Build Coastguard Worker
547*61c4878aSAndroid Build Coastguard Workerpw_test("packet_test") {
548*61c4878aSAndroid Build Coastguard Worker  deps = [
549*61c4878aSAndroid Build Coastguard Worker    ":server",
550*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_fuzzer:fuzztest",
551*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
552*61c4878aSAndroid Build Coastguard Worker    dir_pw_protobuf,
553*61c4878aSAndroid Build Coastguard Worker  ]
554*61c4878aSAndroid Build Coastguard Worker  sources = [ "packet_test.cc" ]
555*61c4878aSAndroid Build Coastguard Worker
556*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
557*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
558*61c4878aSAndroid Build Coastguard Worker}
559*61c4878aSAndroid Build Coastguard Worker
560*61c4878aSAndroid Build Coastguard Workerpw_test("packet_meta_test") {
561*61c4878aSAndroid Build Coastguard Worker  deps = [
562*61c4878aSAndroid Build Coastguard Worker    ":server",
563*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_fuzzer:fuzztest",
564*61c4878aSAndroid Build Coastguard Worker    dir_pw_bytes,
565*61c4878aSAndroid Build Coastguard Worker  ]
566*61c4878aSAndroid Build Coastguard Worker  sources = [ "packet_meta_test.cc" ]
567*61c4878aSAndroid Build Coastguard Worker
568*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
569*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
570*61c4878aSAndroid Build Coastguard Worker}
571*61c4878aSAndroid Build Coastguard Worker
572*61c4878aSAndroid Build Coastguard Workerpw_test("service_test") {
573*61c4878aSAndroid Build Coastguard Worker  deps = [
574*61c4878aSAndroid Build Coastguard Worker    ":protos.pwpb",
575*61c4878aSAndroid Build Coastguard Worker    ":server",
576*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
577*61c4878aSAndroid Build Coastguard Worker  ]
578*61c4878aSAndroid Build Coastguard Worker  sources = [ "service_test.cc" ]
579*61c4878aSAndroid Build Coastguard Worker
580*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
581*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
582*61c4878aSAndroid Build Coastguard Worker}
583*61c4878aSAndroid Build Coastguard Worker
584*61c4878aSAndroid Build Coastguard Workerpw_test("client_server_test") {
585*61c4878aSAndroid Build Coastguard Worker  deps = [
586*61c4878aSAndroid Build Coastguard Worker    ":client_server",
587*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
588*61c4878aSAndroid Build Coastguard Worker    "raw:server_api",
589*61c4878aSAndroid Build Coastguard Worker  ]
590*61c4878aSAndroid Build Coastguard Worker  sources = [ "client_server_test.cc" ]
591*61c4878aSAndroid Build Coastguard Worker
592*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
593*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
594*61c4878aSAndroid Build Coastguard Worker}
595*61c4878aSAndroid Build Coastguard Worker
596*61c4878aSAndroid Build Coastguard Workerpw_test("method_test") {
597*61c4878aSAndroid Build Coastguard Worker  deps = [
598*61c4878aSAndroid Build Coastguard Worker    ":server",
599*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
600*61c4878aSAndroid Build Coastguard Worker  ]
601*61c4878aSAndroid Build Coastguard Worker  sources = [ "method_test.cc" ]
602*61c4878aSAndroid Build Coastguard Worker
603*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
604*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
605*61c4878aSAndroid Build Coastguard Worker}
606*61c4878aSAndroid Build Coastguard Worker
607*61c4878aSAndroid Build Coastguard Workerpw_test("server_test") {
608*61c4878aSAndroid Build Coastguard Worker  deps = [
609*61c4878aSAndroid Build Coastguard Worker    ":protos.pwpb",
610*61c4878aSAndroid Build Coastguard Worker    ":server",
611*61c4878aSAndroid Build Coastguard Worker    ":test_utils",
612*61c4878aSAndroid Build Coastguard Worker    dir_pw_assert,
613*61c4878aSAndroid Build Coastguard Worker  ]
614*61c4878aSAndroid Build Coastguard Worker  sources = [ "server_test.cc" ]
615*61c4878aSAndroid Build Coastguard Worker
616*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
617*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
618*61c4878aSAndroid Build Coastguard Worker}
619*61c4878aSAndroid Build Coastguard Worker
620*61c4878aSAndroid Build Coastguard Workerpw_test("fake_channel_output_test") {
621*61c4878aSAndroid Build Coastguard Worker  deps = [ ":test_utils" ]
622*61c4878aSAndroid Build Coastguard Worker  sources = [ "fake_channel_output_test.cc" ]
623*61c4878aSAndroid Build Coastguard Worker
624*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
625*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
626*61c4878aSAndroid Build Coastguard Worker}
627*61c4878aSAndroid Build Coastguard Worker
628*61c4878aSAndroid Build Coastguard Workerpw_test("test_helpers_test") {
629*61c4878aSAndroid Build Coastguard Worker  deps = [
630*61c4878aSAndroid Build Coastguard Worker    ":test_helpers",
631*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_result",
632*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_status",
633*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:interrupt_spin_lock",
634*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:lock_annotations",
635*61c4878aSAndroid Build Coastguard Worker    "$dir_pw_sync:timed_thread_notification",
636*61c4878aSAndroid Build Coastguard Worker    "pwpb:client_testing",
637*61c4878aSAndroid Build Coastguard Worker    "pwpb:echo_service",
638*61c4878aSAndroid Build Coastguard Worker    "pwpb:server_api",
639*61c4878aSAndroid Build Coastguard Worker  ]
640*61c4878aSAndroid Build Coastguard Worker  sources = [ "test_helpers_test.cc" ]
641*61c4878aSAndroid Build Coastguard Worker  enable_if = pw_sync_TIMED_THREAD_NOTIFICATION_BACKEND != "" &&
642*61c4878aSAndroid Build Coastguard Worker              pw_sync_COUNTING_SEMAPHORE_BACKEND != "" &&
643*61c4878aSAndroid Build Coastguard Worker              pw_chrono_SYSTEM_CLOCK_BACKEND != ""
644*61c4878aSAndroid Build Coastguard Worker
645*61c4878aSAndroid Build Coastguard Worker  # TODO: b/259746255 - Remove this when everything compiles with -Wconversion.
646*61c4878aSAndroid Build Coastguard Worker  configs = [ "$dir_pw_build:conversion_warnings" ]
647*61c4878aSAndroid Build Coastguard Worker}
648