xref: /aosp_15_r20/external/cronet/third_party/abseil-cpp/absl/strings/BUILD.bazel (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1#
2# Copyright 2017 The Abseil Authors.
3#
4# Licensed under the Apache License, Version 2.0 (the "License");
5# you may not use this file except in compliance with the License.
6# You may obtain a copy of the License at
7#
8#      https://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS,
12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13# See the License for the specific language governing permissions and
14# limitations under the License.
15
16load(
17    "//absl:copts/configure_copts.bzl",
18    "ABSL_DEFAULT_COPTS",
19    "ABSL_DEFAULT_LINKOPTS",
20    "ABSL_TEST_COPTS",
21)
22
23package(
24    default_visibility = ["//visibility:public"],
25    features = [
26        "header_modules",
27        "layering_check",
28        "parse_headers",
29    ],
30)
31
32licenses(["notice"])
33
34cc_library(
35    name = "string_view",
36    srcs = ["string_view.cc"],
37    hdrs = ["string_view.h"],
38    copts = ABSL_DEFAULT_COPTS,
39    linkopts = ABSL_DEFAULT_LINKOPTS,
40    deps = [
41        "//absl/base",
42        "//absl/base:config",
43        "//absl/base:core_headers",
44        "//absl/base:nullability",
45        "//absl/base:throw_delegate",
46    ],
47)
48
49cc_library(
50    name = "strings",
51    srcs = [
52        "ascii.cc",
53        "charconv.cc",
54        "escaping.cc",
55        "internal/charconv_bigint.cc",
56        "internal/charconv_bigint.h",
57        "internal/charconv_parse.cc",
58        "internal/charconv_parse.h",
59        "internal/damerau_levenshtein_distance.cc",
60        "internal/memutil.cc",
61        "internal/memutil.h",
62        "internal/stl_type_traits.h",
63        "internal/str_join_internal.h",
64        "internal/str_split_internal.h",
65        "internal/stringify_sink.cc",
66        "internal/stringify_sink.h",
67        "match.cc",
68        "numbers.cc",
69        "str_cat.cc",
70        "str_replace.cc",
71        "str_split.cc",
72        "substitute.cc",
73    ],
74    hdrs = [
75        "ascii.h",
76        "charconv.h",
77        "escaping.h",
78        "has_absl_stringify.h",
79        "internal/damerau_levenshtein_distance.h",
80        "internal/has_absl_stringify.h",
81        "internal/string_constant.h",
82        "match.h",
83        "numbers.h",
84        "str_cat.h",
85        "str_join.h",
86        "str_replace.h",
87        "str_split.h",
88        "string_view.h",
89        "strip.h",
90        "substitute.h",
91    ],
92    copts = ABSL_DEFAULT_COPTS,
93    linkopts = ABSL_DEFAULT_LINKOPTS,
94    textual_hdrs = [
95        # string_view.h was once part of :strings, so string_view.h is
96        # re-exported for backwards compatibility.
97        # New code should directly depend on :string_view.
98        "string_view.h",
99    ],
100    deps = [
101        ":charset",
102        ":internal",
103        ":string_view",
104        "//absl/base",
105        "//absl/base:config",
106        "//absl/base:core_headers",
107        "//absl/base:endian",
108        "//absl/base:nullability",
109        "//absl/base:raw_logging_internal",
110        "//absl/base:throw_delegate",
111        "//absl/memory",
112        "//absl/meta:type_traits",
113        "//absl/numeric:bits",
114        "//absl/numeric:int128",
115    ],
116)
117
118cc_library(
119    name = "internal",
120    srcs = [
121        "internal/escaping.cc",
122        "internal/ostringstream.cc",
123        "internal/utf8.cc",
124    ],
125    hdrs = [
126        "internal/escaping.h",
127        "internal/ostringstream.h",
128        "internal/resize_uninitialized.h",
129        "internal/utf8.h",
130    ],
131    copts = ABSL_DEFAULT_COPTS,
132    linkopts = ABSL_DEFAULT_LINKOPTS,
133    deps = [
134        "//absl/base:config",
135        "//absl/base:core_headers",
136        "//absl/base:endian",
137        "//absl/base:raw_logging_internal",
138        "//absl/meta:type_traits",
139    ],
140)
141
142cc_test(
143    name = "match_test",
144    size = "small",
145    srcs = ["match_test.cc"],
146    copts = ABSL_TEST_COPTS,
147    visibility = ["//visibility:private"],
148    deps = [
149        ":strings",
150        "@com_google_googletest//:gtest",
151        "@com_google_googletest//:gtest_main",
152    ],
153)
154
155cc_test(
156    name = "escaping_test",
157    size = "small",
158    srcs = [
159        "escaping_test.cc",
160        "internal/escaping_test_common.h",
161    ],
162    copts = ABSL_TEST_COPTS,
163    visibility = ["//visibility:private"],
164    deps = [
165        ":cord",
166        ":strings",
167        "//absl/base:core_headers",
168        "//absl/container:fixed_array",
169        "//absl/log:check",
170        "@com_google_googletest//:gtest",
171        "@com_google_googletest//:gtest_main",
172    ],
173)
174
175cc_test(
176    name = "escaping_benchmark",
177    srcs = [
178        "escaping_benchmark.cc",
179        "internal/escaping_test_common.h",
180    ],
181    copts = ABSL_TEST_COPTS,
182    tags = ["benchmark"],
183    visibility = ["//visibility:private"],
184    deps = [
185        ":strings",
186        "//absl/base:raw_logging_internal",
187        "@com_github_google_benchmark//:benchmark_main",
188        "@com_google_googletest//:gtest",
189    ],
190)
191
192cc_test(
193    name = "has_absl_stringify_test",
194    size = "small",
195    srcs = ["has_absl_stringify_test.cc"],
196    copts = ABSL_TEST_COPTS,
197    visibility = ["//visibility:private"],
198    deps = [
199        ":strings",
200        "//absl/types:optional",
201        "@com_google_googletest//:gtest",
202        "@com_google_googletest//:gtest_main",
203    ],
204)
205
206cc_library(
207    name = "has_ostream_operator",
208    hdrs = ["has_ostream_operator.h"],
209    copts = ABSL_DEFAULT_COPTS,
210    linkopts = ABSL_DEFAULT_LINKOPTS,
211    deps = [
212        "//absl/base:config",
213    ],
214)
215
216cc_test(
217    name = "has_ostream_operator_test",
218    size = "small",
219    srcs = ["has_ostream_operator_test.cc"],
220    copts = ABSL_TEST_COPTS,
221    visibility = ["//visibility:private"],
222    deps = [
223        ":has_ostream_operator",
224        "//absl/types:optional",
225        "@com_google_googletest//:gtest",
226        "@com_google_googletest//:gtest_main",
227    ],
228)
229
230cc_test(
231    name = "ascii_test",
232    size = "small",
233    srcs = ["ascii_test.cc"],
234    copts = ABSL_TEST_COPTS,
235    visibility = ["//visibility:private"],
236    deps = [
237        ":strings",
238        "//absl/base:core_headers",
239        "@com_google_googletest//:gtest",
240        "@com_google_googletest//:gtest_main",
241    ],
242)
243
244cc_test(
245    name = "ascii_benchmark",
246    srcs = ["ascii_benchmark.cc"],
247    copts = ABSL_TEST_COPTS,
248    tags = ["benchmark"],
249    visibility = ["//visibility:private"],
250    deps = [
251        ":strings",
252        "@com_github_google_benchmark//:benchmark_main",
253        "@com_google_googletest//:gtest",
254    ],
255)
256
257cc_test(
258    name = "damerau_levenshtein_distance_test",
259    size = "small",
260    srcs = [
261        "internal/damerau_levenshtein_distance_test.cc",
262    ],
263    copts = ABSL_TEST_COPTS,
264    deps = [
265        "//absl/strings",
266        "@com_google_googletest//:gtest",
267        "@com_google_googletest//:gtest_main",
268    ],
269)
270
271cc_test(
272    name = "memutil_benchmark",
273    srcs = [
274        "internal/memutil.h",
275        "internal/memutil_benchmark.cc",
276    ],
277    copts = ABSL_TEST_COPTS,
278    tags = ["benchmark"],
279    visibility = ["//visibility:private"],
280    deps = [
281        ":strings",
282        "//absl/base:core_headers",
283        "@com_github_google_benchmark//:benchmark_main",
284        "@com_google_googletest//:gtest",
285    ],
286)
287
288cc_test(
289    name = "memutil_test",
290    size = "small",
291    srcs = [
292        "internal/memutil.h",
293        "internal/memutil_test.cc",
294    ],
295    copts = ABSL_TEST_COPTS,
296    visibility = ["//visibility:private"],
297    deps = [
298        ":strings",
299        "//absl/base:core_headers",
300        "@com_google_googletest//:gtest",
301        "@com_google_googletest//:gtest_main",
302    ],
303)
304
305cc_test(
306    name = "utf8_test",
307    size = "small",
308    srcs = [
309        "internal/utf8_test.cc",
310    ],
311    copts = ABSL_TEST_COPTS,
312    visibility = ["//visibility:private"],
313    deps = [
314        ":internal",
315        "//absl/base:core_headers",
316        "@com_google_googletest//:gtest",
317        "@com_google_googletest//:gtest_main",
318    ],
319)
320
321cc_test(
322    name = "string_constant_test",
323    size = "small",
324    srcs = ["internal/string_constant_test.cc"],
325    copts = ABSL_TEST_COPTS,
326    visibility = ["//visibility:private"],
327    deps = [
328        ":strings",
329        "//absl/meta:type_traits",
330        "@com_google_googletest//:gtest",
331        "@com_google_googletest//:gtest_main",
332    ],
333)
334
335cc_test(
336    name = "string_view_benchmark",
337    srcs = ["string_view_benchmark.cc"],
338    copts = ABSL_TEST_COPTS,
339    tags = ["benchmark"],
340    visibility = ["//visibility:private"],
341    deps = [
342        ":string_view",
343        ":strings",
344        "//absl/base:core_headers",
345        "//absl/base:raw_logging_internal",
346        "@com_github_google_benchmark//:benchmark_main",
347        "@com_google_googletest//:gtest",
348    ],
349)
350
351cc_test(
352    name = "string_view_test",
353    size = "small",
354    srcs = ["string_view_test.cc"],
355    copts = ABSL_TEST_COPTS,
356    visibility = ["//visibility:private"],
357    deps = [
358        ":string_view",
359        "//absl/base:config",
360        "//absl/base:core_headers",
361        "//absl/base:dynamic_annotations",
362        "//absl/meta:type_traits",
363        "@com_google_googletest//:gtest",
364        "@com_google_googletest//:gtest_main",
365    ],
366)
367
368cc_test(
369    name = "charset_benchmark",
370    size = "small",
371    srcs = [
372        "charset_benchmark.cc",
373    ],
374    copts = ABSL_TEST_COPTS,
375    tags = [
376        "benchmark",
377    ],
378    visibility = ["//visibility:private"],
379    deps = [
380        ":charset",
381        "//absl/log:check",
382        "@com_github_google_benchmark//:benchmark_main",
383        "@com_google_googletest//:gtest",
384    ],
385)
386
387cc_library(
388    name = "charset",
389    hdrs = [
390        "charset.h",
391    ],
392    copts = ABSL_DEFAULT_COPTS,
393    linkopts = ABSL_DEFAULT_LINKOPTS,
394    deps = [
395        ":string_view",
396        "//absl/base:core_headers",
397    ],
398)
399
400cc_test(
401    name = "charset_test",
402    size = "small",
403    srcs = ["charset_test.cc"],
404    copts = ABSL_TEST_COPTS,
405    visibility = ["//visibility:private"],
406    deps = [
407        ":charset",
408        ":strings",
409        "@com_google_googletest//:gtest",
410        "@com_google_googletest//:gtest_main",
411    ],
412)
413
414cc_library(
415    name = "cord_internal",
416    srcs = [
417        "internal/cord_internal.cc",
418        "internal/cord_rep_btree.cc",
419        "internal/cord_rep_btree_navigator.cc",
420        "internal/cord_rep_btree_reader.cc",
421        "internal/cord_rep_consume.cc",
422        "internal/cord_rep_crc.cc",
423    ],
424    hdrs = [
425        "internal/cord_data_edge.h",
426        "internal/cord_internal.h",
427        "internal/cord_rep_btree.h",
428        "internal/cord_rep_btree_navigator.h",
429        "internal/cord_rep_btree_reader.h",
430        "internal/cord_rep_consume.h",
431        "internal/cord_rep_crc.h",
432        "internal/cord_rep_flat.h",
433    ],
434    copts = ABSL_DEFAULT_COPTS,
435    linkopts = ABSL_DEFAULT_LINKOPTS,
436    visibility = [
437        "//visibility:private",
438    ],
439    deps = [
440        ":strings",
441        "//absl/base:base_internal",
442        "//absl/base:config",
443        "//absl/base:core_headers",
444        "//absl/base:endian",
445        "//absl/base:raw_logging_internal",
446        "//absl/base:throw_delegate",
447        "//absl/container:compressed_tuple",
448        "//absl/container:container_memory",
449        "//absl/container:inlined_vector",
450        "//absl/container:layout",
451        "//absl/crc:crc_cord_state",
452        "//absl/functional:function_ref",
453        "//absl/meta:type_traits",
454        "//absl/types:span",
455    ],
456)
457
458cc_test(
459    name = "cord_data_edge_test",
460    size = "small",
461    srcs = ["internal/cord_data_edge_test.cc"],
462    copts = ABSL_TEST_COPTS,
463    visibility = ["//visibility:private"],
464    deps = [
465        ":cord_internal",
466        ":cord_rep_test_util",
467        ":strings",
468        "//absl/base:config",
469        "@com_google_googletest//:gtest",
470        "@com_google_googletest//:gtest_main",
471    ],
472)
473
474cc_test(
475    name = "cord_rep_btree_test",
476    size = "medium",
477    timeout = "long",
478    srcs = ["internal/cord_rep_btree_test.cc"],
479    copts = ABSL_TEST_COPTS,
480    visibility = ["//visibility:private"],
481    deps = [
482        ":cord_internal",
483        ":cord_rep_test_util",
484        ":strings",
485        "//absl/base:config",
486        "//absl/base:raw_logging_internal",
487        "//absl/cleanup",
488        "@com_google_googletest//:gtest",
489        "@com_google_googletest//:gtest_main",
490    ],
491)
492
493cc_test(
494    name = "cord_rep_btree_navigator_test",
495    size = "medium",
496    srcs = ["internal/cord_rep_btree_navigator_test.cc"],
497    copts = ABSL_TEST_COPTS,
498    visibility = ["//visibility:private"],
499    deps = [
500        ":cord_internal",
501        ":cord_rep_test_util",
502        ":strings",
503        "//absl/base:config",
504        "//absl/base:raw_logging_internal",
505        "@com_google_googletest//:gtest",
506        "@com_google_googletest//:gtest_main",
507    ],
508)
509
510cc_test(
511    name = "cord_rep_btree_reader_test",
512    size = "medium",
513    srcs = ["internal/cord_rep_btree_reader_test.cc"],
514    copts = ABSL_TEST_COPTS,
515    visibility = ["//visibility:private"],
516    deps = [
517        ":cord",
518        ":cord_internal",
519        ":cord_rep_test_util",
520        ":strings",
521        "//absl/base:config",
522        "//absl/base:raw_logging_internal",
523        "@com_google_googletest//:gtest",
524        "@com_google_googletest//:gtest_main",
525    ],
526)
527
528cc_test(
529    name = "cord_rep_crc_test",
530    size = "small",
531    srcs = ["internal/cord_rep_crc_test.cc"],
532    copts = ABSL_TEST_COPTS,
533    visibility = ["//visibility:private"],
534    deps = [
535        ":cord_internal",
536        ":cord_rep_test_util",
537        "//absl/base:config",
538        "//absl/crc:crc_cord_state",
539        "@com_google_googletest//:gtest",
540        "@com_google_googletest//:gtest_main",
541    ],
542)
543
544cc_library(
545    name = "cordz_update_tracker",
546    hdrs = ["internal/cordz_update_tracker.h"],
547    copts = ABSL_DEFAULT_COPTS,
548    linkopts = ABSL_DEFAULT_LINKOPTS,
549    visibility = [
550        "//absl:__subpackages__",
551    ],
552    deps = ["//absl/base:config"],
553)
554
555cc_test(
556    name = "cordz_update_tracker_test",
557    srcs = ["internal/cordz_update_tracker_test.cc"],
558    deps = [
559        ":cordz_update_tracker",
560        "//absl/base:config",
561        "//absl/base:core_headers",
562        "//absl/synchronization",
563        "@com_google_googletest//:gtest",
564        "@com_google_googletest//:gtest_main",
565    ],
566)
567
568cc_library(
569    name = "cord",
570    srcs = [
571        "cord.cc",
572        "cord_analysis.cc",
573        "cord_analysis.h",
574        "cord_buffer.cc",
575    ],
576    hdrs = [
577        "cord.h",
578        "cord_buffer.h",
579    ],
580    copts = ABSL_DEFAULT_COPTS,
581    linkopts = ABSL_DEFAULT_LINKOPTS,
582    deps = [
583        ":cord_internal",
584        ":cordz_functions",
585        ":cordz_info",
586        ":cordz_statistics",
587        ":cordz_update_scope",
588        ":cordz_update_tracker",
589        ":internal",
590        ":strings",
591        "//absl/base",
592        "//absl/base:config",
593        "//absl/base:core_headers",
594        "//absl/base:endian",
595        "//absl/base:nullability",
596        "//absl/base:raw_logging_internal",
597        "//absl/container:inlined_vector",
598        "//absl/crc:crc32c",
599        "//absl/crc:crc_cord_state",
600        "//absl/functional:function_ref",
601        "//absl/meta:type_traits",
602        "//absl/numeric:bits",
603        "//absl/types:optional",
604        "//absl/types:span",
605    ],
606)
607
608cc_library(
609    name = "cordz_handle",
610    srcs = ["internal/cordz_handle.cc"],
611    hdrs = ["internal/cordz_handle.h"],
612    copts = ABSL_DEFAULT_COPTS,
613    linkopts = ABSL_DEFAULT_LINKOPTS,
614    visibility = [
615        "//absl:__subpackages__",
616    ],
617    deps = [
618        "//absl/base:config",
619        "//absl/base:no_destructor",
620        "//absl/base:raw_logging_internal",
621        "//absl/synchronization",
622    ],
623)
624
625cc_library(
626    name = "cordz_info",
627    srcs = ["internal/cordz_info.cc"],
628    hdrs = ["internal/cordz_info.h"],
629    copts = ABSL_DEFAULT_COPTS,
630    linkopts = ABSL_DEFAULT_LINKOPTS,
631    visibility = [
632        "//absl:__subpackages__",
633    ],
634    deps = [
635        ":cord_internal",
636        ":cordz_functions",
637        ":cordz_handle",
638        ":cordz_statistics",
639        ":cordz_update_tracker",
640        "//absl/base",
641        "//absl/base:config",
642        "//absl/base:core_headers",
643        "//absl/base:raw_logging_internal",
644        "//absl/container:inlined_vector",
645        "//absl/debugging:stacktrace",
646        "//absl/synchronization",
647        "//absl/time",
648        "//absl/types:span",
649    ],
650)
651
652cc_library(
653    name = "cordz_update_scope",
654    hdrs = ["internal/cordz_update_scope.h"],
655    copts = ABSL_DEFAULT_COPTS,
656    linkopts = ABSL_DEFAULT_LINKOPTS,
657    visibility = [
658        "//absl:__subpackages__",
659    ],
660    deps = [
661        ":cord_internal",
662        ":cordz_info",
663        ":cordz_update_tracker",
664        "//absl/base:config",
665        "//absl/base:core_headers",
666    ],
667)
668
669cc_test(
670    name = "cordz_update_scope_test",
671    srcs = ["internal/cordz_update_scope_test.cc"],
672    copts = ABSL_DEFAULT_COPTS,
673    deps = [
674        ":cord_internal",
675        ":cordz_info",
676        ":cordz_test_helpers",
677        ":cordz_update_scope",
678        ":cordz_update_tracker",
679        "//absl/base:config",
680        "@com_google_googletest//:gtest",
681        "@com_google_googletest//:gtest_main",
682    ],
683)
684
685cc_library(
686    name = "cordz_sample_token",
687    srcs = ["internal/cordz_sample_token.cc"],
688    hdrs = ["internal/cordz_sample_token.h"],
689    copts = ABSL_DEFAULT_COPTS,
690    linkopts = ABSL_DEFAULT_LINKOPTS,
691    visibility = [
692        "//absl:__subpackages__",
693    ],
694    deps = [
695        ":cordz_handle",
696        ":cordz_info",
697        "//absl/base:config",
698    ],
699)
700
701cc_library(
702    name = "cordz_functions",
703    srcs = ["internal/cordz_functions.cc"],
704    hdrs = ["internal/cordz_functions.h"],
705    copts = ABSL_DEFAULT_COPTS,
706    linkopts = ABSL_DEFAULT_LINKOPTS,
707    visibility = [
708        "//absl:__subpackages__",
709    ],
710    deps = [
711        "//absl/base:config",
712        "//absl/base:core_headers",
713        "//absl/base:raw_logging_internal",
714        "//absl/profiling:exponential_biased",
715    ],
716)
717
718cc_library(
719    name = "cordz_statistics",
720    hdrs = ["internal/cordz_statistics.h"],
721    copts = ABSL_DEFAULT_COPTS,
722    linkopts = ABSL_DEFAULT_LINKOPTS,
723    visibility = [
724        "//absl:__subpackages__",
725    ],
726    deps = [
727        ":cordz_update_tracker",
728        "//absl/base:config",
729    ],
730)
731
732cc_test(
733    name = "cordz_functions_test",
734    srcs = [
735        "internal/cordz_functions_test.cc",
736    ],
737    deps = [
738        ":cordz_functions",
739        ":cordz_test_helpers",
740        "//absl/base:config",
741        "@com_google_googletest//:gtest",
742        "@com_google_googletest//:gtest_main",
743    ],
744)
745
746cc_test(
747    name = "cordz_handle_test",
748    srcs = [
749        "internal/cordz_handle_test.cc",
750    ],
751    deps = [
752        ":cordz_handle",
753        "//absl/base:config",
754        "//absl/memory",
755        "//absl/random",
756        "//absl/random:distributions",
757        "//absl/synchronization",
758        "//absl/synchronization:thread_pool",
759        "//absl/time",
760        "@com_google_googletest//:gtest",
761        "@com_google_googletest//:gtest_main",
762    ],
763)
764
765cc_test(
766    name = "cordz_info_test",
767    srcs = [
768        "internal/cordz_info_test.cc",
769    ],
770    deps = [
771        ":cord_internal",
772        ":cordz_handle",
773        ":cordz_info",
774        ":cordz_statistics",
775        ":cordz_test_helpers",
776        ":cordz_update_tracker",
777        ":strings",
778        "//absl/base:config",
779        "//absl/debugging:stacktrace",
780        "//absl/debugging:symbolize",
781        "//absl/types:span",
782        "@com_google_googletest//:gtest",
783        "@com_google_googletest//:gtest_main",
784    ],
785)
786
787cc_test(
788    name = "cordz_info_statistics_test",
789    srcs = [
790        "internal/cordz_info_statistics_test.cc",
791    ],
792    deps = [
793        ":cord",
794        ":cord_internal",
795        ":cordz_info",
796        ":cordz_sample_token",
797        ":cordz_statistics",
798        ":cordz_update_scope",
799        ":cordz_update_tracker",
800        "//absl/base:config",
801        "//absl/crc:crc_cord_state",
802        "//absl/synchronization",
803        "//absl/synchronization:thread_pool",
804        "@com_google_googletest//:gtest",
805        "@com_google_googletest//:gtest_main",
806    ],
807)
808
809cc_test(
810    name = "cordz_sample_token_test",
811    srcs = [
812        "internal/cordz_sample_token_test.cc",
813    ],
814    deps = [
815        ":cord_internal",
816        ":cordz_handle",
817        ":cordz_info",
818        ":cordz_sample_token",
819        ":cordz_test_helpers",
820        "//absl/base:config",
821        "//absl/memory",
822        "//absl/random",
823        "//absl/synchronization",
824        "//absl/synchronization:thread_pool",
825        "//absl/time",
826        "@com_google_googletest//:gtest",
827        "@com_google_googletest//:gtest_main",
828    ],
829)
830
831cc_library(
832    name = "cord_test_helpers",
833    testonly = True,
834    hdrs = [
835        "cord_test_helpers.h",
836    ],
837    copts = ABSL_DEFAULT_COPTS,
838    linkopts = ABSL_DEFAULT_LINKOPTS,
839    deps = [
840        ":cord",
841        ":cord_internal",
842        ":strings",
843        "//absl/base:config",
844    ],
845)
846
847cc_library(
848    name = "cord_rep_test_util",
849    testonly = True,
850    hdrs = ["internal/cord_rep_test_util.h"],
851    copts = ABSL_DEFAULT_COPTS,
852    linkopts = ABSL_DEFAULT_LINKOPTS,
853    deps = [
854        ":cord_internal",
855        ":strings",
856        "//absl/base:config",
857        "//absl/base:raw_logging_internal",
858    ],
859)
860
861cc_library(
862    name = "cordz_test_helpers",
863    testonly = True,
864    hdrs = ["cordz_test_helpers.h"],
865    copts = ABSL_DEFAULT_COPTS,
866    linkopts = ABSL_DEFAULT_LINKOPTS,
867    deps = [
868        ":cord",
869        ":cord_internal",
870        ":cordz_info",
871        ":cordz_sample_token",
872        ":cordz_statistics",
873        ":cordz_update_tracker",
874        ":strings",
875        "//absl/base:config",
876        "//absl/base:core_headers",
877        "//absl/base:nullability",
878        "@com_google_googletest//:gtest",
879    ],
880)
881
882cc_test(
883    name = "cord_buffer_test",
884    size = "small",
885    srcs = ["cord_buffer_test.cc"],
886    copts = ABSL_TEST_COPTS,
887    visibility = ["//visibility:private"],
888    deps = [
889        ":cord",
890        ":cord_internal",
891        ":cord_rep_test_util",
892        ":string_view",
893        "//absl/base:config",
894        "//absl/types:span",
895        "@com_google_googletest//:gtest",
896        "@com_google_googletest//:gtest_main",
897    ],
898)
899
900cc_test(
901    name = "cord_test",
902    size = "medium",
903    timeout = "long",
904    srcs = ["cord_test.cc"],
905    copts = ABSL_TEST_COPTS,
906    visibility = ["//visibility:private"],
907    deps = [
908        ":cord",
909        ":cord_internal",
910        ":cord_test_helpers",
911        ":cordz_functions",
912        ":cordz_statistics",
913        ":cordz_test_helpers",
914        ":cordz_update_tracker",
915        ":str_format",
916        ":strings",
917        "//absl/base:config",
918        "//absl/base:core_headers",
919        "//absl/base:endian",
920        "//absl/container:fixed_array",
921        "//absl/functional:function_ref",
922        "//absl/hash",
923        "//absl/hash:hash_testing",
924        "//absl/log",
925        "//absl/log:check",
926        "//absl/random",
927        "//absl/types:optional",
928        "@com_google_googletest//:gtest",
929        "@com_google_googletest//:gtest_main",
930    ],
931)
932
933cc_test(
934    name = "cordz_test",
935    size = "medium",
936    srcs = ["cordz_test.cc"],
937    copts = ABSL_TEST_COPTS,
938    tags = [
939        "benchmark",
940        "no_test_android_arm",
941        "no_test_android_arm64",
942        "no_test_android_x86",
943        "no_test_ios_x86_64",
944        "no_test_lexan",
945        "no_test_loonix",
946    ],
947    visibility = ["//visibility:private"],
948    deps = [
949        ":cord",
950        ":cord_internal",
951        ":cord_test_helpers",
952        ":cordz_functions",
953        ":cordz_info",
954        ":cordz_sample_token",
955        ":cordz_statistics",
956        ":cordz_test_helpers",
957        ":cordz_update_tracker",
958        ":strings",
959        "//absl/base:config",
960        "//absl/base:core_headers",
961        "//absl/base:raw_logging_internal",
962        "@com_google_googletest//:gtest",
963        "@com_google_googletest//:gtest_main",
964    ],
965)
966
967cc_test(
968    name = "substitute_test",
969    size = "small",
970    srcs = ["substitute_test.cc"],
971    copts = ABSL_TEST_COPTS,
972    visibility = ["//visibility:private"],
973    deps = [
974        ":strings",
975        "//absl/base:core_headers",
976        "@com_google_googletest//:gtest",
977        "@com_google_googletest//:gtest_main",
978    ],
979)
980
981cc_test(
982    name = "str_replace_benchmark",
983    srcs = ["str_replace_benchmark.cc"],
984    copts = ABSL_TEST_COPTS,
985    tags = ["benchmark"],
986    visibility = ["//visibility:private"],
987    deps = [
988        ":strings",
989        "//absl/base:raw_logging_internal",
990        "@com_github_google_benchmark//:benchmark_main",
991        "@com_google_googletest//:gtest",
992    ],
993)
994
995cc_test(
996    name = "str_replace_test",
997    size = "small",
998    srcs = ["str_replace_test.cc"],
999    copts = ABSL_TEST_COPTS,
1000    visibility = ["//visibility:private"],
1001    deps = [
1002        ":strings",
1003        "@com_google_googletest//:gtest",
1004        "@com_google_googletest//:gtest_main",
1005    ],
1006)
1007
1008cc_test(
1009    name = "str_split_test",
1010    srcs = ["str_split_test.cc"],
1011    copts = ABSL_TEST_COPTS,
1012    visibility = ["//visibility:private"],
1013    deps = [
1014        ":strings",
1015        "//absl/base:core_headers",
1016        "//absl/base:dynamic_annotations",
1017        "//absl/container:btree",
1018        "//absl/container:flat_hash_map",
1019        "//absl/container:node_hash_map",
1020        "@com_google_googletest//:gtest",
1021        "@com_google_googletest//:gtest_main",
1022    ],
1023)
1024
1025cc_test(
1026    name = "str_split_benchmark",
1027    srcs = ["str_split_benchmark.cc"],
1028    copts = ABSL_TEST_COPTS,
1029    tags = ["benchmark"],
1030    visibility = ["//visibility:private"],
1031    deps = [
1032        ":strings",
1033        "//absl/base:raw_logging_internal",
1034        "@com_github_google_benchmark//:benchmark_main",
1035        "@com_google_googletest//:gtest",
1036    ],
1037)
1038
1039cc_test(
1040    name = "ostringstream_test",
1041    size = "small",
1042    srcs = ["internal/ostringstream_test.cc"],
1043    copts = ABSL_TEST_COPTS,
1044    visibility = ["//visibility:private"],
1045    deps = [
1046        ":internal",
1047        "@com_google_googletest//:gtest",
1048        "@com_google_googletest//:gtest_main",
1049    ],
1050)
1051
1052cc_test(
1053    name = "ostringstream_benchmark",
1054    srcs = ["internal/ostringstream_benchmark.cc"],
1055    copts = ABSL_TEST_COPTS,
1056    tags = ["benchmark"],
1057    visibility = ["//visibility:private"],
1058    deps = [
1059        ":internal",
1060        "@com_github_google_benchmark//:benchmark_main",
1061        "@com_google_googletest//:gtest",
1062    ],
1063)
1064
1065cc_test(
1066    name = "resize_uninitialized_test",
1067    size = "small",
1068    srcs = [
1069        "internal/resize_uninitialized.h",
1070        "internal/resize_uninitialized_test.cc",
1071    ],
1072    copts = ABSL_TEST_COPTS,
1073    visibility = ["//visibility:private"],
1074    deps = [
1075        "//absl/base:core_headers",
1076        "//absl/meta:type_traits",
1077        "@com_google_googletest//:gtest",
1078        "@com_google_googletest//:gtest_main",
1079    ],
1080)
1081
1082cc_test(
1083    name = "str_join_test",
1084    size = "small",
1085    srcs = ["str_join_test.cc"],
1086    copts = ABSL_TEST_COPTS,
1087    visibility = ["//visibility:private"],
1088    deps = [
1089        ":strings",
1090        "//absl/base:core_headers",
1091        "//absl/memory",
1092        "@com_google_googletest//:gtest",
1093        "@com_google_googletest//:gtest_main",
1094    ],
1095)
1096
1097cc_test(
1098    name = "str_join_benchmark",
1099    srcs = ["str_join_benchmark.cc"],
1100    copts = ABSL_TEST_COPTS,
1101    tags = ["benchmark"],
1102    visibility = ["//visibility:private"],
1103    deps = [
1104        ":strings",
1105        "@com_github_google_benchmark//:benchmark_main",
1106        "@com_google_googletest//:gtest",
1107    ],
1108)
1109
1110cc_test(
1111    name = "str_cat_test",
1112    size = "small",
1113    srcs = ["str_cat_test.cc"],
1114    copts = ABSL_TEST_COPTS,
1115    visibility = ["//visibility:private"],
1116    deps = [
1117        ":str_format",
1118        ":strings",
1119        "@com_google_googletest//:gtest",
1120        "@com_google_googletest//:gtest_main",
1121    ],
1122)
1123
1124cc_test(
1125    name = "str_cat_benchmark",
1126    srcs = ["str_cat_benchmark.cc"],
1127    copts = ABSL_TEST_COPTS,
1128    tags = ["benchmark"],
1129    visibility = ["//visibility:private"],
1130    deps = [
1131        ":strings",
1132        "//absl/random",
1133        "//absl/random:distributions",
1134        "@com_github_google_benchmark//:benchmark_main",
1135        "@com_google_googletest//:gtest",
1136    ],
1137)
1138
1139cc_test(
1140    name = "numbers_test",
1141    size = "medium",
1142    srcs = [
1143        "internal/numbers_test_common.h",
1144        "numbers_test.cc",
1145    ],
1146    copts = ABSL_TEST_COPTS,
1147    visibility = ["//visibility:private"],
1148    deps = [
1149        ":internal",
1150        ":pow10_helper",
1151        ":strings",
1152        "//absl/base:config",
1153        "//absl/log",
1154        "//absl/numeric:int128",
1155        "//absl/random",
1156        "//absl/random:distributions",
1157        "@com_google_googletest//:gtest",
1158        "@com_google_googletest//:gtest_main",
1159    ],
1160)
1161
1162cc_test(
1163    name = "numbers_benchmark",
1164    srcs = ["numbers_benchmark.cc"],
1165    copts = ABSL_TEST_COPTS,
1166    tags = ["benchmark"],
1167    visibility = ["//visibility:private"],
1168    deps = [
1169        ":strings",
1170        "//absl/base:raw_logging_internal",
1171        "//absl/random",
1172        "//absl/random:distributions",
1173        "@com_github_google_benchmark//:benchmark_main",
1174        "@com_google_googletest//:gtest",
1175    ],
1176)
1177
1178cc_test(
1179    name = "strip_test",
1180    size = "small",
1181    srcs = ["strip_test.cc"],
1182    copts = ABSL_TEST_COPTS,
1183    visibility = ["//visibility:private"],
1184    deps = [
1185        ":strings",
1186        "@com_google_googletest//:gtest",
1187        "@com_google_googletest//:gtest_main",
1188    ],
1189)
1190
1191cc_test(
1192    name = "charconv_test",
1193    srcs = ["charconv_test.cc"],
1194    copts = ABSL_TEST_COPTS,
1195    deps = [
1196        ":pow10_helper",
1197        ":str_format",
1198        ":strings",
1199        "@com_google_googletest//:gtest",
1200        "@com_google_googletest//:gtest_main",
1201    ],
1202)
1203
1204cc_test(
1205    name = "charconv_parse_test",
1206    srcs = [
1207        "internal/charconv_parse.h",
1208        "internal/charconv_parse_test.cc",
1209    ],
1210    copts = ABSL_TEST_COPTS,
1211    deps = [
1212        ":strings",
1213        "//absl/base:config",
1214        "//absl/log:check",
1215        "@com_google_googletest//:gtest",
1216        "@com_google_googletest//:gtest_main",
1217    ],
1218)
1219
1220cc_test(
1221    name = "charconv_bigint_test",
1222    srcs = [
1223        "internal/charconv_bigint.h",
1224        "internal/charconv_bigint_test.cc",
1225        "internal/charconv_parse.h",
1226    ],
1227    copts = ABSL_TEST_COPTS,
1228    deps = [
1229        ":strings",
1230        "//absl/base:config",
1231        "@com_google_googletest//:gtest",
1232        "@com_google_googletest//:gtest_main",
1233    ],
1234)
1235
1236cc_test(
1237    name = "charconv_benchmark",
1238    srcs = [
1239        "charconv_benchmark.cc",
1240    ],
1241    tags = [
1242        "benchmark",
1243    ],
1244    deps = [
1245        ":strings",
1246        "@com_github_google_benchmark//:benchmark_main",
1247        "@com_google_googletest//:gtest",
1248    ],
1249)
1250
1251cc_library(
1252    name = "str_format",
1253    hdrs = [
1254        "str_format.h",
1255    ],
1256    copts = ABSL_DEFAULT_COPTS,
1257    linkopts = ABSL_DEFAULT_LINKOPTS,
1258    deps = [
1259        ":str_format_internal",
1260        ":string_view",
1261        "//absl/base:config",
1262        "//absl/base:core_headers",
1263        "//absl/base:nullability",
1264        "//absl/types:span",
1265    ],
1266)
1267
1268cc_library(
1269    name = "str_format_internal",
1270    srcs = [
1271        "internal/str_format/arg.cc",
1272        "internal/str_format/bind.cc",
1273        "internal/str_format/extension.cc",
1274        "internal/str_format/float_conversion.cc",
1275        "internal/str_format/output.cc",
1276        "internal/str_format/parser.cc",
1277    ],
1278    hdrs = [
1279        "internal/str_format/arg.h",
1280        "internal/str_format/bind.h",
1281        "internal/str_format/checker.h",
1282        "internal/str_format/constexpr_parser.h",
1283        "internal/str_format/extension.h",
1284        "internal/str_format/float_conversion.h",
1285        "internal/str_format/output.h",
1286        "internal/str_format/parser.h",
1287    ],
1288    copts = ABSL_DEFAULT_COPTS,
1289    linkopts = ABSL_DEFAULT_LINKOPTS,
1290    visibility = ["//visibility:private"],
1291    deps = [
1292        ":strings",
1293        "//absl/base:config",
1294        "//absl/base:core_headers",
1295        "//absl/container:fixed_array",
1296        "//absl/container:inlined_vector",
1297        "//absl/functional:function_ref",
1298        "//absl/meta:type_traits",
1299        "//absl/numeric:bits",
1300        "//absl/numeric:int128",
1301        "//absl/numeric:representation",
1302        "//absl/types:optional",
1303        "//absl/types:span",
1304        "//absl/utility",
1305    ],
1306)
1307
1308cc_test(
1309    name = "str_format_test",
1310    srcs = ["str_format_test.cc"],
1311    copts = ABSL_TEST_COPTS,
1312    visibility = ["//visibility:private"],
1313    deps = [
1314        ":cord",
1315        ":str_format",
1316        ":strings",
1317        "//absl/base:config",
1318        "//absl/base:core_headers",
1319        "//absl/types:span",
1320        "@com_google_googletest//:gtest",
1321        "@com_google_googletest//:gtest_main",
1322    ],
1323)
1324
1325cc_test(
1326    name = "str_format_extension_test",
1327    srcs = [
1328        "internal/str_format/extension_test.cc",
1329    ],
1330    copts = ABSL_TEST_COPTS,
1331    visibility = ["//visibility:private"],
1332    deps = [
1333        ":str_format",
1334        ":str_format_internal",
1335        ":strings",
1336        "@com_google_googletest//:gtest",
1337        "@com_google_googletest//:gtest_main",
1338    ],
1339)
1340
1341cc_test(
1342    name = "str_format_arg_test",
1343    srcs = ["internal/str_format/arg_test.cc"],
1344    copts = ABSL_TEST_COPTS,
1345    visibility = ["//visibility:private"],
1346    deps = [
1347        ":str_format",
1348        ":str_format_internal",
1349        "//absl/base:config",
1350        "@com_google_googletest//:gtest",
1351        "@com_google_googletest//:gtest_main",
1352    ],
1353)
1354
1355cc_test(
1356    name = "str_format_bind_test",
1357    srcs = ["internal/str_format/bind_test.cc"],
1358    copts = ABSL_TEST_COPTS,
1359    visibility = ["//visibility:private"],
1360    deps = [
1361        ":str_format_internal",
1362        "@com_google_googletest//:gtest",
1363        "@com_google_googletest//:gtest_main",
1364    ],
1365)
1366
1367cc_test(
1368    name = "str_format_checker_test",
1369    srcs = ["internal/str_format/checker_test.cc"],
1370    copts = ABSL_TEST_COPTS,
1371    visibility = ["//visibility:private"],
1372    deps = [
1373        ":str_format",
1374        "@com_google_googletest//:gtest",
1375        "@com_google_googletest//:gtest_main",
1376    ],
1377)
1378
1379cc_test(
1380    name = "str_format_convert_test",
1381    size = "medium",
1382    timeout = "long",
1383    srcs = ["internal/str_format/convert_test.cc"],
1384    copts = ABSL_TEST_COPTS,
1385    visibility = ["//visibility:private"],
1386    deps = [
1387        ":str_format",
1388        ":str_format_internal",
1389        ":strings",
1390        "//absl/base:config",
1391        "//absl/base:core_headers",
1392        "//absl/base:raw_logging_internal",
1393        "//absl/log",
1394        "//absl/numeric:int128",
1395        "//absl/types:optional",
1396        "//absl/types:span",
1397        "@com_google_googletest//:gtest",
1398        "@com_google_googletest//:gtest_main",
1399    ],
1400)
1401
1402cc_test(
1403    name = "str_format_output_test",
1404    srcs = ["internal/str_format/output_test.cc"],
1405    copts = ABSL_TEST_COPTS,
1406    visibility = ["//visibility:private"],
1407    deps = [
1408        ":cord",
1409        ":str_format_internal",
1410        "@com_google_googletest//:gtest",
1411        "@com_google_googletest//:gtest_main",
1412    ],
1413)
1414
1415cc_test(
1416    name = "str_format_parser_test",
1417    srcs = ["internal/str_format/parser_test.cc"],
1418    copts = ABSL_TEST_COPTS,
1419    visibility = ["//visibility:private"],
1420    deps = [
1421        ":str_format_internal",
1422        ":string_view",
1423        "//absl/base:config",
1424        "//absl/base:core_headers",
1425        "@com_google_googletest//:gtest",
1426        "@com_google_googletest//:gtest_main",
1427    ],
1428)
1429
1430cc_library(
1431    name = "pow10_helper",
1432    testonly = True,
1433    srcs = ["internal/pow10_helper.cc"],
1434    hdrs = ["internal/pow10_helper.h"],
1435    linkopts = ABSL_DEFAULT_LINKOPTS,
1436    visibility = ["//visibility:private"],
1437    deps = ["//absl/base:config"],
1438)
1439
1440cc_test(
1441    name = "pow10_helper_test",
1442    srcs = ["internal/pow10_helper_test.cc"],
1443    copts = ABSL_TEST_COPTS,
1444    visibility = ["//visibility:private"],
1445    deps = [
1446        ":pow10_helper",
1447        ":str_format",
1448        "@com_google_googletest//:gtest",
1449        "@com_google_googletest//:gtest_main",
1450    ],
1451)
1452
1453cc_binary(
1454    name = "atod_manual_test",
1455    testonly = True,
1456    srcs = ["atod_manual_test.cc"],
1457    copts = ABSL_TEST_COPTS,
1458    linkopts = ABSL_DEFAULT_LINKOPTS,
1459    visibility = ["//visibility:private"],
1460    deps = [
1461        ":str_format",
1462        ":strings",
1463        "//absl/base",
1464        "//absl/types:optional",
1465    ],
1466)
1467
1468cc_test(
1469    name = "char_formatting_test",
1470    srcs = [
1471        "char_formatting_test.cc",
1472    ],
1473    deps = [
1474        ":str_format",
1475        ":strings",
1476        "@com_google_googletest//:gtest",
1477        "@com_google_googletest//:gtest_main",
1478    ],
1479)
1480