• 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/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:iterator_traits_internal",
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        "@googletest//:gtest",
151        "@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        "@googletest//:gtest",
171        "@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        "@google_benchmark//:benchmark_main",
188        "@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        "@googletest//:gtest",
202        "@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        "@googletest//:gtest",
226        "@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        "@googletest//:gtest",
240        "@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        "@google_benchmark//:benchmark_main",
253        "@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        "@googletest//:gtest",
267        "@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        "@google_benchmark//:benchmark_main",
284        "@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        "@googletest//:gtest",
301        "@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        "@googletest//:gtest",
317        "@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        "@googletest//:gtest",
331        "@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        "@google_benchmark//:benchmark_main",
347        "@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        "@googletest//:gtest",
364        "@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        "@google_benchmark//:benchmark_main",
383        "@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:config",
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        "@googletest//:gtest",
410        "@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:config",
442        "//absl/base:core_headers",
443        "//absl/base:endian",
444        "//absl/base:nullability",
445        "//absl/base:raw_logging_internal",
446        "//absl/container:compressed_tuple",
447        "//absl/container:container_memory",
448        "//absl/container:inlined_vector",
449        "//absl/crc:crc_cord_state",
450        "//absl/functional:function_ref",
451        "//absl/types:span",
452    ],
453)
454
455cc_test(
456    name = "cord_data_edge_test",
457    size = "small",
458    srcs = ["internal/cord_data_edge_test.cc"],
459    copts = ABSL_TEST_COPTS,
460    visibility = ["//visibility:private"],
461    deps = [
462        ":cord_internal",
463        ":cord_rep_test_util",
464        ":strings",
465        "//absl/base:config",
466        "@googletest//:gtest",
467        "@googletest//:gtest_main",
468    ],
469)
470
471cc_test(
472    name = "cord_rep_btree_test",
473    size = "medium",
474    timeout = "long",
475    srcs = ["internal/cord_rep_btree_test.cc"],
476    copts = ABSL_TEST_COPTS,
477    visibility = ["//visibility:private"],
478    deps = [
479        ":cord_internal",
480        ":cord_rep_test_util",
481        ":strings",
482        "//absl/base:config",
483        "//absl/base:raw_logging_internal",
484        "//absl/cleanup",
485        "@googletest//:gtest",
486        "@googletest//:gtest_main",
487    ],
488)
489
490cc_test(
491    name = "cord_rep_btree_navigator_test",
492    size = "medium",
493    srcs = ["internal/cord_rep_btree_navigator_test.cc"],
494    copts = ABSL_TEST_COPTS,
495    visibility = ["//visibility:private"],
496    deps = [
497        ":cord_internal",
498        ":cord_rep_test_util",
499        ":strings",
500        "//absl/base:config",
501        "//absl/base:raw_logging_internal",
502        "@googletest//:gtest",
503        "@googletest//:gtest_main",
504    ],
505)
506
507cc_test(
508    name = "cord_rep_btree_reader_test",
509    size = "medium",
510    srcs = ["internal/cord_rep_btree_reader_test.cc"],
511    copts = ABSL_TEST_COPTS,
512    visibility = ["//visibility:private"],
513    deps = [
514        ":cord",
515        ":cord_internal",
516        ":cord_rep_test_util",
517        ":strings",
518        "//absl/base:config",
519        "//absl/base:raw_logging_internal",
520        "@googletest//:gtest",
521        "@googletest//:gtest_main",
522    ],
523)
524
525cc_test(
526    name = "cord_rep_crc_test",
527    size = "small",
528    srcs = ["internal/cord_rep_crc_test.cc"],
529    copts = ABSL_TEST_COPTS,
530    visibility = ["//visibility:private"],
531    deps = [
532        ":cord_internal",
533        ":cord_rep_test_util",
534        "//absl/base:config",
535        "//absl/crc:crc_cord_state",
536        "@googletest//:gtest",
537        "@googletest//:gtest_main",
538    ],
539)
540
541cc_library(
542    name = "cordz_update_tracker",
543    hdrs = ["internal/cordz_update_tracker.h"],
544    copts = ABSL_DEFAULT_COPTS,
545    linkopts = ABSL_DEFAULT_LINKOPTS,
546    visibility = [
547        "//absl:__subpackages__",
548    ],
549    deps = ["//absl/base:config"],
550)
551
552cc_test(
553    name = "cordz_update_tracker_test",
554    srcs = ["internal/cordz_update_tracker_test.cc"],
555    deps = [
556        ":cordz_update_tracker",
557        "//absl/base:config",
558        "//absl/base:core_headers",
559        "//absl/synchronization",
560        "@googletest//:gtest",
561        "@googletest//:gtest_main",
562    ],
563)
564
565cc_library(
566    name = "cord",
567    srcs = [
568        "cord.cc",
569        "cord_analysis.cc",
570        "cord_analysis.h",
571    ],
572    hdrs = [
573        "cord.h",
574        "cord_buffer.h",
575    ],
576    copts = ABSL_DEFAULT_COPTS,
577    linkopts = ABSL_DEFAULT_LINKOPTS,
578    deps = [
579        ":cord_internal",
580        ":cordz_info",
581        ":cordz_update_scope",
582        ":cordz_update_tracker",
583        ":internal",
584        ":strings",
585        "//absl/base:config",
586        "//absl/base:core_headers",
587        "//absl/base:endian",
588        "//absl/base:nullability",
589        "//absl/base:raw_logging_internal",
590        "//absl/container:inlined_vector",
591        "//absl/crc:crc32c",
592        "//absl/crc:crc_cord_state",
593        "//absl/functional:function_ref",
594        "//absl/meta:type_traits",
595        "//absl/numeric:bits",
596        "//absl/types:compare",
597        "//absl/types:optional",
598        "//absl/types:span",
599    ],
600)
601
602cc_library(
603    name = "cordz_handle",
604    srcs = ["internal/cordz_handle.cc"],
605    hdrs = ["internal/cordz_handle.h"],
606    copts = ABSL_DEFAULT_COPTS,
607    linkopts = ABSL_DEFAULT_LINKOPTS,
608    visibility = ["//absl:__subpackages__"],
609    deps = [
610        "//absl/base:config",
611        "//absl/base:no_destructor",
612        "//absl/base:raw_logging_internal",
613        "//absl/synchronization",
614    ],
615)
616
617cc_library(
618    name = "cordz_info",
619    srcs = ["internal/cordz_info.cc"],
620    hdrs = ["internal/cordz_info.h"],
621    copts = ABSL_DEFAULT_COPTS,
622    linkopts = ABSL_DEFAULT_LINKOPTS,
623    visibility = [
624        "//absl:__subpackages__",
625    ],
626    deps = [
627        ":cord_internal",
628        ":cordz_functions",
629        ":cordz_handle",
630        ":cordz_statistics",
631        ":cordz_update_tracker",
632        "//absl/base",
633        "//absl/base:config",
634        "//absl/base:core_headers",
635        "//absl/base:raw_logging_internal",
636        "//absl/container:inlined_vector",
637        "//absl/debugging:stacktrace",
638        "//absl/synchronization",
639        "//absl/time",
640        "//absl/types:span",
641    ],
642)
643
644cc_library(
645    name = "cordz_update_scope",
646    hdrs = ["internal/cordz_update_scope.h"],
647    copts = ABSL_DEFAULT_COPTS,
648    linkopts = ABSL_DEFAULT_LINKOPTS,
649    visibility = ["//absl:__subpackages__"],
650    deps = [
651        ":cord_internal",
652        ":cordz_info",
653        ":cordz_update_tracker",
654        "//absl/base:config",
655        "//absl/base:core_headers",
656    ],
657)
658
659cc_test(
660    name = "cordz_update_scope_test",
661    srcs = ["internal/cordz_update_scope_test.cc"],
662    copts = ABSL_DEFAULT_COPTS,
663    deps = [
664        ":cord_internal",
665        ":cordz_info",
666        ":cordz_test_helpers",
667        ":cordz_update_scope",
668        ":cordz_update_tracker",
669        "//absl/base:config",
670        "@googletest//:gtest",
671        "@googletest//:gtest_main",
672    ],
673)
674
675cc_library(
676    name = "cordz_sample_token",
677    srcs = ["internal/cordz_sample_token.cc"],
678    hdrs = ["internal/cordz_sample_token.h"],
679    copts = ABSL_DEFAULT_COPTS,
680    linkopts = ABSL_DEFAULT_LINKOPTS,
681    visibility = [
682        "//absl:__subpackages__",
683    ],
684    deps = [
685        ":cordz_handle",
686        ":cordz_info",
687        "//absl/base:config",
688    ],
689)
690
691cc_library(
692    name = "cordz_functions",
693    srcs = ["internal/cordz_functions.cc"],
694    hdrs = ["internal/cordz_functions.h"],
695    copts = ABSL_DEFAULT_COPTS,
696    linkopts = ABSL_DEFAULT_LINKOPTS,
697    visibility = [
698        "//absl:__subpackages__",
699    ],
700    deps = [
701        "//absl/base:config",
702        "//absl/base:core_headers",
703        "//absl/base:raw_logging_internal",
704        "//absl/profiling:exponential_biased",
705    ],
706)
707
708cc_library(
709    name = "cordz_statistics",
710    hdrs = ["internal/cordz_statistics.h"],
711    copts = ABSL_DEFAULT_COPTS,
712    linkopts = ABSL_DEFAULT_LINKOPTS,
713    visibility = [
714        "//absl:__subpackages__",
715    ],
716    deps = [
717        ":cordz_update_tracker",
718        "//absl/base:config",
719    ],
720)
721
722cc_test(
723    name = "cordz_functions_test",
724    srcs = [
725        "internal/cordz_functions_test.cc",
726    ],
727    deps = [
728        ":cordz_functions",
729        ":cordz_test_helpers",
730        "//absl/base:config",
731        "@googletest//:gtest",
732        "@googletest//:gtest_main",
733    ],
734)
735
736cc_test(
737    name = "cordz_handle_test",
738    srcs = [
739        "internal/cordz_handle_test.cc",
740    ],
741    deps = [
742        ":cordz_handle",
743        "//absl/base:config",
744        "//absl/memory",
745        "//absl/random",
746        "//absl/random:distributions",
747        "//absl/synchronization",
748        "//absl/synchronization:thread_pool",
749        "//absl/time",
750        "@googletest//:gtest",
751        "@googletest//:gtest_main",
752    ],
753)
754
755cc_test(
756    name = "cordz_info_test",
757    srcs = [
758        "internal/cordz_info_test.cc",
759    ],
760    deps = [
761        ":cord_internal",
762        ":cordz_handle",
763        ":cordz_info",
764        ":cordz_statistics",
765        ":cordz_test_helpers",
766        ":cordz_update_tracker",
767        ":strings",
768        "//absl/base:config",
769        "//absl/debugging:stacktrace",
770        "//absl/debugging:symbolize",
771        "//absl/types:span",
772        "@googletest//:gtest",
773        "@googletest//:gtest_main",
774    ],
775)
776
777cc_test(
778    name = "cordz_info_statistics_test",
779    srcs = [
780        "internal/cordz_info_statistics_test.cc",
781    ],
782    deps = [
783        ":cord",
784        ":cord_internal",
785        ":cordz_info",
786        ":cordz_sample_token",
787        ":cordz_statistics",
788        ":cordz_update_scope",
789        ":cordz_update_tracker",
790        "//absl/base:config",
791        "//absl/crc:crc_cord_state",
792        "//absl/synchronization",
793        "//absl/synchronization:thread_pool",
794        "@googletest//:gtest",
795        "@googletest//:gtest_main",
796    ],
797)
798
799cc_test(
800    name = "cordz_sample_token_test",
801    srcs = [
802        "internal/cordz_sample_token_test.cc",
803    ],
804    deps = [
805        ":cord_internal",
806        ":cordz_handle",
807        ":cordz_info",
808        ":cordz_sample_token",
809        ":cordz_test_helpers",
810        "//absl/base:config",
811        "//absl/memory",
812        "//absl/random",
813        "//absl/synchronization",
814        "//absl/synchronization:thread_pool",
815        "//absl/time",
816        "@googletest//:gtest",
817        "@googletest//:gtest_main",
818    ],
819)
820
821cc_library(
822    name = "cord_test_helpers",
823    testonly = True,
824    hdrs = [
825        "cord_test_helpers.h",
826    ],
827    copts = ABSL_DEFAULT_COPTS,
828    linkopts = ABSL_DEFAULT_LINKOPTS,
829    deps = [
830        ":cord",
831        ":cord_internal",
832        ":strings",
833        "//absl/base:config",
834    ],
835)
836
837cc_library(
838    name = "cord_rep_test_util",
839    testonly = True,
840    hdrs = ["internal/cord_rep_test_util.h"],
841    copts = ABSL_DEFAULT_COPTS,
842    linkopts = ABSL_DEFAULT_LINKOPTS,
843    deps = [
844        ":cord_internal",
845        ":strings",
846        "//absl/base:config",
847        "//absl/base:raw_logging_internal",
848    ],
849)
850
851cc_library(
852    name = "cordz_test_helpers",
853    testonly = True,
854    hdrs = ["cordz_test_helpers.h"],
855    copts = ABSL_DEFAULT_COPTS,
856    linkopts = ABSL_DEFAULT_LINKOPTS,
857    deps = [
858        ":cord",
859        ":cord_internal",
860        ":cordz_info",
861        ":cordz_sample_token",
862        ":cordz_statistics",
863        ":cordz_update_tracker",
864        ":strings",
865        "//absl/base:config",
866        "//absl/base:core_headers",
867        "//absl/base:nullability",
868        "@googletest//:gtest",
869    ],
870)
871
872cc_test(
873    name = "cord_buffer_test",
874    size = "small",
875    srcs = ["cord_buffer_test.cc"],
876    copts = ABSL_TEST_COPTS,
877    visibility = ["//visibility:private"],
878    deps = [
879        ":cord",
880        ":cord_internal",
881        ":cord_rep_test_util",
882        ":string_view",
883        "//absl/base:config",
884        "//absl/types:span",
885        "@googletest//:gtest",
886        "@googletest//:gtest_main",
887    ],
888)
889
890cc_test(
891    name = "cord_test",
892    size = "medium",
893    timeout = "long",
894    srcs = ["cord_test.cc"],
895    copts = ABSL_TEST_COPTS,
896    visibility = ["//visibility:private"],
897    deps = [
898        ":cord",
899        ":cord_internal",
900        ":cord_test_helpers",
901        ":cordz_functions",
902        ":cordz_statistics",
903        ":cordz_test_helpers",
904        ":cordz_update_tracker",
905        ":str_format",
906        ":strings",
907        "//absl/base:config",
908        "//absl/base:core_headers",
909        "//absl/base:endian",
910        "//absl/base:no_destructor",
911        "//absl/container:fixed_array",
912        "//absl/functional:function_ref",
913        "//absl/hash",
914        "//absl/hash:hash_testing",
915        "//absl/log",
916        "//absl/log:check",
917        "//absl/random",
918        "//absl/types:compare",
919        "//absl/types:optional",
920        "@googletest//:gtest",
921        "@googletest//:gtest_main",
922    ],
923)
924
925cc_test(
926    name = "cordz_test",
927    size = "medium",
928    srcs = ["cordz_test.cc"],
929    copts = ABSL_TEST_COPTS,
930    tags = [
931        "benchmark",
932        "no_test_android_arm",
933        "no_test_android_arm64",
934        "no_test_android_x86",
935        "no_test_ios_x86_64",
936        "no_test_lexan",
937        "no_test_loonix",
938    ],
939    visibility = ["//visibility:private"],
940    deps = [
941        ":cord",
942        ":cord_internal",
943        ":cord_test_helpers",
944        ":cordz_functions",
945        ":cordz_info",
946        ":cordz_sample_token",
947        ":cordz_statistics",
948        ":cordz_test_helpers",
949        ":cordz_update_tracker",
950        ":strings",
951        "//absl/base:config",
952        "//absl/base:core_headers",
953        "//absl/base:raw_logging_internal",
954        "@googletest//:gtest",
955        "@googletest//:gtest_main",
956    ],
957)
958
959cc_test(
960    name = "substitute_test",
961    size = "small",
962    srcs = ["substitute_test.cc"],
963    copts = ABSL_TEST_COPTS,
964    visibility = ["//visibility:private"],
965    deps = [
966        ":strings",
967        "//absl/base:core_headers",
968        "@googletest//:gtest",
969        "@googletest//:gtest_main",
970    ],
971)
972
973cc_test(
974    name = "str_replace_benchmark",
975    srcs = ["str_replace_benchmark.cc"],
976    copts = ABSL_TEST_COPTS,
977    tags = ["benchmark"],
978    visibility = ["//visibility:private"],
979    deps = [
980        ":strings",
981        "//absl/base:raw_logging_internal",
982        "@google_benchmark//:benchmark_main",
983        "@googletest//:gtest",
984    ],
985)
986
987cc_test(
988    name = "str_replace_test",
989    size = "small",
990    srcs = ["str_replace_test.cc"],
991    copts = ABSL_TEST_COPTS,
992    visibility = ["//visibility:private"],
993    deps = [
994        ":strings",
995        "@googletest//:gtest",
996        "@googletest//:gtest_main",
997    ],
998)
999
1000cc_test(
1001    name = "str_split_test",
1002    srcs = ["str_split_test.cc"],
1003    copts = ABSL_TEST_COPTS,
1004    visibility = ["//visibility:private"],
1005    deps = [
1006        ":strings",
1007        "//absl/base:core_headers",
1008        "//absl/base:dynamic_annotations",
1009        "//absl/container:btree",
1010        "//absl/container:flat_hash_map",
1011        "//absl/container:node_hash_map",
1012        "@googletest//:gtest",
1013        "@googletest//:gtest_main",
1014    ],
1015)
1016
1017cc_test(
1018    name = "str_split_benchmark",
1019    srcs = ["str_split_benchmark.cc"],
1020    copts = ABSL_TEST_COPTS,
1021    tags = ["benchmark"],
1022    visibility = ["//visibility:private"],
1023    deps = [
1024        ":strings",
1025        "//absl/base:raw_logging_internal",
1026        "@google_benchmark//:benchmark_main",
1027        "@googletest//:gtest",
1028    ],
1029)
1030
1031cc_test(
1032    name = "ostringstream_test",
1033    size = "small",
1034    srcs = ["internal/ostringstream_test.cc"],
1035    copts = ABSL_TEST_COPTS,
1036    visibility = ["//visibility:private"],
1037    deps = [
1038        ":internal",
1039        "@googletest//:gtest",
1040        "@googletest//:gtest_main",
1041    ],
1042)
1043
1044cc_test(
1045    name = "ostringstream_benchmark",
1046    srcs = ["internal/ostringstream_benchmark.cc"],
1047    copts = ABSL_TEST_COPTS,
1048    tags = ["benchmark"],
1049    visibility = ["//visibility:private"],
1050    deps = [
1051        ":internal",
1052        "@google_benchmark//:benchmark_main",
1053        "@googletest//:gtest",
1054    ],
1055)
1056
1057cc_test(
1058    name = "resize_uninitialized_test",
1059    size = "small",
1060    srcs = [
1061        "internal/resize_uninitialized.h",
1062        "internal/resize_uninitialized_test.cc",
1063    ],
1064    copts = ABSL_TEST_COPTS,
1065    visibility = ["//visibility:private"],
1066    deps = [
1067        "//absl/base:core_headers",
1068        "//absl/meta:type_traits",
1069        "@googletest//:gtest",
1070        "@googletest//:gtest_main",
1071    ],
1072)
1073
1074cc_test(
1075    name = "str_join_test",
1076    size = "small",
1077    srcs = ["str_join_test.cc"],
1078    copts = ABSL_TEST_COPTS,
1079    visibility = ["//visibility:private"],
1080    deps = [
1081        ":strings",
1082        "//absl/base:core_headers",
1083        "//absl/memory",
1084        "@googletest//:gtest",
1085        "@googletest//:gtest_main",
1086    ],
1087)
1088
1089cc_test(
1090    name = "str_join_benchmark",
1091    srcs = ["str_join_benchmark.cc"],
1092    copts = ABSL_TEST_COPTS,
1093    tags = ["benchmark"],
1094    visibility = ["//visibility:private"],
1095    deps = [
1096        ":strings",
1097        "@google_benchmark//:benchmark_main",
1098        "@googletest//:gtest",
1099    ],
1100)
1101
1102cc_test(
1103    name = "str_cat_test",
1104    size = "small",
1105    srcs = ["str_cat_test.cc"],
1106    copts = ABSL_TEST_COPTS,
1107    visibility = ["//visibility:private"],
1108    deps = [
1109        ":str_format",
1110        ":strings",
1111        "//absl/base:config",
1112        "@googletest//:gtest",
1113        "@googletest//:gtest_main",
1114    ],
1115)
1116
1117cc_test(
1118    name = "str_cat_benchmark",
1119    srcs = ["str_cat_benchmark.cc"],
1120    copts = ABSL_TEST_COPTS,
1121    tags = ["benchmark"],
1122    visibility = ["//visibility:private"],
1123    deps = [
1124        ":strings",
1125        "//absl/random",
1126        "//absl/random:distributions",
1127        "@google_benchmark//:benchmark_main",
1128        "@googletest//:gtest",
1129    ],
1130)
1131
1132cc_test(
1133    name = "numbers_test",
1134    size = "medium",
1135    srcs = [
1136        "internal/numbers_test_common.h",
1137        "numbers_test.cc",
1138    ],
1139    copts = ABSL_TEST_COPTS,
1140    visibility = ["//visibility:private"],
1141    deps = [
1142        ":internal",
1143        ":pow10_helper",
1144        ":strings",
1145        "//absl/base:config",
1146        "//absl/log",
1147        "//absl/numeric:int128",
1148        "//absl/random",
1149        "//absl/random:distributions",
1150        "@googletest//:gtest",
1151        "@googletest//:gtest_main",
1152    ],
1153)
1154
1155cc_test(
1156    name = "numbers_benchmark",
1157    srcs = ["numbers_benchmark.cc"],
1158    copts = ABSL_TEST_COPTS,
1159    tags = ["benchmark"],
1160    visibility = ["//visibility:private"],
1161    deps = [
1162        ":strings",
1163        "//absl/base:raw_logging_internal",
1164        "//absl/random",
1165        "//absl/random:distributions",
1166        "@google_benchmark//:benchmark_main",
1167        "@googletest//:gtest",
1168    ],
1169)
1170
1171cc_test(
1172    name = "strip_test",
1173    size = "small",
1174    srcs = ["strip_test.cc"],
1175    copts = ABSL_TEST_COPTS,
1176    visibility = ["//visibility:private"],
1177    deps = [
1178        ":strings",
1179        "@googletest//:gtest",
1180        "@googletest//:gtest_main",
1181    ],
1182)
1183
1184cc_test(
1185    name = "charconv_test",
1186    srcs = ["charconv_test.cc"],
1187    copts = ABSL_TEST_COPTS,
1188    deps = [
1189        ":pow10_helper",
1190        ":str_format",
1191        ":strings",
1192        "@googletest//:gtest",
1193        "@googletest//:gtest_main",
1194    ],
1195)
1196
1197cc_test(
1198    name = "charconv_parse_test",
1199    srcs = [
1200        "internal/charconv_parse.h",
1201        "internal/charconv_parse_test.cc",
1202    ],
1203    copts = ABSL_TEST_COPTS,
1204    deps = [
1205        ":strings",
1206        "//absl/base:config",
1207        "//absl/log:check",
1208        "@googletest//:gtest",
1209        "@googletest//:gtest_main",
1210    ],
1211)
1212
1213cc_test(
1214    name = "charconv_bigint_test",
1215    srcs = [
1216        "internal/charconv_bigint.h",
1217        "internal/charconv_bigint_test.cc",
1218        "internal/charconv_parse.h",
1219    ],
1220    copts = ABSL_TEST_COPTS,
1221    deps = [
1222        ":strings",
1223        "//absl/base:config",
1224        "@googletest//:gtest",
1225        "@googletest//:gtest_main",
1226    ],
1227)
1228
1229cc_test(
1230    name = "charconv_benchmark",
1231    srcs = [
1232        "charconv_benchmark.cc",
1233    ],
1234    tags = [
1235        "benchmark",
1236    ],
1237    deps = [
1238        ":strings",
1239        "@google_benchmark//:benchmark_main",
1240        "@googletest//:gtest",
1241    ],
1242)
1243
1244cc_library(
1245    name = "str_format",
1246    hdrs = [
1247        "str_format.h",
1248    ],
1249    copts = ABSL_DEFAULT_COPTS,
1250    linkopts = ABSL_DEFAULT_LINKOPTS,
1251    deps = [
1252        ":str_format_internal",
1253        ":string_view",
1254        "//absl/base:config",
1255        "//absl/base:core_headers",
1256        "//absl/base:nullability",
1257        "//absl/types:span",
1258    ],
1259)
1260
1261cc_library(
1262    name = "str_format_internal",
1263    srcs = [
1264        "internal/str_format/arg.cc",
1265        "internal/str_format/bind.cc",
1266        "internal/str_format/extension.cc",
1267        "internal/str_format/float_conversion.cc",
1268        "internal/str_format/output.cc",
1269        "internal/str_format/parser.cc",
1270    ],
1271    hdrs = [
1272        "internal/str_format/arg.h",
1273        "internal/str_format/bind.h",
1274        "internal/str_format/checker.h",
1275        "internal/str_format/constexpr_parser.h",
1276        "internal/str_format/extension.h",
1277        "internal/str_format/float_conversion.h",
1278        "internal/str_format/output.h",
1279        "internal/str_format/parser.h",
1280    ],
1281    copts = ABSL_DEFAULT_COPTS,
1282    linkopts = ABSL_DEFAULT_LINKOPTS,
1283    visibility = ["//visibility:private"],
1284    deps = [
1285        ":strings",
1286        "//absl/base:config",
1287        "//absl/base:core_headers",
1288        "//absl/container:fixed_array",
1289        "//absl/container:inlined_vector",
1290        "//absl/functional:function_ref",
1291        "//absl/meta:type_traits",
1292        "//absl/numeric:bits",
1293        "//absl/numeric:int128",
1294        "//absl/numeric:representation",
1295        "//absl/types:optional",
1296        "//absl/types:span",
1297        "//absl/utility",
1298    ],
1299)
1300
1301cc_test(
1302    name = "str_format_test",
1303    srcs = ["str_format_test.cc"],
1304    copts = ABSL_TEST_COPTS,
1305    visibility = ["//visibility:private"],
1306    deps = [
1307        ":cord",
1308        ":str_format",
1309        ":strings",
1310        "//absl/base:config",
1311        "//absl/base:core_headers",
1312        "//absl/types:span",
1313        "@googletest//:gtest",
1314        "@googletest//:gtest_main",
1315    ],
1316)
1317
1318cc_test(
1319    name = "str_format_extension_test",
1320    srcs = [
1321        "internal/str_format/extension_test.cc",
1322    ],
1323    copts = ABSL_TEST_COPTS,
1324    visibility = ["//visibility:private"],
1325    deps = [
1326        ":str_format",
1327        ":str_format_internal",
1328        ":strings",
1329        "@googletest//:gtest",
1330        "@googletest//:gtest_main",
1331    ],
1332)
1333
1334cc_test(
1335    name = "str_format_arg_test",
1336    srcs = ["internal/str_format/arg_test.cc"],
1337    copts = ABSL_TEST_COPTS,
1338    visibility = ["//visibility:private"],
1339    deps = [
1340        ":str_format",
1341        ":str_format_internal",
1342        "//absl/base:config",
1343        "@googletest//:gtest",
1344        "@googletest//:gtest_main",
1345    ],
1346)
1347
1348cc_test(
1349    name = "str_format_bind_test",
1350    srcs = ["internal/str_format/bind_test.cc"],
1351    copts = ABSL_TEST_COPTS,
1352    visibility = ["//visibility:private"],
1353    deps = [
1354        ":str_format_internal",
1355        "@googletest//:gtest",
1356        "@googletest//:gtest_main",
1357    ],
1358)
1359
1360cc_test(
1361    name = "str_format_checker_test",
1362    srcs = ["internal/str_format/checker_test.cc"],
1363    copts = ABSL_TEST_COPTS,
1364    visibility = ["//visibility:private"],
1365    deps = [
1366        ":str_format",
1367        "@googletest//:gtest",
1368        "@googletest//:gtest_main",
1369    ],
1370)
1371
1372cc_test(
1373    name = "str_format_convert_test",
1374    size = "medium",
1375    timeout = "long",
1376    srcs = ["internal/str_format/convert_test.cc"],
1377    copts = ABSL_TEST_COPTS,
1378    visibility = ["//visibility:private"],
1379    deps = [
1380        ":str_format",
1381        ":str_format_internal",
1382        ":strings",
1383        "//absl/base:config",
1384        "//absl/base:core_headers",
1385        "//absl/base:raw_logging_internal",
1386        "//absl/log",
1387        "//absl/numeric:int128",
1388        "//absl/types:optional",
1389        "//absl/types:span",
1390        "@googletest//:gtest",
1391        "@googletest//:gtest_main",
1392    ],
1393)
1394
1395cc_test(
1396    name = "str_format_output_test",
1397    srcs = ["internal/str_format/output_test.cc"],
1398    copts = ABSL_TEST_COPTS,
1399    visibility = ["//visibility:private"],
1400    deps = [
1401        ":cord",
1402        ":str_format_internal",
1403        "@googletest//:gtest",
1404        "@googletest//:gtest_main",
1405    ],
1406)
1407
1408cc_test(
1409    name = "str_format_parser_test",
1410    srcs = ["internal/str_format/parser_test.cc"],
1411    copts = ABSL_TEST_COPTS,
1412    visibility = ["//visibility:private"],
1413    deps = [
1414        ":str_format_internal",
1415        ":string_view",
1416        "//absl/base:config",
1417        "//absl/base:core_headers",
1418        "@googletest//:gtest",
1419        "@googletest//:gtest_main",
1420    ],
1421)
1422
1423cc_library(
1424    name = "pow10_helper",
1425    testonly = True,
1426    srcs = ["internal/pow10_helper.cc"],
1427    hdrs = ["internal/pow10_helper.h"],
1428    linkopts = ABSL_DEFAULT_LINKOPTS,
1429    visibility = ["//visibility:private"],
1430    deps = ["//absl/base:config"],
1431)
1432
1433cc_test(
1434    name = "pow10_helper_test",
1435    srcs = ["internal/pow10_helper_test.cc"],
1436    copts = ABSL_TEST_COPTS,
1437    visibility = ["//visibility:private"],
1438    deps = [
1439        ":pow10_helper",
1440        ":str_format",
1441        "@googletest//:gtest",
1442        "@googletest//:gtest_main",
1443    ],
1444)
1445
1446cc_binary(
1447    name = "atod_manual_test",
1448    testonly = True,
1449    srcs = ["atod_manual_test.cc"],
1450    copts = ABSL_TEST_COPTS,
1451    linkopts = ABSL_DEFAULT_LINKOPTS,
1452    visibility = ["//visibility:private"],
1453    deps = [
1454        ":str_format",
1455        ":strings",
1456        "//absl/base",
1457        "//absl/types:optional",
1458    ],
1459)
1460
1461cc_test(
1462    name = "char_formatting_test",
1463    srcs = [
1464        "char_formatting_test.cc",
1465    ],
1466    deps = [
1467        ":str_format",
1468        ":strings",
1469        "@googletest//:gtest",
1470        "@googletest//:gtest_main",
1471    ],
1472)
1473