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