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