• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/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:optional",
929        "@com_google_googletest//:gtest",
930        "@com_google_googletest//:gtest_main",
931    ],
932)
933
934cc_test(
935    name = "cordz_test",
936    size = "medium",
937    srcs = ["cordz_test.cc"],
938    copts = ABSL_TEST_COPTS,
939    tags = [
940        "benchmark",
941        "no_test_android_arm",
942        "no_test_android_arm64",
943        "no_test_android_x86",
944        "no_test_ios_x86_64",
945        "no_test_lexan",
946        "no_test_loonix",
947    ],
948    visibility = ["//visibility:private"],
949    deps = [
950        ":cord",
951        ":cord_internal",
952        ":cord_test_helpers",
953        ":cordz_functions",
954        ":cordz_info",
955        ":cordz_sample_token",
956        ":cordz_statistics",
957        ":cordz_test_helpers",
958        ":cordz_update_tracker",
959        ":strings",
960        "//absl/base:config",
961        "//absl/base:core_headers",
962        "//absl/base:raw_logging_internal",
963        "@com_google_googletest//:gtest",
964        "@com_google_googletest//:gtest_main",
965    ],
966)
967
968cc_test(
969    name = "substitute_test",
970    size = "small",
971    srcs = ["substitute_test.cc"],
972    copts = ABSL_TEST_COPTS,
973    visibility = ["//visibility:private"],
974    deps = [
975        ":strings",
976        "//absl/base:core_headers",
977        "@com_google_googletest//:gtest",
978        "@com_google_googletest//:gtest_main",
979    ],
980)
981
982cc_test(
983    name = "str_replace_benchmark",
984    srcs = ["str_replace_benchmark.cc"],
985    copts = ABSL_TEST_COPTS,
986    tags = ["benchmark"],
987    visibility = ["//visibility:private"],
988    deps = [
989        ":strings",
990        "//absl/base:raw_logging_internal",
991        "@com_github_google_benchmark//:benchmark_main",
992        "@com_google_googletest//:gtest",
993    ],
994)
995
996cc_test(
997    name = "str_replace_test",
998    size = "small",
999    srcs = ["str_replace_test.cc"],
1000    copts = ABSL_TEST_COPTS,
1001    visibility = ["//visibility:private"],
1002    deps = [
1003        ":strings",
1004        "@com_google_googletest//:gtest",
1005        "@com_google_googletest//:gtest_main",
1006    ],
1007)
1008
1009cc_test(
1010    name = "str_split_test",
1011    srcs = ["str_split_test.cc"],
1012    copts = ABSL_TEST_COPTS,
1013    visibility = ["//visibility:private"],
1014    deps = [
1015        ":strings",
1016        "//absl/base:core_headers",
1017        "//absl/base:dynamic_annotations",
1018        "//absl/container:btree",
1019        "//absl/container:flat_hash_map",
1020        "//absl/container:node_hash_map",
1021        "@com_google_googletest//:gtest",
1022        "@com_google_googletest//:gtest_main",
1023    ],
1024)
1025
1026cc_test(
1027    name = "str_split_benchmark",
1028    srcs = ["str_split_benchmark.cc"],
1029    copts = ABSL_TEST_COPTS,
1030    tags = ["benchmark"],
1031    visibility = ["//visibility:private"],
1032    deps = [
1033        ":strings",
1034        "//absl/base:raw_logging_internal",
1035        "@com_github_google_benchmark//:benchmark_main",
1036        "@com_google_googletest//:gtest",
1037    ],
1038)
1039
1040cc_test(
1041    name = "ostringstream_test",
1042    size = "small",
1043    srcs = ["internal/ostringstream_test.cc"],
1044    copts = ABSL_TEST_COPTS,
1045    visibility = ["//visibility:private"],
1046    deps = [
1047        ":internal",
1048        "@com_google_googletest//:gtest",
1049        "@com_google_googletest//:gtest_main",
1050    ],
1051)
1052
1053cc_test(
1054    name = "ostringstream_benchmark",
1055    srcs = ["internal/ostringstream_benchmark.cc"],
1056    copts = ABSL_TEST_COPTS,
1057    tags = ["benchmark"],
1058    visibility = ["//visibility:private"],
1059    deps = [
1060        ":internal",
1061        "@com_github_google_benchmark//:benchmark_main",
1062        "@com_google_googletest//:gtest",
1063    ],
1064)
1065
1066cc_test(
1067    name = "resize_uninitialized_test",
1068    size = "small",
1069    srcs = [
1070        "internal/resize_uninitialized.h",
1071        "internal/resize_uninitialized_test.cc",
1072    ],
1073    copts = ABSL_TEST_COPTS,
1074    visibility = ["//visibility:private"],
1075    deps = [
1076        "//absl/base:core_headers",
1077        "//absl/meta:type_traits",
1078        "@com_google_googletest//:gtest",
1079        "@com_google_googletest//:gtest_main",
1080    ],
1081)
1082
1083cc_test(
1084    name = "str_join_test",
1085    size = "small",
1086    srcs = ["str_join_test.cc"],
1087    copts = ABSL_TEST_COPTS,
1088    visibility = ["//visibility:private"],
1089    deps = [
1090        ":strings",
1091        "//absl/base:core_headers",
1092        "//absl/memory",
1093        "@com_google_googletest//:gtest",
1094        "@com_google_googletest//:gtest_main",
1095    ],
1096)
1097
1098cc_test(
1099    name = "str_join_benchmark",
1100    srcs = ["str_join_benchmark.cc"],
1101    copts = ABSL_TEST_COPTS,
1102    tags = ["benchmark"],
1103    visibility = ["//visibility:private"],
1104    deps = [
1105        ":strings",
1106        "@com_github_google_benchmark//:benchmark_main",
1107        "@com_google_googletest//:gtest",
1108    ],
1109)
1110
1111cc_test(
1112    name = "str_cat_test",
1113    size = "small",
1114    srcs = ["str_cat_test.cc"],
1115    copts = ABSL_TEST_COPTS,
1116    visibility = ["//visibility:private"],
1117    deps = [
1118        ":str_format",
1119        ":strings",
1120        "@com_google_googletest//:gtest",
1121        "@com_google_googletest//:gtest_main",
1122    ],
1123)
1124
1125cc_test(
1126    name = "str_cat_benchmark",
1127    srcs = ["str_cat_benchmark.cc"],
1128    copts = ABSL_TEST_COPTS,
1129    tags = ["benchmark"],
1130    visibility = ["//visibility:private"],
1131    deps = [
1132        ":strings",
1133        "//absl/random",
1134        "//absl/random:distributions",
1135        "@com_github_google_benchmark//:benchmark_main",
1136        "@com_google_googletest//:gtest",
1137    ],
1138)
1139
1140cc_test(
1141    name = "numbers_test",
1142    size = "medium",
1143    srcs = [
1144        "internal/numbers_test_common.h",
1145        "numbers_test.cc",
1146    ],
1147    copts = ABSL_TEST_COPTS,
1148    visibility = ["//visibility:private"],
1149    deps = [
1150        ":internal",
1151        ":pow10_helper",
1152        ":strings",
1153        "//absl/base:config",
1154        "//absl/log",
1155        "//absl/numeric:int128",
1156        "//absl/random",
1157        "//absl/random:distributions",
1158        "@com_google_googletest//:gtest",
1159        "@com_google_googletest//:gtest_main",
1160    ],
1161)
1162
1163cc_test(
1164    name = "numbers_benchmark",
1165    srcs = ["numbers_benchmark.cc"],
1166    copts = ABSL_TEST_COPTS,
1167    tags = ["benchmark"],
1168    visibility = ["//visibility:private"],
1169    deps = [
1170        ":strings",
1171        "//absl/base:raw_logging_internal",
1172        "//absl/random",
1173        "//absl/random:distributions",
1174        "@com_github_google_benchmark//:benchmark_main",
1175        "@com_google_googletest//:gtest",
1176    ],
1177)
1178
1179cc_test(
1180    name = "strip_test",
1181    size = "small",
1182    srcs = ["strip_test.cc"],
1183    copts = ABSL_TEST_COPTS,
1184    visibility = ["//visibility:private"],
1185    deps = [
1186        ":strings",
1187        "@com_google_googletest//:gtest",
1188        "@com_google_googletest//:gtest_main",
1189    ],
1190)
1191
1192cc_test(
1193    name = "charconv_test",
1194    srcs = ["charconv_test.cc"],
1195    copts = ABSL_TEST_COPTS,
1196    deps = [
1197        ":pow10_helper",
1198        ":str_format",
1199        ":strings",
1200        "@com_google_googletest//:gtest",
1201        "@com_google_googletest//:gtest_main",
1202    ],
1203)
1204
1205cc_test(
1206    name = "charconv_parse_test",
1207    srcs = [
1208        "internal/charconv_parse.h",
1209        "internal/charconv_parse_test.cc",
1210    ],
1211    copts = ABSL_TEST_COPTS,
1212    deps = [
1213        ":strings",
1214        "//absl/base:config",
1215        "//absl/log:check",
1216        "@com_google_googletest//:gtest",
1217        "@com_google_googletest//:gtest_main",
1218    ],
1219)
1220
1221cc_test(
1222    name = "charconv_bigint_test",
1223    srcs = [
1224        "internal/charconv_bigint.h",
1225        "internal/charconv_bigint_test.cc",
1226        "internal/charconv_parse.h",
1227    ],
1228    copts = ABSL_TEST_COPTS,
1229    deps = [
1230        ":strings",
1231        "//absl/base:config",
1232        "@com_google_googletest//:gtest",
1233        "@com_google_googletest//:gtest_main",
1234    ],
1235)
1236
1237cc_test(
1238    name = "charconv_benchmark",
1239    srcs = [
1240        "charconv_benchmark.cc",
1241    ],
1242    tags = [
1243        "benchmark",
1244    ],
1245    deps = [
1246        ":strings",
1247        "@com_github_google_benchmark//:benchmark_main",
1248        "@com_google_googletest//:gtest",
1249    ],
1250)
1251
1252cc_library(
1253    name = "str_format",
1254    hdrs = [
1255        "str_format.h",
1256    ],
1257    copts = ABSL_DEFAULT_COPTS,
1258    linkopts = ABSL_DEFAULT_LINKOPTS,
1259    deps = [
1260        ":str_format_internal",
1261        ":string_view",
1262        "//absl/base:config",
1263        "//absl/base:core_headers",
1264        "//absl/base:nullability",
1265        "//absl/types:span",
1266    ],
1267)
1268
1269cc_library(
1270    name = "str_format_internal",
1271    srcs = [
1272        "internal/str_format/arg.cc",
1273        "internal/str_format/bind.cc",
1274        "internal/str_format/extension.cc",
1275        "internal/str_format/float_conversion.cc",
1276        "internal/str_format/output.cc",
1277        "internal/str_format/parser.cc",
1278    ],
1279    hdrs = [
1280        "internal/str_format/arg.h",
1281        "internal/str_format/bind.h",
1282        "internal/str_format/checker.h",
1283        "internal/str_format/constexpr_parser.h",
1284        "internal/str_format/extension.h",
1285        "internal/str_format/float_conversion.h",
1286        "internal/str_format/output.h",
1287        "internal/str_format/parser.h",
1288    ],
1289    copts = ABSL_DEFAULT_COPTS,
1290    linkopts = ABSL_DEFAULT_LINKOPTS,
1291    visibility = ["//visibility:private"],
1292    deps = [
1293        ":strings",
1294        "//absl/base:config",
1295        "//absl/base:core_headers",
1296        "//absl/container:fixed_array",
1297        "//absl/container:inlined_vector",
1298        "//absl/functional:function_ref",
1299        "//absl/meta:type_traits",
1300        "//absl/numeric:bits",
1301        "//absl/numeric:int128",
1302        "//absl/numeric:representation",
1303        "//absl/types:optional",
1304        "//absl/types:span",
1305        "//absl/utility",
1306    ],
1307)
1308
1309cc_test(
1310    name = "str_format_test",
1311    srcs = ["str_format_test.cc"],
1312    copts = ABSL_TEST_COPTS,
1313    visibility = ["//visibility:private"],
1314    deps = [
1315        ":cord",
1316        ":str_format",
1317        ":strings",
1318        "//absl/base:config",
1319        "//absl/base:core_headers",
1320        "//absl/types:span",
1321        "@com_google_googletest//:gtest",
1322        "@com_google_googletest//:gtest_main",
1323    ],
1324)
1325
1326cc_test(
1327    name = "str_format_extension_test",
1328    srcs = [
1329        "internal/str_format/extension_test.cc",
1330    ],
1331    copts = ABSL_TEST_COPTS,
1332    visibility = ["//visibility:private"],
1333    deps = [
1334        ":str_format",
1335        ":str_format_internal",
1336        ":strings",
1337        "@com_google_googletest//:gtest",
1338        "@com_google_googletest//:gtest_main",
1339    ],
1340)
1341
1342cc_test(
1343    name = "str_format_arg_test",
1344    srcs = ["internal/str_format/arg_test.cc"],
1345    copts = ABSL_TEST_COPTS,
1346    visibility = ["//visibility:private"],
1347    deps = [
1348        ":str_format",
1349        ":str_format_internal",
1350        "//absl/base:config",
1351        "@com_google_googletest//:gtest",
1352        "@com_google_googletest//:gtest_main",
1353    ],
1354)
1355
1356cc_test(
1357    name = "str_format_bind_test",
1358    srcs = ["internal/str_format/bind_test.cc"],
1359    copts = ABSL_TEST_COPTS,
1360    visibility = ["//visibility:private"],
1361    deps = [
1362        ":str_format_internal",
1363        "@com_google_googletest//:gtest",
1364        "@com_google_googletest//:gtest_main",
1365    ],
1366)
1367
1368cc_test(
1369    name = "str_format_checker_test",
1370    srcs = ["internal/str_format/checker_test.cc"],
1371    copts = ABSL_TEST_COPTS,
1372    visibility = ["//visibility:private"],
1373    deps = [
1374        ":str_format",
1375        "@com_google_googletest//:gtest",
1376        "@com_google_googletest//:gtest_main",
1377    ],
1378)
1379
1380cc_test(
1381    name = "str_format_convert_test",
1382    size = "medium",
1383    timeout = "long",
1384    srcs = ["internal/str_format/convert_test.cc"],
1385    copts = ABSL_TEST_COPTS,
1386    visibility = ["//visibility:private"],
1387    deps = [
1388        ":str_format",
1389        ":str_format_internal",
1390        ":strings",
1391        "//absl/base:config",
1392        "//absl/base:core_headers",
1393        "//absl/base:raw_logging_internal",
1394        "//absl/log",
1395        "//absl/numeric:int128",
1396        "//absl/types:optional",
1397        "//absl/types:span",
1398        "@com_google_googletest//:gtest",
1399        "@com_google_googletest//:gtest_main",
1400    ],
1401)
1402
1403cc_test(
1404    name = "str_format_output_test",
1405    srcs = ["internal/str_format/output_test.cc"],
1406    copts = ABSL_TEST_COPTS,
1407    visibility = ["//visibility:private"],
1408    deps = [
1409        ":cord",
1410        ":str_format_internal",
1411        "@com_google_googletest//:gtest",
1412        "@com_google_googletest//:gtest_main",
1413    ],
1414)
1415
1416cc_test(
1417    name = "str_format_parser_test",
1418    srcs = ["internal/str_format/parser_test.cc"],
1419    copts = ABSL_TEST_COPTS,
1420    visibility = ["//visibility:private"],
1421    deps = [
1422        ":str_format_internal",
1423        ":string_view",
1424        "//absl/base:config",
1425        "//absl/base:core_headers",
1426        "@com_google_googletest//:gtest",
1427        "@com_google_googletest//:gtest_main",
1428    ],
1429)
1430
1431cc_library(
1432    name = "pow10_helper",
1433    testonly = True,
1434    srcs = ["internal/pow10_helper.cc"],
1435    hdrs = ["internal/pow10_helper.h"],
1436    linkopts = ABSL_DEFAULT_LINKOPTS,
1437    visibility = ["//visibility:private"],
1438    deps = ["//absl/base:config"],
1439)
1440
1441cc_test(
1442    name = "pow10_helper_test",
1443    srcs = ["internal/pow10_helper_test.cc"],
1444    copts = ABSL_TEST_COPTS,
1445    visibility = ["//visibility:private"],
1446    deps = [
1447        ":pow10_helper",
1448        ":str_format",
1449        "@com_google_googletest//:gtest",
1450        "@com_google_googletest//:gtest_main",
1451    ],
1452)
1453
1454cc_binary(
1455    name = "atod_manual_test",
1456    testonly = True,
1457    srcs = ["atod_manual_test.cc"],
1458    copts = ABSL_TEST_COPTS,
1459    linkopts = ABSL_DEFAULT_LINKOPTS,
1460    visibility = ["//visibility:private"],
1461    deps = [
1462        ":str_format",
1463        ":strings",
1464        "//absl/base",
1465        "//absl/types:optional",
1466    ],
1467)
1468
1469cc_test(
1470    name = "char_formatting_test",
1471    srcs = [
1472        "char_formatting_test.cc",
1473    ],
1474    deps = [
1475        ":str_format",
1476        ":strings",
1477        "@com_google_googletest//:gtest",
1478        "@com_google_googletest//:gtest_main",
1479    ],
1480)
1481