xref: /aosp_15_r20/external/grpc-grpc/test/core/promise/BUILD (revision cc02d7e222339f7a4f6ba5f422e6413f4bd931f2)
1# Copyright 2021 gRPC authors.
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#     http://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,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15load("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package")
16load("//test/core/util:grpc_fuzzer.bzl", "grpc_proto_fuzzer")
17
18licenses(["notice"])
19
20grpc_package(name = "test/core/promise")
21
22grpc_cc_library(
23    name = "test_wakeup_schedulers",
24    testonly = True,
25    hdrs = ["test_wakeup_schedulers.h"],
26    external_deps = ["gtest"],
27    visibility = ["//test/core:__subpackages__"],
28)
29
30grpc_cc_library(
31    name = "test_context",
32    testonly = True,
33    hdrs = ["test_context.h"],
34    visibility = ["//test/core:__subpackages__"],
35    deps = ["//src/core:context"],
36)
37
38grpc_cc_test(
39    name = "poll_test",
40    srcs = ["poll_test.cc"],
41    external_deps = ["gtest"],
42    language = "c++",
43    uses_event_engine = False,
44    uses_polling = False,
45    deps = ["//src/core:poll"],
46)
47
48grpc_cc_test(
49    name = "interceptor_list_test",
50    srcs = ["interceptor_list_test.cc"],
51    external_deps = ["gtest"],
52    language = "c++",
53    uses_event_engine = False,
54    uses_polling = False,
55    deps = [
56        "test_context",
57        "//:ref_counted_ptr",
58        "//src/core:arena",
59        "//src/core:event_engine_memory_allocator",
60        "//src/core:interceptor_list",
61        "//src/core:memory_quota",
62        "//src/core:resource_quota",
63    ],
64)
65
66grpc_cc_test(
67    name = "context_test",
68    srcs = ["context_test.cc"],
69    external_deps = ["gtest"],
70    language = "c++",
71    uses_event_engine = False,
72    uses_polling = False,
73    deps = ["//src/core:context"],
74)
75
76grpc_cc_test(
77    name = "cancel_callback_test",
78    srcs = ["cancel_callback_test.cc"],
79    external_deps = ["gtest"],
80    language = "c++",
81    uses_event_engine = False,
82    uses_polling = False,
83    deps = [
84        "//src/core:cancel_callback",
85        "//src/core:poll",
86    ],
87)
88
89grpc_cc_test(
90    name = "promise_test",
91    srcs = ["promise_test.cc"],
92    external_deps = ["gtest"],
93    language = "c++",
94    uses_event_engine = False,
95    uses_polling = False,
96    deps = ["//:promise"],
97)
98
99grpc_cc_test(
100    name = "arena_promise_test",
101    srcs = ["arena_promise_test.cc"],
102    external_deps = ["gtest"],
103    language = "c++",
104    tags = [
105        "promise_test",
106        "resource_quota_test",
107    ],
108    uses_event_engine = False,
109    uses_polling = False,
110    deps = [
111        "test_context",
112        "//:exec_ctx",
113        "//:ref_counted_ptr",
114        "//src/core:arena_promise",
115        "//src/core:event_engine_memory_allocator",
116        "//src/core:memory_quota",
117        "//src/core:resource_quota",
118        "//test/core/util:grpc_test_util_unsecure",
119    ],
120)
121
122grpc_cc_test(
123    # Why promise_map_test and not map_test?
124    # third_party/benchmark defines a map_test in its cmakefile, and we depend
125    # on that from our cmakefile, and cmake wants to have a flat namespace to
126    # deal with xcode/visual studio limitations... sooo... promise_map_test it
127    # is.
128    name = "promise_map_test",
129    srcs = ["map_test.cc"],
130    external_deps = [
131        "absl/functional:any_invocable",
132        "gtest",
133    ],
134    language = "c++",
135    tags = ["promise_test"],
136    uses_event_engine = False,
137    uses_polling = False,
138    deps = [
139        "//:promise",
140        "//src/core:map",
141    ],
142)
143
144grpc_cc_test(
145    name = "race_test",
146    srcs = ["race_test.cc"],
147    external_deps = ["gtest"],
148    language = "c++",
149    tags = ["promise_test"],
150    uses_event_engine = False,
151    uses_polling = False,
152    deps = [
153        "//src/core:poll",
154        "//src/core:race",
155    ],
156)
157
158grpc_cc_test(
159    name = "prioritized_race_test",
160    srcs = ["prioritized_race_test.cc"],
161    external_deps = ["gtest"],
162    language = "c++",
163    tags = ["promise_test"],
164    uses_event_engine = False,
165    uses_polling = False,
166    deps = [
167        "//src/core:poll",
168        "//src/core:prioritized_race",
169    ],
170)
171
172grpc_cc_test(
173    name = "promise_factory_test",
174    srcs = ["promise_factory_test.cc"],
175    external_deps = [
176        "absl/functional:bind_front",
177        "gtest",
178    ],
179    language = "c++",
180    tags = ["promise_test"],
181    uses_event_engine = False,
182    uses_polling = False,
183    deps = [
184        "//src/core:poll",
185        "//src/core:promise_factory",
186    ],
187)
188
189grpc_cc_test(
190    name = "if_test",
191    srcs = ["if_test.cc"],
192    external_deps = ["gtest"],
193    language = "c++",
194    tags = ["promise_test"],
195    uses_event_engine = False,
196    uses_polling = False,
197    deps = ["//src/core:if"],
198)
199
200grpc_cc_test(
201    name = "switch_test",
202    srcs = ["switch_test.cc"],
203    external_deps = ["gtest"],
204    language = "c++",
205    tags = ["promise_test"],
206    uses_event_engine = False,
207    uses_polling = False,
208    deps = ["//src/core:switch"],
209)
210
211grpc_cc_test(
212    name = "loop_test",
213    srcs = ["loop_test.cc"],
214    external_deps = ["gtest"],
215    language = "c++",
216    tags = ["promise_test"],
217    uses_event_engine = False,
218    uses_polling = False,
219    deps = [
220        "//src/core:loop",
221        "//src/core:seq",
222    ],
223)
224
225grpc_cc_test(
226    name = "join_test",
227    srcs = ["join_test.cc"],
228    external_deps = ["gtest"],
229    language = "c++",
230    tags = ["promise_test"],
231    uses_event_engine = False,
232    uses_polling = False,
233    deps = [
234        "//src/core:join",
235        "//src/core:poll",
236    ],
237)
238
239grpc_cc_test(
240    name = "try_join_test",
241    srcs = ["try_join_test.cc"],
242    external_deps = [
243        "absl/utility",
244        "gtest",
245    ],
246    language = "c++",
247    tags = ["promise_test"],
248    uses_event_engine = False,
249    uses_polling = False,
250    deps = ["//src/core:try_join"],
251)
252
253grpc_cc_test(
254    name = "all_ok_test",
255    srcs = ["all_ok_test.cc"],
256    external_deps = [
257        "absl/utility",
258        "gtest",
259    ],
260    language = "c++",
261    tags = ["promise_test"],
262    uses_event_engine = False,
263    uses_polling = False,
264    deps = ["//src/core:all_ok"],
265)
266
267grpc_cc_test(
268    name = "seq_test",
269    srcs = ["seq_test.cc"],
270    external_deps = ["gtest"],
271    language = "c++",
272    tags = ["promise_test"],
273    uses_event_engine = False,
274    uses_polling = False,
275    deps = ["//src/core:seq"],
276)
277
278grpc_cc_test(
279    name = "try_seq_test",
280    srcs = ["try_seq_test.cc"],
281    external_deps = ["gtest"],
282    language = "c++",
283    tags = ["promise_test"],
284    uses_event_engine = False,
285    uses_polling = False,
286    deps = ["//src/core:try_seq"],
287)
288
289grpc_cc_test(
290    name = "try_seq_metadata_test",
291    srcs = ["try_seq_metadata_test.cc"],
292    external_deps = ["gtest"],
293    language = "c++",
294    tags = ["promise_test"],
295    uses_event_engine = False,
296    uses_polling = False,
297    deps = [
298        "//:grpc",
299        "//:grpc_public_hdrs",
300        "//:ref_counted_ptr",
301        "//src/core:arena",
302        "//src/core:memory_quota",
303        "//src/core:poll",
304        "//src/core:resource_quota",
305        "//src/core:try_seq",
306    ],
307)
308
309grpc_cc_test(
310    name = "activity_test",
311    srcs = ["activity_test.cc"],
312    external_deps = ["gtest"],
313    flaky = True,
314    language = "c++",
315    tags = ["promise_test"],
316    uses_event_engine = False,
317    uses_polling = False,
318    deps = [
319        "test_wakeup_schedulers",
320        "//:promise",
321        "//src/core:activity",
322        "//src/core:join",
323        "//src/core:poll",
324        "//src/core:seq",
325        "//src/core:wait_set",
326    ],
327)
328
329grpc_cc_test(
330    name = "latch_test",
331    srcs = ["latch_test.cc"],
332    external_deps = [
333        "absl/status",
334        "gtest",
335    ],
336    language = "c++",
337    tags = ["promise_test"],
338    uses_event_engine = False,
339    uses_polling = False,
340    deps = [
341        "test_wakeup_schedulers",
342        "//src/core:activity",
343        "//src/core:join",
344        "//src/core:latch",
345        "//src/core:seq",
346    ],
347)
348
349grpc_cc_test(
350    name = "for_each_test",
351    srcs = ["for_each_test.cc"],
352    external_deps = ["gtest"],
353    language = "c++",
354    tags = ["promise_test"],
355    uses_event_engine = False,
356    uses_polling = False,
357    deps = [
358        "test_wakeup_schedulers",
359        "//:ref_counted_ptr",
360        "//src/core:activity",
361        "//src/core:arena",
362        "//src/core:event_engine_memory_allocator",
363        "//src/core:for_each",
364        "//src/core:inter_activity_pipe",
365        "//src/core:join",
366        "//src/core:map",
367        "//src/core:memory_quota",
368        "//src/core:pipe",
369        "//src/core:resource_quota",
370        "//src/core:seq",
371        "//src/core:try_seq",
372    ],
373)
374
375grpc_cc_test(
376    name = "map_pipe_test",
377    srcs = ["map_pipe_test.cc"],
378    external_deps = ["gtest"],
379    language = "c++",
380    tags = ["promise_test"],
381    uses_event_engine = False,
382    uses_polling = False,
383    deps = [
384        "test_wakeup_schedulers",
385        "//:ref_counted_ptr",
386        "//src/core:activity",
387        "//src/core:arena",
388        "//src/core:event_engine_memory_allocator",
389        "//src/core:for_each",
390        "//src/core:join",
391        "//src/core:map",
392        "//src/core:map_pipe",
393        "//src/core:memory_quota",
394        "//src/core:pipe",
395        "//src/core:poll",
396        "//src/core:resource_quota",
397        "//src/core:seq",
398    ],
399)
400
401grpc_cc_test(
402    name = "pipe_test",
403    srcs = ["pipe_test.cc"],
404    external_deps = [
405        "absl/functional:function_ref",
406        "absl/status",
407        "gtest",
408    ],
409    language = "c++",
410    tags = ["promise_test"],
411    uses_event_engine = False,
412    uses_polling = False,
413    deps = [
414        "test_wakeup_schedulers",
415        "//:gpr",
416        "//:grpc",
417        "//:ref_counted_ptr",
418        "//src/core:activity",
419        "//src/core:event_engine_memory_allocator",
420        "//src/core:join",
421        "//src/core:map",
422        "//src/core:memory_quota",
423        "//src/core:pipe",
424        "//src/core:resource_quota",
425        "//src/core:seq",
426    ],
427)
428
429grpc_cc_test(
430    name = "inter_activity_pipe_test",
431    srcs = ["inter_activity_pipe_test.cc"],
432    external_deps = [
433        "absl/status",
434        "gtest",
435    ],
436    language = "c++",
437    tags = ["promise_test"],
438    uses_event_engine = False,
439    uses_polling = False,
440    deps = [
441        "test_wakeup_schedulers",
442        "//src/core:inter_activity_pipe",
443        "//src/core:seq",
444    ],
445)
446
447grpc_cc_test(
448    name = "inter_activity_latch_test",
449    srcs = ["inter_activity_latch_test.cc"],
450    external_deps = [
451        "absl/status",
452        "gtest",
453    ],
454    language = "c++",
455    tags = ["promise_test"],
456    uses_event_engine = False,
457    uses_polling = False,
458    deps = [
459        "//:grpc",
460        "//src/core:default_event_engine",
461        "//src/core:event_engine_wakeup_scheduler",
462        "//src/core:inter_activity_latch",
463        "//src/core:notification",
464        "//src/core:seq",
465    ],
466)
467
468grpc_cc_test(
469    name = "mpsc_test",
470    srcs = ["mpsc_test.cc"],
471    external_deps = [
472        "absl/types:optional",
473        "gtest",
474    ],
475    language = "c++",
476    tags = ["promise_test"],
477    uses_event_engine = False,
478    uses_polling = False,
479    deps = [
480        "//:gpr",
481        "//:promise",
482        "//src/core:activity",
483        "//src/core:mpsc",
484    ],
485)
486
487grpc_cc_test(
488    name = "observable_test",
489    srcs = ["observable_test.cc"],
490    external_deps = [
491        "absl/strings",
492        "gtest",
493    ],
494    language = "c++",
495    tags = ["promise_test"],
496    uses_event_engine = False,
497    uses_polling = False,
498    deps = [
499        "//src/core:loop",
500        "//src/core:map",
501        "//src/core:notification",
502        "//src/core:observable",
503    ],
504)
505
506grpc_proto_fuzzer(
507    name = "promise_fuzzer",
508    srcs = ["promise_fuzzer.cc"],
509    corpus = "promise_fuzzer_corpus",
510    external_deps = [
511        "absl/functional:any_invocable",
512        "absl/status",
513        "absl/types:optional",
514    ],
515    language = "C++",
516    proto = "promise_fuzzer.proto",
517    tags = ["no_windows"],
518    uses_polling = False,
519    deps = [
520        "//:gpr",
521        "//:promise",
522        "//src/core:activity",
523        "//src/core:join",
524        "//src/core:map",
525        "//src/core:poll",
526        "//src/core:race",
527        "//src/core:seq",
528    ],
529)
530
531grpc_cc_test(
532    name = "exec_ctx_wakeup_scheduler_test",
533    srcs = ["exec_ctx_wakeup_scheduler_test.cc"],
534    external_deps = [
535        "absl/status",
536        "gtest",
537    ],
538    language = "c++",
539    tags = ["promise_test"],
540    uses_event_engine = False,
541    uses_polling = False,
542    deps = [
543        "//src/core:activity",
544        "//src/core:exec_ctx_wakeup_scheduler",
545        "//src/core:poll",
546    ],
547)
548
549grpc_cc_test(
550    name = "wait_for_callback_test",
551    srcs = ["wait_for_callback_test.cc"],
552    external_deps = [
553        "absl/status",
554        "gtest",
555    ],
556    language = "c++",
557    tags = ["promise_test"],
558    uses_event_engine = False,
559    uses_polling = False,
560    deps = [
561        "test_wakeup_schedulers",
562        "//src/core:map",
563        "//src/core:notification",
564        "//src/core:wait_for_callback",
565    ],
566)
567
568grpc_cc_test(
569    name = "event_engine_wakeup_scheduler_test",
570    srcs = ["event_engine_wakeup_scheduler_test.cc"],
571    external_deps = [
572        "absl/status",
573        "gtest",
574    ],
575    language = "c++",
576    tags = ["promise_test"],
577    uses_event_engine = False,
578    uses_polling = False,
579    deps = [
580        "//:grpc",
581        "//src/core:activity",
582        "//src/core:event_engine_wakeup_scheduler",
583        "//src/core:notification",
584        "//src/core:poll",
585    ],
586)
587
588grpc_cc_test(
589    name = "sleep_test",
590    srcs = ["sleep_test.cc"],
591    external_deps = ["gtest"],
592    language = "c++",
593    tags = ["promise_test"],
594    uses_event_engine = False,
595    uses_polling = False,
596    deps = [
597        "test_wakeup_schedulers",
598        "//:exec_ctx",
599        "//:gpr",
600        "//:grpc",
601        "//:orphanable",
602        "//src/core:default_event_engine",
603        "//src/core:exec_ctx_wakeup_scheduler",
604        "//src/core:notification",
605        "//src/core:race",
606        "//src/core:sleep",
607        "//test/core/event_engine:mock_event_engine",
608    ],
609)
610
611grpc_cc_test(
612    name = "status_flag_test",
613    srcs = ["status_flag_test.cc"],
614    external_deps = ["gtest"],
615    language = "c++",
616    tags = ["promise_test"],
617    uses_event_engine = False,
618    uses_polling = False,
619    deps = ["//src/core:status_flag"],
620)
621
622grpc_cc_test(
623    name = "promise_mutex_test",
624    srcs = ["promise_mutex_test.cc"],
625    external_deps = [
626        "absl/status",
627        "gtest",
628    ],
629    deps = [
630        "test_wakeup_schedulers",
631        "//:promise",
632        "//src/core:activity",
633        "//src/core:join",
634        "//src/core:promise_mutex",
635        "//src/core:seq",
636    ],
637)
638
639grpc_cc_test(
640    name = "party_test",
641    srcs = ["party_test.cc"],
642    external_deps = [
643        "absl/base:core_headers",
644        "gtest",
645    ],
646    language = "c++",
647    tags = ["promise_test"],
648    uses_event_engine = False,
649    uses_polling = False,
650    deps = [
651        "//:exec_ctx",
652        "//:gpr",
653        "//:grpc_unsecure",
654        "//:ref_counted_ptr",
655        "//src/core:1999",
656        "//src/core:context",
657        "//src/core:default_event_engine",
658        "//src/core:event_engine_memory_allocator",
659        "//src/core:inter_activity_latch",
660        "//src/core:memory_quota",
661        "//src/core:notification",
662        "//src/core:poll",
663        "//src/core:resource_quota",
664        "//src/core:seq",
665        "//src/core:sleep",
666        "//src/core:time",
667    ],
668)
669