xref: /aosp_15_r20/external/abseil-cpp/absl/strings/BUILD.bazel (revision 9356374a3709195abf420251b3e825997ff56c0f)
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/string_constant.h",
81        "match.h",
82        "numbers.h",
83        "str_cat.h",
84        "str_join.h",
85        "str_replace.h",
86        "str_split.h",
87        "string_view.h",
88        "strip.h",
89        "substitute.h",
90    ],
91    copts = ABSL_DEFAULT_COPTS,
92    linkopts = ABSL_DEFAULT_LINKOPTS,
93    textual_hdrs = [
94        # string_view.h was once part of :strings, so string_view.h is
95        # re-exported for backwards compatibility.
96        # New code should directly depend on :string_view.
97        "string_view.h",
98    ],
99    deps = [
100        ":charset",
101        ":internal",
102        ":string_view",
103        "//absl/base",
104        "//absl/base:config",
105        "//absl/base:core_headers",
106        "//absl/base:endian",
107        "//absl/base:nullability",
108        "//absl/base:raw_logging_internal",
109        "//absl/base:throw_delegate",
110        "//absl/memory",
111        "//absl/meta:type_traits",
112        "//absl/numeric:bits",
113        "//absl/numeric:int128",
114    ],
115)
116
117cc_library(
118    name = "internal",
119    srcs = [
120        "internal/escaping.cc",
121        "internal/ostringstream.cc",
122        "internal/utf8.cc",
123    ],
124    hdrs = [
125        "internal/escaping.h",
126        "internal/ostringstream.h",
127        "internal/resize_uninitialized.h",
128        "internal/utf8.h",
129    ],
130    copts = ABSL_DEFAULT_COPTS,
131    linkopts = ABSL_DEFAULT_LINKOPTS,
132    deps = [
133        "//absl/base:config",
134        "//absl/base:core_headers",
135        "//absl/base:endian",
136        "//absl/base:raw_logging_internal",
137        "//absl/meta:type_traits",
138    ],
139)
140
141cc_test(
142    name = "match_test",
143    size = "small",
144    srcs = ["match_test.cc"],
145    copts = ABSL_TEST_COPTS,
146    visibility = ["//visibility:private"],
147    deps = [
148        ":strings",
149        "@com_google_googletest//:gtest",
150        "@com_google_googletest//:gtest_main",
151    ],
152)
153
154cc_test(
155    name = "escaping_test",
156    size = "small",
157    srcs = [
158        "escaping_test.cc",
159        "internal/escaping_test_common.h",
160    ],
161    copts = ABSL_TEST_COPTS,
162    visibility = ["//visibility:private"],
163    deps = [
164        ":cord",
165        ":strings",
166        "//absl/base:core_headers",
167        "//absl/container:fixed_array",
168        "//absl/log:check",
169        "@com_google_googletest//:gtest",
170        "@com_google_googletest//:gtest_main",
171    ],
172)
173
174cc_test(
175    name = "escaping_benchmark",
176    srcs = [
177        "escaping_benchmark.cc",
178        "internal/escaping_test_common.h",
179    ],
180    copts = ABSL_TEST_COPTS,
181    tags = ["benchmark"],
182    visibility = ["//visibility:private"],
183    deps = [
184        ":strings",
185        "//absl/base:raw_logging_internal",
186        "@com_github_google_benchmark//:benchmark_main",
187        "@com_google_googletest//:gtest",
188    ],
189)
190
191cc_test(
192    name = "has_absl_stringify_test",
193    size = "small",
194    srcs = ["has_absl_stringify_test.cc"],
195    copts = ABSL_TEST_COPTS,
196    visibility = ["//visibility:private"],
197    deps = [
198        ":strings",
199        "//absl/types:optional",
200        "@com_google_googletest//:gtest",
201        "@com_google_googletest//:gtest_main",
202    ],
203)
204
205cc_library(
206    name = "has_ostream_operator",
207    hdrs = ["has_ostream_operator.h"],
208    copts = ABSL_DEFAULT_COPTS,
209    linkopts = ABSL_DEFAULT_LINKOPTS,
210    deps = [
211        "//absl/base:config",
212    ],
213)
214
215cc_test(
216    name = "has_ostream_operator_test",
217    size = "small",
218    srcs = ["has_ostream_operator_test.cc"],
219    copts = ABSL_TEST_COPTS,
220    visibility = ["//visibility:private"],
221    deps = [
222        ":has_ostream_operator",
223        "//absl/types:optional",
224        "@com_google_googletest//:gtest",
225        "@com_google_googletest//:gtest_main",
226    ],
227)
228
229cc_test(
230    name = "ascii_test",
231    size = "small",
232    srcs = ["ascii_test.cc"],
233    copts = ABSL_TEST_COPTS,
234    visibility = ["//visibility:private"],
235    deps = [
236        ":strings",
237        "//absl/base:core_headers",
238        "@com_google_googletest//:gtest",
239        "@com_google_googletest//:gtest_main",
240    ],
241)
242
243cc_test(
244    name = "ascii_benchmark",
245    srcs = ["ascii_benchmark.cc"],
246    copts = ABSL_TEST_COPTS,
247    tags = ["benchmark"],
248    visibility = ["//visibility:private"],
249    deps = [
250        ":strings",
251        "@com_github_google_benchmark//:benchmark_main",
252        "@com_google_googletest//:gtest",
253    ],
254)
255
256cc_test(
257    name = "damerau_levenshtein_distance_test",
258    size = "small",
259    srcs = [
260        "internal/damerau_levenshtein_distance_test.cc",
261    ],
262    copts = ABSL_TEST_COPTS,
263    deps = [
264        "//absl/strings",
265        "@com_google_googletest//:gtest",
266        "@com_google_googletest//:gtest_main",
267    ],
268)
269
270cc_test(
271    name = "memutil_benchmark",
272    srcs = [
273        "internal/memutil.h",
274        "internal/memutil_benchmark.cc",
275    ],
276    copts = ABSL_TEST_COPTS,
277    tags = ["benchmark"],
278    visibility = ["//visibility:private"],
279    deps = [
280        ":strings",
281        "//absl/base:core_headers",
282        "@com_github_google_benchmark//:benchmark_main",
283        "@com_google_googletest//:gtest",
284    ],
285)
286
287cc_test(
288    name = "memutil_test",
289    size = "small",
290    srcs = [
291        "internal/memutil.h",
292        "internal/memutil_test.cc",
293    ],
294    copts = ABSL_TEST_COPTS,
295    visibility = ["//visibility:private"],
296    deps = [
297        ":strings",
298        "//absl/base:core_headers",
299        "@com_google_googletest//:gtest",
300        "@com_google_googletest//:gtest_main",
301    ],
302)
303
304cc_test(
305    name = "utf8_test",
306    size = "small",
307    srcs = [
308        "internal/utf8_test.cc",
309    ],
310    copts = ABSL_TEST_COPTS,
311    visibility = ["//visibility:private"],
312    deps = [
313        ":internal",
314        "//absl/base:core_headers",
315        "@com_google_googletest//:gtest",
316        "@com_google_googletest//:gtest_main",
317    ],
318)
319
320cc_test(
321    name = "string_constant_test",
322    size = "small",
323    srcs = ["internal/string_constant_test.cc"],
324    copts = ABSL_TEST_COPTS,
325    visibility = ["//visibility:private"],
326    deps = [
327        ":strings",
328        "//absl/meta:type_traits",
329        "@com_google_googletest//:gtest",
330        "@com_google_googletest//:gtest_main",
331    ],
332)
333
334cc_test(
335    name = "string_view_benchmark",
336    srcs = ["string_view_benchmark.cc"],
337    copts = ABSL_TEST_COPTS,
338    tags = ["benchmark"],
339    visibility = ["//visibility:private"],
340    deps = [
341        ":string_view",
342        ":strings",
343        "//absl/base:core_headers",
344        "//absl/base:raw_logging_internal",
345        "@com_github_google_benchmark//:benchmark_main",
346        "@com_google_googletest//:gtest",
347    ],
348)
349
350cc_test(
351    name = "string_view_test",
352    size = "small",
353    srcs = ["string_view_test.cc"],
354    copts = ABSL_TEST_COPTS,
355    visibility = ["//visibility:private"],
356    deps = [
357        ":string_view",
358        "//absl/base:config",
359        "//absl/base:core_headers",
360        "//absl/base:dynamic_annotations",
361        "//absl/meta:type_traits",
362        "@com_google_googletest//:gtest",
363        "@com_google_googletest//:gtest_main",
364    ],
365)
366
367cc_test(
368    name = "charset_benchmark",
369    size = "small",
370    srcs = [
371        "charset_benchmark.cc",
372    ],
373    copts = ABSL_TEST_COPTS,
374    tags = [
375        "benchmark",
376    ],
377    visibility = ["//visibility:private"],
378    deps = [
379        ":charset",
380        "//absl/log:check",
381        "@com_github_google_benchmark//:benchmark_main",
382        "@com_google_googletest//:gtest",
383    ],
384)
385
386cc_library(
387    name = "charset",
388    hdrs = [
389        "charset.h",
390    ],
391    copts = ABSL_DEFAULT_COPTS,
392    linkopts = ABSL_DEFAULT_LINKOPTS,
393    deps = [
394        ":string_view",
395        "//absl/base:core_headers",
396    ],
397)
398
399cc_test(
400    name = "charset_test",
401    size = "small",
402    srcs = ["charset_test.cc"],
403    copts = ABSL_TEST_COPTS,
404    visibility = ["//visibility:private"],
405    deps = [
406        ":charset",
407        ":strings",
408        "@com_google_googletest//:gtest",
409        "@com_google_googletest//:gtest_main",
410    ],
411)
412
413cc_library(
414    name = "cord_internal",
415    srcs = [
416        "internal/cord_internal.cc",
417        "internal/cord_rep_btree.cc",
418        "internal/cord_rep_btree_navigator.cc",
419        "internal/cord_rep_btree_reader.cc",
420        "internal/cord_rep_consume.cc",
421        "internal/cord_rep_crc.cc",
422    ],
423    hdrs = [
424        "internal/cord_data_edge.h",
425        "internal/cord_internal.h",
426        "internal/cord_rep_btree.h",
427        "internal/cord_rep_btree_navigator.h",
428        "internal/cord_rep_btree_reader.h",
429        "internal/cord_rep_consume.h",
430        "internal/cord_rep_crc.h",
431        "internal/cord_rep_flat.h",
432    ],
433    copts = ABSL_DEFAULT_COPTS,
434    linkopts = ABSL_DEFAULT_LINKOPTS,
435    visibility = [
436        "//visibility:private",
437    ],
438    deps = [
439        ":strings",
440        "//absl/base:base_internal",
441        "//absl/base:config",
442        "//absl/base:core_headers",
443        "//absl/base:endian",
444        "//absl/base:raw_logging_internal",
445        "//absl/base:throw_delegate",
446        "//absl/container:compressed_tuple",
447        "//absl/container:container_memory",
448        "//absl/container:inlined_vector",
449        "//absl/container:layout",
450        "//absl/crc:crc_cord_state",
451        "//absl/functional:function_ref",
452        "//absl/meta:type_traits",
453        "//absl/types:span",
454    ],
455)
456
457cc_test(
458    name = "cord_data_edge_test",
459    size = "small",
460    srcs = ["internal/cord_data_edge_test.cc"],
461    copts = ABSL_TEST_COPTS,
462    visibility = ["//visibility:private"],
463    deps = [
464        ":cord_internal",
465        ":cord_rep_test_util",
466        ":strings",
467        "//absl/base:config",
468        "@com_google_googletest//:gtest",
469        "@com_google_googletest//:gtest_main",
470    ],
471)
472
473cc_test(
474    name = "cord_rep_btree_test",
475    size = "medium",
476    timeout = "long",
477    srcs = ["internal/cord_rep_btree_test.cc"],
478    copts = ABSL_TEST_COPTS,
479    visibility = ["//visibility:private"],
480    deps = [
481        ":cord_internal",
482        ":cord_rep_test_util",
483        ":strings",
484        "//absl/base:config",
485        "//absl/base:raw_logging_internal",
486        "//absl/cleanup",
487        "@com_google_googletest//:gtest",
488        "@com_google_googletest//:gtest_main",
489    ],
490)
491
492cc_test(
493    name = "cord_rep_btree_navigator_test",
494    size = "medium",
495    srcs = ["internal/cord_rep_btree_navigator_test.cc"],
496    copts = ABSL_TEST_COPTS,
497    visibility = ["//visibility:private"],
498    deps = [
499        ":cord_internal",
500        ":cord_rep_test_util",
501        ":strings",
502        "//absl/base:config",
503        "//absl/base:raw_logging_internal",
504        "@com_google_googletest//:gtest",
505        "@com_google_googletest//:gtest_main",
506    ],
507)
508
509cc_test(
510    name = "cord_rep_btree_reader_test",
511    size = "medium",
512    srcs = ["internal/cord_rep_btree_reader_test.cc"],
513    copts = ABSL_TEST_COPTS,
514    visibility = ["//visibility:private"],
515    deps = [
516        ":cord",
517        ":cord_internal",
518        ":cord_rep_test_util",
519        ":strings",
520        "//absl/base:config",
521        "//absl/base:raw_logging_internal",
522        "@com_google_googletest//:gtest",
523        "@com_google_googletest//:gtest_main",
524    ],
525)
526
527cc_test(
528    name = "cord_rep_crc_test",
529    size = "small",
530    srcs = ["internal/cord_rep_crc_test.cc"],
531    copts = ABSL_TEST_COPTS,
532    visibility = ["//visibility:private"],
533    deps = [
534        ":cord_internal",
535        ":cord_rep_test_util",
536        "//absl/base:config",
537        "//absl/crc:crc_cord_state",
538        "@com_google_googletest//:gtest",
539        "@com_google_googletest//:gtest_main",
540    ],
541)
542
543cc_library(
544    name = "cordz_update_tracker",
545    hdrs = ["internal/cordz_update_tracker.h"],
546    copts = ABSL_DEFAULT_COPTS,
547    linkopts = ABSL_DEFAULT_LINKOPTS,
548    visibility = [
549        "//absl:__subpackages__",
550    ],
551    deps = ["//absl/base:config"],
552)
553
554cc_test(
555    name = "cordz_update_tracker_test",
556    srcs = ["internal/cordz_update_tracker_test.cc"],
557    deps = [
558        ":cordz_update_tracker",
559        "//absl/base:config",
560        "//absl/base:core_headers",
561        "//absl/synchronization",
562        "@com_google_googletest//:gtest",
563        "@com_google_googletest//:gtest_main",
564    ],
565)
566
567cc_library(
568    name = "cord",
569    srcs = [
570        "cord.cc",
571        "cord_analysis.cc",
572        "cord_analysis.h",
573        "cord_buffer.cc",
574    ],
575    hdrs = [
576        "cord.h",
577        "cord_buffer.h",
578    ],
579    copts = ABSL_DEFAULT_COPTS,
580    linkopts = ABSL_DEFAULT_LINKOPTS,
581    deps = [
582        ":cord_internal",
583        ":cordz_functions",
584        ":cordz_info",
585        ":cordz_statistics",
586        ":cordz_update_scope",
587        ":cordz_update_tracker",
588        ":internal",
589        ":strings",
590        "//absl/base",
591        "//absl/base:config",
592        "//absl/base:core_headers",
593        "//absl/base:endian",
594        "//absl/base:nullability",
595        "//absl/base:raw_logging_internal",
596        "//absl/container:inlined_vector",
597        "//absl/crc:crc32c",
598        "//absl/crc:crc_cord_state",
599        "//absl/functional:function_ref",
600        "//absl/meta:type_traits",
601        "//absl/numeric:bits",
602        "//absl/types:compare",
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/base:no_destructor",
921        "//absl/container:fixed_array",
922        "//absl/functional:function_ref",
923        "//absl/hash",
924        "//absl/hash:hash_testing",
925        "//absl/log",
926        "//absl/log:check",
927        "//absl/random",
928        "//absl/types:compare",
929        "//absl/types:optional",
930        "@com_google_googletest//:gtest",
931        "@com_google_googletest//:gtest_main",
932    ],
933)
934
935cc_test(
936    name = "cordz_test",
937    size = "medium",
938    srcs = ["cordz_test.cc"],
939    copts = ABSL_TEST_COPTS,
940    tags = [
941        "benchmark",
942        "no_test_android_arm",
943        "no_test_android_arm64",
944        "no_test_android_x86",
945        "no_test_ios_x86_64",
946        "no_test_lexan",
947        "no_test_loonix",
948    ],
949    visibility = ["//visibility:private"],
950    deps = [
951        ":cord",
952        ":cord_internal",
953        ":cord_test_helpers",
954        ":cordz_functions",
955        ":cordz_info",
956        ":cordz_sample_token",
957        ":cordz_statistics",
958        ":cordz_test_helpers",
959        ":cordz_update_tracker",
960        ":strings",
961        "//absl/base:config",
962        "//absl/base:core_headers",
963        "//absl/base:raw_logging_internal",
964        "@com_google_googletest//:gtest",
965        "@com_google_googletest//:gtest_main",
966    ],
967)
968
969cc_test(
970    name = "substitute_test",
971    size = "small",
972    srcs = ["substitute_test.cc"],
973    copts = ABSL_TEST_COPTS,
974    visibility = ["//visibility:private"],
975    deps = [
976        ":strings",
977        "//absl/base:core_headers",
978        "@com_google_googletest//:gtest",
979        "@com_google_googletest//:gtest_main",
980    ],
981)
982
983cc_test(
984    name = "str_replace_benchmark",
985    srcs = ["str_replace_benchmark.cc"],
986    copts = ABSL_TEST_COPTS,
987    tags = ["benchmark"],
988    visibility = ["//visibility:private"],
989    deps = [
990        ":strings",
991        "//absl/base:raw_logging_internal",
992        "@com_github_google_benchmark//:benchmark_main",
993        "@com_google_googletest//:gtest",
994    ],
995)
996
997cc_test(
998    name = "str_replace_test",
999    size = "small",
1000    srcs = ["str_replace_test.cc"],
1001    copts = ABSL_TEST_COPTS,
1002    visibility = ["//visibility:private"],
1003    deps = [
1004        ":strings",
1005        "@com_google_googletest//:gtest",
1006        "@com_google_googletest//:gtest_main",
1007    ],
1008)
1009
1010cc_test(
1011    name = "str_split_test",
1012    srcs = ["str_split_test.cc"],
1013    copts = ABSL_TEST_COPTS,
1014    visibility = ["//visibility:private"],
1015    deps = [
1016        ":strings",
1017        "//absl/base:core_headers",
1018        "//absl/base:dynamic_annotations",
1019        "//absl/container:btree",
1020        "//absl/container:flat_hash_map",
1021        "//absl/container:node_hash_map",
1022        "@com_google_googletest//:gtest",
1023        "@com_google_googletest//:gtest_main",
1024    ],
1025)
1026
1027cc_test(
1028    name = "str_split_benchmark",
1029    srcs = ["str_split_benchmark.cc"],
1030    copts = ABSL_TEST_COPTS,
1031    tags = ["benchmark"],
1032    visibility = ["//visibility:private"],
1033    deps = [
1034        ":strings",
1035        "//absl/base:raw_logging_internal",
1036        "@com_github_google_benchmark//:benchmark_main",
1037        "@com_google_googletest//:gtest",
1038    ],
1039)
1040
1041cc_test(
1042    name = "ostringstream_test",
1043    size = "small",
1044    srcs = ["internal/ostringstream_test.cc"],
1045    copts = ABSL_TEST_COPTS,
1046    visibility = ["//visibility:private"],
1047    deps = [
1048        ":internal",
1049        "@com_google_googletest//:gtest",
1050        "@com_google_googletest//:gtest_main",
1051    ],
1052)
1053
1054cc_test(
1055    name = "ostringstream_benchmark",
1056    srcs = ["internal/ostringstream_benchmark.cc"],
1057    copts = ABSL_TEST_COPTS,
1058    tags = ["benchmark"],
1059    visibility = ["//visibility:private"],
1060    deps = [
1061        ":internal",
1062        "@com_github_google_benchmark//:benchmark_main",
1063        "@com_google_googletest//:gtest",
1064    ],
1065)
1066
1067cc_test(
1068    name = "resize_uninitialized_test",
1069    size = "small",
1070    srcs = [
1071        "internal/resize_uninitialized.h",
1072        "internal/resize_uninitialized_test.cc",
1073    ],
1074    copts = ABSL_TEST_COPTS,
1075    visibility = ["//visibility:private"],
1076    deps = [
1077        "//absl/base:core_headers",
1078        "//absl/meta:type_traits",
1079        "@com_google_googletest//:gtest",
1080        "@com_google_googletest//:gtest_main",
1081    ],
1082)
1083
1084cc_test(
1085    name = "str_join_test",
1086    size = "small",
1087    srcs = ["str_join_test.cc"],
1088    copts = ABSL_TEST_COPTS,
1089    visibility = ["//visibility:private"],
1090    deps = [
1091        ":strings",
1092        "//absl/base:core_headers",
1093        "//absl/memory",
1094        "@com_google_googletest//:gtest",
1095        "@com_google_googletest//:gtest_main",
1096    ],
1097)
1098
1099cc_test(
1100    name = "str_join_benchmark",
1101    srcs = ["str_join_benchmark.cc"],
1102    copts = ABSL_TEST_COPTS,
1103    tags = ["benchmark"],
1104    visibility = ["//visibility:private"],
1105    deps = [
1106        ":strings",
1107        "@com_github_google_benchmark//:benchmark_main",
1108        "@com_google_googletest//:gtest",
1109    ],
1110)
1111
1112cc_test(
1113    name = "str_cat_test",
1114    size = "small",
1115    srcs = ["str_cat_test.cc"],
1116    copts = ABSL_TEST_COPTS,
1117    visibility = ["//visibility:private"],
1118    deps = [
1119        ":str_format",
1120        ":strings",
1121        "@com_google_googletest//:gtest",
1122        "@com_google_googletest//:gtest_main",
1123    ],
1124)
1125
1126cc_test(
1127    name = "str_cat_benchmark",
1128    srcs = ["str_cat_benchmark.cc"],
1129    copts = ABSL_TEST_COPTS,
1130    tags = ["benchmark"],
1131    visibility = ["//visibility:private"],
1132    deps = [
1133        ":strings",
1134        "//absl/random",
1135        "//absl/random:distributions",
1136        "@com_github_google_benchmark//:benchmark_main",
1137        "@com_google_googletest//:gtest",
1138    ],
1139)
1140
1141cc_test(
1142    name = "numbers_test",
1143    size = "medium",
1144    srcs = [
1145        "internal/numbers_test_common.h",
1146        "numbers_test.cc",
1147    ],
1148    copts = ABSL_TEST_COPTS,
1149    visibility = ["//visibility:private"],
1150    deps = [
1151        ":internal",
1152        ":pow10_helper",
1153        ":strings",
1154        "//absl/base:config",
1155        "//absl/log",
1156        "//absl/numeric:int128",
1157        "//absl/random",
1158        "//absl/random:distributions",
1159        "@com_google_googletest//:gtest",
1160        "@com_google_googletest//:gtest_main",
1161    ],
1162)
1163
1164cc_test(
1165    name = "numbers_benchmark",
1166    srcs = ["numbers_benchmark.cc"],
1167    copts = ABSL_TEST_COPTS,
1168    tags = ["benchmark"],
1169    visibility = ["//visibility:private"],
1170    deps = [
1171        ":strings",
1172        "//absl/base:raw_logging_internal",
1173        "//absl/random",
1174        "//absl/random:distributions",
1175        "@com_github_google_benchmark//:benchmark_main",
1176        "@com_google_googletest//:gtest",
1177    ],
1178)
1179
1180cc_test(
1181    name = "strip_test",
1182    size = "small",
1183    srcs = ["strip_test.cc"],
1184    copts = ABSL_TEST_COPTS,
1185    visibility = ["//visibility:private"],
1186    deps = [
1187        ":strings",
1188        "@com_google_googletest//:gtest",
1189        "@com_google_googletest//:gtest_main",
1190    ],
1191)
1192
1193cc_test(
1194    name = "charconv_test",
1195    srcs = ["charconv_test.cc"],
1196    copts = ABSL_TEST_COPTS,
1197    deps = [
1198        ":pow10_helper",
1199        ":str_format",
1200        ":strings",
1201        "@com_google_googletest//:gtest",
1202        "@com_google_googletest//:gtest_main",
1203    ],
1204)
1205
1206cc_test(
1207    name = "charconv_parse_test",
1208    srcs = [
1209        "internal/charconv_parse.h",
1210        "internal/charconv_parse_test.cc",
1211    ],
1212    copts = ABSL_TEST_COPTS,
1213    deps = [
1214        ":strings",
1215        "//absl/base:config",
1216        "//absl/log:check",
1217        "@com_google_googletest//:gtest",
1218        "@com_google_googletest//:gtest_main",
1219    ],
1220)
1221
1222cc_test(
1223    name = "charconv_bigint_test",
1224    srcs = [
1225        "internal/charconv_bigint.h",
1226        "internal/charconv_bigint_test.cc",
1227        "internal/charconv_parse.h",
1228    ],
1229    copts = ABSL_TEST_COPTS,
1230    deps = [
1231        ":strings",
1232        "//absl/base:config",
1233        "@com_google_googletest//:gtest",
1234        "@com_google_googletest//:gtest_main",
1235    ],
1236)
1237
1238cc_test(
1239    name = "charconv_benchmark",
1240    srcs = [
1241        "charconv_benchmark.cc",
1242    ],
1243    tags = [
1244        "benchmark",
1245    ],
1246    deps = [
1247        ":strings",
1248        "@com_github_google_benchmark//:benchmark_main",
1249        "@com_google_googletest//:gtest",
1250    ],
1251)
1252
1253cc_library(
1254    name = "str_format",
1255    hdrs = [
1256        "str_format.h",
1257    ],
1258    copts = ABSL_DEFAULT_COPTS,
1259    linkopts = ABSL_DEFAULT_LINKOPTS,
1260    deps = [
1261        ":str_format_internal",
1262        ":string_view",
1263        "//absl/base:config",
1264        "//absl/base:core_headers",
1265        "//absl/base:nullability",
1266        "//absl/types:span",
1267    ],
1268)
1269
1270cc_library(
1271    name = "str_format_internal",
1272    srcs = [
1273        "internal/str_format/arg.cc",
1274        "internal/str_format/bind.cc",
1275        "internal/str_format/extension.cc",
1276        "internal/str_format/float_conversion.cc",
1277        "internal/str_format/output.cc",
1278        "internal/str_format/parser.cc",
1279    ],
1280    hdrs = [
1281        "internal/str_format/arg.h",
1282        "internal/str_format/bind.h",
1283        "internal/str_format/checker.h",
1284        "internal/str_format/constexpr_parser.h",
1285        "internal/str_format/extension.h",
1286        "internal/str_format/float_conversion.h",
1287        "internal/str_format/output.h",
1288        "internal/str_format/parser.h",
1289    ],
1290    copts = ABSL_DEFAULT_COPTS,
1291    linkopts = ABSL_DEFAULT_LINKOPTS,
1292    visibility = ["//visibility:private"],
1293    deps = [
1294        ":strings",
1295        "//absl/base:config",
1296        "//absl/base:core_headers",
1297        "//absl/container:fixed_array",
1298        "//absl/container:inlined_vector",
1299        "//absl/functional:function_ref",
1300        "//absl/meta:type_traits",
1301        "//absl/numeric:bits",
1302        "//absl/numeric:int128",
1303        "//absl/numeric:representation",
1304        "//absl/types:optional",
1305        "//absl/types:span",
1306        "//absl/utility",
1307    ],
1308)
1309
1310cc_test(
1311    name = "str_format_test",
1312    srcs = ["str_format_test.cc"],
1313    copts = ABSL_TEST_COPTS,
1314    visibility = ["//visibility:private"],
1315    deps = [
1316        ":cord",
1317        ":str_format",
1318        ":strings",
1319        "//absl/base:config",
1320        "//absl/base:core_headers",
1321        "//absl/types:span",
1322        "@com_google_googletest//:gtest",
1323        "@com_google_googletest//:gtest_main",
1324    ],
1325)
1326
1327cc_test(
1328    name = "str_format_extension_test",
1329    srcs = [
1330        "internal/str_format/extension_test.cc",
1331    ],
1332    copts = ABSL_TEST_COPTS,
1333    visibility = ["//visibility:private"],
1334    deps = [
1335        ":str_format",
1336        ":str_format_internal",
1337        ":strings",
1338        "@com_google_googletest//:gtest",
1339        "@com_google_googletest//:gtest_main",
1340    ],
1341)
1342
1343cc_test(
1344    name = "str_format_arg_test",
1345    srcs = ["internal/str_format/arg_test.cc"],
1346    copts = ABSL_TEST_COPTS,
1347    visibility = ["//visibility:private"],
1348    deps = [
1349        ":str_format",
1350        ":str_format_internal",
1351        "//absl/base:config",
1352        "@com_google_googletest//:gtest",
1353        "@com_google_googletest//:gtest_main",
1354    ],
1355)
1356
1357cc_test(
1358    name = "str_format_bind_test",
1359    srcs = ["internal/str_format/bind_test.cc"],
1360    copts = ABSL_TEST_COPTS,
1361    visibility = ["//visibility:private"],
1362    deps = [
1363        ":str_format_internal",
1364        "@com_google_googletest//:gtest",
1365        "@com_google_googletest//:gtest_main",
1366    ],
1367)
1368
1369cc_test(
1370    name = "str_format_checker_test",
1371    srcs = ["internal/str_format/checker_test.cc"],
1372    copts = ABSL_TEST_COPTS,
1373    visibility = ["//visibility:private"],
1374    deps = [
1375        ":str_format",
1376        "@com_google_googletest//:gtest",
1377        "@com_google_googletest//:gtest_main",
1378    ],
1379)
1380
1381cc_test(
1382    name = "str_format_convert_test",
1383    size = "medium",
1384    timeout = "long",
1385    srcs = ["internal/str_format/convert_test.cc"],
1386    copts = ABSL_TEST_COPTS,
1387    visibility = ["//visibility:private"],
1388    deps = [
1389        ":str_format",
1390        ":str_format_internal",
1391        ":strings",
1392        "//absl/base:config",
1393        "//absl/base:core_headers",
1394        "//absl/base:raw_logging_internal",
1395        "//absl/log",
1396        "//absl/numeric:int128",
1397        "//absl/types:optional",
1398        "//absl/types:span",
1399        "@com_google_googletest//:gtest",
1400        "@com_google_googletest//:gtest_main",
1401    ],
1402)
1403
1404cc_test(
1405    name = "str_format_output_test",
1406    srcs = ["internal/str_format/output_test.cc"],
1407    copts = ABSL_TEST_COPTS,
1408    visibility = ["//visibility:private"],
1409    deps = [
1410        ":cord",
1411        ":str_format_internal",
1412        "@com_google_googletest//:gtest",
1413        "@com_google_googletest//:gtest_main",
1414    ],
1415)
1416
1417cc_test(
1418    name = "str_format_parser_test",
1419    srcs = ["internal/str_format/parser_test.cc"],
1420    copts = ABSL_TEST_COPTS,
1421    visibility = ["//visibility:private"],
1422    deps = [
1423        ":str_format_internal",
1424        ":string_view",
1425        "//absl/base:config",
1426        "//absl/base:core_headers",
1427        "@com_google_googletest//:gtest",
1428        "@com_google_googletest//:gtest_main",
1429    ],
1430)
1431
1432cc_library(
1433    name = "pow10_helper",
1434    testonly = True,
1435    srcs = ["internal/pow10_helper.cc"],
1436    hdrs = ["internal/pow10_helper.h"],
1437    linkopts = ABSL_DEFAULT_LINKOPTS,
1438    visibility = ["//visibility:private"],
1439    deps = ["//absl/base:config"],
1440)
1441
1442cc_test(
1443    name = "pow10_helper_test",
1444    srcs = ["internal/pow10_helper_test.cc"],
1445    copts = ABSL_TEST_COPTS,
1446    visibility = ["//visibility:private"],
1447    deps = [
1448        ":pow10_helper",
1449        ":str_format",
1450        "@com_google_googletest//:gtest",
1451        "@com_google_googletest//:gtest_main",
1452    ],
1453)
1454
1455cc_binary(
1456    name = "atod_manual_test",
1457    testonly = True,
1458    srcs = ["atod_manual_test.cc"],
1459    copts = ABSL_TEST_COPTS,
1460    linkopts = ABSL_DEFAULT_LINKOPTS,
1461    visibility = ["//visibility:private"],
1462    deps = [
1463        ":str_format",
1464        ":strings",
1465        "//absl/base",
1466        "//absl/types:optional",
1467    ],
1468)
1469
1470cc_test(
1471    name = "char_formatting_test",
1472    srcs = [
1473        "char_formatting_test.cc",
1474    ],
1475    deps = [
1476        ":str_format",
1477        ":strings",
1478        "@com_google_googletest//:gtest",
1479        "@com_google_googletest//:gtest_main",
1480    ],
1481)
1482