• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright 2022 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
15load(
16    "//pw_build:pigweed.bzl",
17    "pw_cc_test",
18)
19load(
20    "//pw_build:selects.bzl",
21    "TARGET_COMPATIBLE_WITH_HOST_SELECT",
22)
23
24package(default_visibility = ["//visibility:public"])
25
26licenses(["notice"])
27
28cc_library(
29    name = "server_api",
30    srcs = [
31        "server_reader_writer.cc",
32    ],
33    hdrs = [
34        "public/pw_rpc/pwpb/internal/method.h",
35        "public/pw_rpc/pwpb/internal/method_union.h",
36        "public/pw_rpc/pwpb/server_reader_writer.h",
37    ],
38    includes = ["public"],
39    deps = [
40        ":common",
41        "//pw_rpc/raw:server_api",
42    ],
43)
44
45cc_library(
46    name = "client_api",
47    hdrs = [
48        "public/pw_rpc/pwpb/client_reader_writer.h",
49    ],
50    includes = ["public"],
51    deps = [
52        ":common",
53    ],
54)
55
56cc_library(
57    name = "common",
58    hdrs = [
59        "public/pw_rpc/pwpb/internal/common.h",
60        "public/pw_rpc/pwpb/serde.h",
61        "public/pw_rpc/pwpb/server_reader_writer.h",
62    ],
63    includes = ["public"],
64    deps = [
65        "//pw_rpc",
66    ],
67)
68
69cc_library(
70    name = "test_method_context",
71    hdrs = [
72        "public/pw_rpc/pwpb/fake_channel_output.h",
73        "public/pw_rpc/pwpb/test_method_context.h",
74    ],
75    includes = ["public"],
76    deps = [
77        ":common",
78        ":server_api",
79        "//pw_assert",
80        "//pw_containers",
81        "//pw_rpc:internal_test_utils",
82        "//pw_span",
83    ],
84)
85
86cc_library(
87    name = "client_testing",
88    hdrs = [
89        "public/pw_rpc/pwpb/client_testing.h",
90    ],
91    includes = ["public"],
92    deps = [
93        ":test_method_context",
94        "//pw_rpc",
95        "//pw_rpc/raw:client_testing",
96    ],
97)
98
99cc_library(
100    name = "client_server_testing",
101    hdrs = [
102        "public/pw_rpc/pwpb/client_server_testing.h",
103    ],
104    includes = ["public"],
105    deps = [
106        ":test_method_context",
107        "//pw_assert",
108        "//pw_rpc:client_server_testing",
109    ],
110)
111
112cc_library(
113    name = "client_server_testing_threaded",
114    hdrs = [
115        "public/pw_rpc/pwpb/client_server_testing_threaded.h",
116    ],
117    includes = ["public"],
118    deps = [
119        ":test_method_context",
120        "//pw_rpc:client_server_testing_threaded",
121    ],
122)
123
124cc_library(
125    name = "internal_test_utils",
126    hdrs = ["pw_rpc_pwpb_private/internal_test_utils.h"],
127    deps = ["//pw_rpc:internal_test_utils"],
128)
129
130cc_library(
131    name = "echo_service",
132    hdrs = ["public/pw_rpc/echo_service_pwpb.h"],
133    deps = [
134        "//pw_rpc:echo_cc.pwpb_rpc",
135    ],
136)
137
138# TODO: b/242059613 - Enable this library when logging_event_handler can be used.
139filegroup(
140    name = "client_integration_test",
141    srcs = [
142        "client_integration_test.cc",
143    ],
144    #deps = [
145    #    "//pw_rpc:integration_testing",
146    #    "//pw_sync:binary_semaphore",
147    #    "//pw_rpc:benchmark_cc.pwpb_rpc",
148    #]
149)
150
151pw_cc_test(
152    name = "client_call_test",
153    srcs = [
154        "client_call_test.cc",
155    ],
156    deps = [
157        ":client_api",
158        ":internal_test_utils",
159        "//pw_rpc",
160        "//pw_rpc:pw_rpc_test_cc.pwpb",
161    ],
162)
163
164pw_cc_test(
165    name = "client_reader_writer_test",
166    srcs = [
167        "client_reader_writer_test.cc",
168    ],
169    deps = [
170        ":client_api",
171        ":client_testing",
172        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
173    ],
174)
175
176pw_cc_test(
177    name = "client_server_context_test",
178    srcs = [
179        "client_server_context_test.cc",
180    ],
181    deps = [
182        ":client_api",
183        ":client_server_testing",
184        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
185        "//pw_sync:mutex",
186    ],
187)
188
189pw_cc_test(
190    name = "client_server_context_threaded_test",
191    srcs = [
192        "client_server_context_threaded_test.cc",
193    ],
194    target_compatible_with = select(TARGET_COMPATIBLE_WITH_HOST_SELECT),
195    deps = [
196        ":client_api",
197        ":client_server_testing_threaded",
198        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
199        "//pw_sync:binary_semaphore",
200        "//pw_sync:mutex",
201        "//pw_thread:non_portable_test_thread_options",
202        "//pw_thread_stl:non_portable_test_thread_options",
203    ],
204)
205
206pw_cc_test(
207    name = "codegen_test",
208    srcs = [
209        "codegen_test.cc",
210    ],
211    deps = [
212        ":internal_test_utils",
213        ":test_method_context",
214        "//pw_preprocessor",
215        "//pw_rpc:internal_test_utils",
216        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
217    ],
218)
219
220pw_cc_test(
221    name = "fake_channel_output_test",
222    srcs = ["fake_channel_output_test.cc"],
223    deps = [
224        ":common",
225        ":server_api",
226        ":test_method_context",
227        "//pw_rpc:internal_test_utils",
228        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
229    ],
230)
231
232pw_cc_test(
233    name = "method_test",
234    srcs = ["method_test.cc"],
235    deps = [
236        ":internal_test_utils",
237        ":server_api",
238        "//pw_containers",
239        "//pw_rpc",
240        "//pw_rpc:internal_test_utils",
241        "//pw_rpc:pw_rpc_test_cc.pwpb",
242    ],
243)
244
245pw_cc_test(
246    name = "method_info_test",
247    srcs = ["method_info_test.cc"],
248    deps = [
249        "//pw_rpc",
250        "//pw_rpc:internal_test_utils",
251        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
252    ],
253)
254
255pw_cc_test(
256    name = "method_lookup_test",
257    srcs = ["method_lookup_test.cc"],
258    deps = [
259        ":test_method_context",
260        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
261        "//pw_rpc/raw:test_method_context",
262    ],
263)
264
265pw_cc_test(
266    name = "method_union_test",
267    srcs = ["method_union_test.cc"],
268    deps = [
269        ":internal_test_utils",
270        ":server_api",
271        "//pw_rpc:internal_test_utils",
272        "//pw_rpc:pw_rpc_test_cc.pwpb",
273    ],
274)
275
276pw_cc_test(
277    name = "echo_service_test",
278    srcs = ["echo_service_test.cc"],
279    deps = [
280        ":echo_service",
281        ":test_method_context",
282    ],
283)
284
285pw_cc_test(
286    name = "server_reader_writer_test",
287    srcs = ["server_reader_writer_test.cc"],
288    deps = [
289        ":server_api",
290        ":test_method_context",
291        "//pw_rpc",
292        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
293    ],
294)
295
296pw_cc_test(
297    name = "serde_test",
298    srcs = ["serde_test.cc"],
299    deps = [
300        ":common",
301        "//pw_rpc:pw_rpc_test_cc.pwpb",
302    ],
303)
304
305pw_cc_test(
306    name = "server_callback_test",
307    srcs = ["server_callback_test.cc"],
308    deps = [
309        ":test_method_context",
310        "//pw_rpc",
311        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
312    ],
313)
314
315pw_cc_test(
316    name = "stub_generation_test",
317    srcs = ["stub_generation_test.cc"],
318    deps = [
319        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
320    ],
321)
322
323pw_cc_test(
324    name = "synchronous_call_test",
325    srcs = ["synchronous_call_test.cc"],
326    deps = [
327        ":test_method_context",
328        "//pw_rpc:pw_rpc_test_cc.pwpb_rpc",
329        "//pw_rpc:synchronous_client_api",
330        "//pw_rpc_transport:test_loopback_service_registry",
331        "//pw_work_queue",
332        "//pw_work_queue:stl_test_thread",
333        "//pw_work_queue:test_thread_header",
334    ],
335)
336