• 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:throw_delegate",
45    ],
46)
47
48cc_library(
49    name = "strings",
50    srcs = [
51        "ascii.cc",
52        "charconv.cc",
53        "escaping.cc",
54        "internal/charconv_bigint.cc",
55        "internal/charconv_bigint.h",
56        "internal/charconv_parse.cc",
57        "internal/charconv_parse.h",
58        "internal/damerau_levenshtein_distance.cc",
59        "internal/memutil.cc",
60        "internal/memutil.h",
61        "internal/stl_type_traits.h",
62        "internal/str_join_internal.h",
63        "internal/str_split_internal.h",
64        "internal/stringify_sink.cc",
65        "internal/stringify_sink.h",
66        "match.cc",
67        "numbers.cc",
68        "str_cat.cc",
69        "str_replace.cc",
70        "str_split.cc",
71        "substitute.cc",
72    ],
73    hdrs = [
74        "ascii.h",
75        "charconv.h",
76        "escaping.h",
77        "has_absl_stringify.h",
78        "internal/damerau_levenshtein_distance.h",
79        "internal/string_constant.h",
80        "match.h",
81        "numbers.h",
82        "str_cat.h",
83        "str_join.h",
84        "str_replace.h",
85        "str_split.h",
86        "string_view.h",
87        "strip.h",
88        "substitute.h",
89    ],
90    copts = ABSL_DEFAULT_COPTS,
91    linkopts = ABSL_DEFAULT_LINKOPTS,
92    textual_hdrs = [
93        # string_view.h was once part of :strings, so string_view.h is
94        # re-exported for backwards compatibility.
95        # New code should directly depend on :string_view.
96        "string_view.h",
97    ],
98    deps = [
99        ":charset",
100        ":internal",
101        ":string_view",
102        "//absl/base",
103        "//absl/base:config",
104        "//absl/base:core_headers",
105        "//absl/base:endian",
106        "//absl/base:raw_logging_internal",
107        "//absl/base:throw_delegate",
108        "//absl/memory",
109        "//absl/meta:type_traits",
110        "//absl/numeric:bits",
111        "//absl/numeric:int128",
112    ],
113)
114
115cc_library(
116    name = "internal",
117    srcs = [
118        "internal/escaping.cc",
119        "internal/ostringstream.cc",
120        "internal/utf8.cc",
121    ],
122    hdrs = [
123        "internal/escaping.h",
124        "internal/ostringstream.h",
125        "internal/resize_uninitialized.h",
126        "internal/utf8.h",
127    ],
128    copts = ABSL_DEFAULT_COPTS,
129    linkopts = ABSL_DEFAULT_LINKOPTS,
130    deps = [
131        "//absl/base:config",
132        "//absl/base:core_headers",
133        "//absl/base:endian",
134        "//absl/base:raw_logging_internal",
135        "//absl/meta:type_traits",
136    ],
137)
138
139cc_test(
140    name = "match_test",
141    size = "small",
142    srcs = ["match_test.cc"],
143    copts = ABSL_TEST_COPTS,
144    visibility = ["//visibility:private"],
145    deps = [
146        ":strings",
147        "@com_google_googletest//:gtest",
148        "@com_google_googletest//:gtest_main",
149    ],
150)
151
152cc_test(
153    name = "escaping_test",
154    size = "small",
155    srcs = [
156        "escaping_test.cc",
157        "internal/escaping_test_common.h",
158    ],
159    copts = ABSL_TEST_COPTS,
160    visibility = ["//visibility:private"],
161    deps = [
162        ":cord",
163        ":strings",
164        "//absl/base:core_headers",
165        "//absl/container:fixed_array",
166        "//absl/log:check",
167        "@com_google_googletest//:gtest",
168        "@com_google_googletest//:gtest_main",
169    ],
170)
171
172cc_test(
173    name = "escaping_benchmark",
174    srcs = [
175        "escaping_benchmark.cc",
176        "internal/escaping_test_common.h",
177    ],
178    copts = ABSL_TEST_COPTS,
179    tags = ["benchmark"],
180    visibility = ["//visibility:private"],
181    deps = [
182        ":strings",
183        "//absl/base:raw_logging_internal",
184        "@com_github_google_benchmark//:benchmark_main",
185        "@com_google_googletest//:gtest",
186    ],
187)
188
189cc_test(
190    name = "has_absl_stringify_test",
191    size = "small",
192    srcs = ["has_absl_stringify_test.cc"],
193    copts = ABSL_TEST_COPTS,
194    visibility = ["//visibility:private"],
195    deps = [
196        ":strings",
197        "//absl/types:optional",
198        "@com_google_googletest//:gtest",
199        "@com_google_googletest//:gtest_main",
200    ],
201)
202
203cc_library(
204    name = "has_ostream_operator",
205    hdrs = ["has_ostream_operator.h"],
206    copts = ABSL_DEFAULT_COPTS,
207    linkopts = ABSL_DEFAULT_LINKOPTS,
208    deps = [
209        "//absl/base:config",
210    ],
211)
212
213cc_test(
214    name = "has_ostream_operator_test",
215    size = "small",
216    srcs = ["has_ostream_operator_test.cc"],
217    copts = ABSL_TEST_COPTS,
218    visibility = ["//visibility:private"],
219    deps = [
220        ":has_ostream_operator",
221        "//absl/types:optional",
222        "@com_google_googletest//:gtest",
223        "@com_google_googletest//:gtest_main",
224    ],
225)
226
227cc_test(
228    name = "ascii_test",
229    size = "small",
230    srcs = ["ascii_test.cc"],
231    copts = ABSL_TEST_COPTS,
232    visibility = ["//visibility:private"],
233    deps = [
234        ":strings",
235        "//absl/base:core_headers",
236        "@com_google_googletest//:gtest",
237        "@com_google_googletest//:gtest_main",
238    ],
239)
240
241cc_test(
242    name = "ascii_benchmark",
243    srcs = ["ascii_benchmark.cc"],
244    copts = ABSL_TEST_COPTS,
245    tags = ["benchmark"],
246    visibility = ["//visibility:private"],
247    deps = [
248        ":strings",
249        "@com_github_google_benchmark//:benchmark_main",
250        "@com_google_googletest//:gtest",
251    ],
252)
253
254cc_test(
255    name = "damerau_levenshtein_distance_test",
256    size = "small",
257    srcs = [
258        "internal/damerau_levenshtein_distance_test.cc",
259    ],
260    copts = ABSL_TEST_COPTS,
261    deps = [
262        "//absl/strings",
263        "@com_google_googletest//:gtest",
264        "@com_google_googletest//:gtest_main",
265    ],
266)
267
268cc_test(
269    name = "memutil_benchmark",
270    srcs = [
271        "internal/memutil.h",
272        "internal/memutil_benchmark.cc",
273    ],
274    copts = ABSL_TEST_COPTS,
275    tags = ["benchmark"],
276    visibility = ["//visibility:private"],
277    deps = [
278        ":strings",
279        "//absl/base:core_headers",
280        "@com_github_google_benchmark//:benchmark_main",
281        "@com_google_googletest//:gtest",
282    ],
283)
284
285cc_test(
286    name = "memutil_test",
287    size = "small",
288    srcs = [
289        "internal/memutil.h",
290        "internal/memutil_test.cc",
291    ],
292    copts = ABSL_TEST_COPTS,
293    visibility = ["//visibility:private"],
294    deps = [
295        ":strings",
296        "//absl/base:core_headers",
297        "@com_google_googletest//:gtest",
298        "@com_google_googletest//:gtest_main",
299    ],
300)
301
302cc_test(
303    name = "utf8_test",
304    size = "small",
305    srcs = [
306        "internal/utf8_test.cc",
307    ],
308    copts = ABSL_TEST_COPTS,
309    visibility = ["//visibility:private"],
310    deps = [
311        ":internal",
312        "//absl/base:core_headers",
313        "@com_google_googletest//:gtest",
314        "@com_google_googletest//:gtest_main",
315    ],
316)
317
318cc_test(
319    name = "string_constant_test",
320    size = "small",
321    srcs = ["internal/string_constant_test.cc"],
322    copts = ABSL_TEST_COPTS,
323    visibility = ["//visibility:private"],
324    deps = [
325        ":strings",
326        "//absl/meta:type_traits",
327        "@com_google_googletest//:gtest",
328        "@com_google_googletest//:gtest_main",
329    ],
330)
331
332cc_test(
333    name = "string_view_benchmark",
334    srcs = ["string_view_benchmark.cc"],
335    copts = ABSL_TEST_COPTS,
336    tags = ["benchmark"],
337    visibility = ["//visibility:private"],
338    deps = [
339        ":string_view",
340        ":strings",
341        "//absl/base:core_headers",
342        "//absl/base:raw_logging_internal",
343        "@com_github_google_benchmark//:benchmark_main",
344        "@com_google_googletest//:gtest",
345    ],
346)
347
348cc_test(
349    name = "string_view_test",
350    size = "small",
351    srcs = ["string_view_test.cc"],
352    copts = ABSL_TEST_COPTS,
353    visibility = ["//visibility:private"],
354    deps = [
355        ":string_view",
356        "//absl/base:config",
357        "//absl/base:core_headers",
358        "//absl/base:dynamic_annotations",
359        "@com_google_googletest//:gtest",
360        "@com_google_googletest//:gtest_main",
361    ],
362)
363
364cc_test(
365    name = "charset_benchmark",
366    size = "small",
367    srcs = [
368        "charset_benchmark.cc",
369    ],
370    copts = ABSL_TEST_COPTS,
371    tags = [
372        "benchmark",
373    ],
374    visibility = ["//visibility:private"],
375    deps = [
376        ":charset",
377        "//absl/log:check",
378        "@com_github_google_benchmark//:benchmark_main",
379        "@com_google_googletest//:gtest",
380    ],
381)
382
383cc_library(
384    name = "charset",
385    hdrs = [
386        "charset.h",
387    ],
388    copts = ABSL_DEFAULT_COPTS,
389    linkopts = ABSL_DEFAULT_LINKOPTS,
390    deps = [
391        ":string_view",
392        "//absl/base:core_headers",
393    ],
394)
395
396cc_test(
397    name = "charset_test",
398    size = "small",
399    srcs = ["charset_test.cc"],
400    copts = ABSL_TEST_COPTS,
401    visibility = ["//visibility:private"],
402    deps = [
403        ":charset",
404        ":strings",
405        "@com_google_googletest//:gtest",
406        "@com_google_googletest//:gtest_main",
407    ],
408)
409
410cc_library(
411    name = "cord_internal",
412    srcs = [
413        "internal/cord_internal.cc",
414        "internal/cord_rep_btree.cc",
415        "internal/cord_rep_btree_navigator.cc",
416        "internal/cord_rep_btree_reader.cc",
417        "internal/cord_rep_consume.cc",
418        "internal/cord_rep_crc.cc",
419    ],
420    hdrs = [
421        "internal/cord_data_edge.h",
422        "internal/cord_internal.h",
423        "internal/cord_rep_btree.h",
424        "internal/cord_rep_btree_navigator.h",
425        "internal/cord_rep_btree_reader.h",
426        "internal/cord_rep_consume.h",
427        "internal/cord_rep_crc.h",
428        "internal/cord_rep_flat.h",
429    ],
430    copts = ABSL_DEFAULT_COPTS,
431    linkopts = ABSL_DEFAULT_LINKOPTS,
432    visibility = [
433        "//visibility:private",
434    ],
435    deps = [
436        ":strings",
437        "//absl/base:base_internal",
438        "//absl/base:config",
439        "//absl/base:core_headers",
440        "//absl/base:endian",
441        "//absl/base:raw_logging_internal",
442        "//absl/base:throw_delegate",
443        "//absl/container:compressed_tuple",
444        "//absl/container:container_memory",
445        "//absl/container:inlined_vector",
446        "//absl/container:layout",
447        "//absl/crc:crc_cord_state",
448        "//absl/functional:function_ref",
449        "//absl/meta:type_traits",
450        "//absl/types:span",
451    ],
452)
453
454cc_test(
455    name = "cord_data_edge_test",
456    size = "small",
457    srcs = ["internal/cord_data_edge_test.cc"],
458    copts = ABSL_TEST_COPTS,
459    visibility = ["//visibility:private"],
460    deps = [
461        ":cord_internal",
462        ":cord_rep_test_util",
463        ":strings",
464        "//absl/base:config",
465        "@com_google_googletest//:gtest",
466        "@com_google_googletest//:gtest_main",
467    ],
468)
469
470cc_test(
471    name = "cord_rep_btree_test",
472    size = "medium",
473    timeout = "long",
474    srcs = ["internal/cord_rep_btree_test.cc"],
475    copts = ABSL_TEST_COPTS,
476    visibility = ["//visibility:private"],
477    deps = [
478        ":cord_internal",
479        ":cord_rep_test_util",
480        ":strings",
481        "//absl/base:config",
482        "//absl/base:raw_logging_internal",
483        "//absl/cleanup",
484        "@com_google_googletest//:gtest",
485        "@com_google_googletest//:gtest_main",
486    ],
487)
488
489cc_test(
490    name = "cord_rep_btree_navigator_test",
491    size = "medium",
492    srcs = ["internal/cord_rep_btree_navigator_test.cc"],
493    copts = ABSL_TEST_COPTS,
494    visibility = ["//visibility:private"],
495    deps = [
496        ":cord_internal",
497        ":cord_rep_test_util",
498        ":strings",
499        "//absl/base:config",
500        "//absl/base:raw_logging_internal",
501        "@com_google_googletest//:gtest",
502        "@com_google_googletest//:gtest_main",
503    ],
504)
505
506cc_test(
507    name = "cord_rep_btree_reader_test",
508    size = "medium",
509    srcs = ["internal/cord_rep_btree_reader_test.cc"],
510    copts = ABSL_TEST_COPTS,
511    visibility = ["//visibility:private"],
512    deps = [
513        ":cord",
514        ":cord_internal",
515        ":cord_rep_test_util",
516        ":strings",
517        "//absl/base:config",
518        "//absl/base:raw_logging_internal",
519        "@com_google_googletest//:gtest",
520        "@com_google_googletest//:gtest_main",
521    ],
522)
523
524cc_test(
525    name = "cord_rep_crc_test",
526    size = "small",
527    srcs = ["internal/cord_rep_crc_test.cc"],
528    copts = ABSL_TEST_COPTS,
529    visibility = ["//visibility:private"],
530    deps = [
531        ":cord_internal",
532        ":cord_rep_test_util",
533        "//absl/base:config",
534        "//absl/crc:crc_cord_state",
535        "@com_google_googletest//:gtest",
536        "@com_google_googletest//:gtest_main",
537    ],
538)
539
540cc_library(
541    name = "cordz_update_tracker",
542    hdrs = ["internal/cordz_update_tracker.h"],
543    copts = ABSL_DEFAULT_COPTS,
544    linkopts = ABSL_DEFAULT_LINKOPTS,
545    visibility = [
546        "//absl:__subpackages__",
547    ],
548    deps = ["//absl/base:config"],
549)
550
551cc_test(
552    name = "cordz_update_tracker_test",
553    srcs = ["internal/cordz_update_tracker_test.cc"],
554    deps = [
555        ":cordz_update_tracker",
556        "//absl/base:config",
557        "//absl/base:core_headers",
558        "//absl/synchronization",
559        "@com_google_googletest//:gtest",
560        "@com_google_googletest//:gtest_main",
561    ],
562)
563
564cc_library(
565    name = "cord",
566    srcs = [
567        "cord.cc",
568        "cord_analysis.cc",
569        "cord_analysis.h",
570        "cord_buffer.cc",
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_functions",
581        ":cordz_info",
582        ":cordz_statistics",
583        ":cordz_update_scope",
584        ":cordz_update_tracker",
585        ":internal",
586        ":strings",
587        "//absl/base",
588        "//absl/base:config",
589        "//absl/base:core_headers",
590        "//absl/base:endian",
591        "//absl/base:raw_logging_internal",
592        "//absl/container:inlined_vector",
593        "//absl/crc:crc32c",
594        "//absl/crc:crc_cord_state",
595        "//absl/functional:function_ref",
596        "//absl/meta:type_traits",
597        "//absl/numeric:bits",
598        "//absl/types:optional",
599        "//absl/types:span",
600    ],
601)
602
603cc_library(
604    name = "cordz_handle",
605    srcs = ["internal/cordz_handle.cc"],
606    hdrs = ["internal/cordz_handle.h"],
607    copts = ABSL_DEFAULT_COPTS,
608    linkopts = ABSL_DEFAULT_LINKOPTS,
609    visibility = [
610        "//absl:__subpackages__",
611    ],
612    deps = [
613        "//absl/base",
614        "//absl/base:config",
615        "//absl/base:raw_logging_internal",
616        "//absl/synchronization",
617    ],
618)
619
620cc_library(
621    name = "cordz_info",
622    srcs = ["internal/cordz_info.cc"],
623    hdrs = ["internal/cordz_info.h"],
624    copts = ABSL_DEFAULT_COPTS,
625    linkopts = ABSL_DEFAULT_LINKOPTS,
626    visibility = [
627        "//absl:__subpackages__",
628    ],
629    deps = [
630        ":cord_internal",
631        ":cordz_functions",
632        ":cordz_handle",
633        ":cordz_statistics",
634        ":cordz_update_tracker",
635        "//absl/base",
636        "//absl/base:config",
637        "//absl/base:core_headers",
638        "//absl/base:raw_logging_internal",
639        "//absl/container:inlined_vector",
640        "//absl/debugging:stacktrace",
641        "//absl/synchronization",
642        "//absl/time",
643        "//absl/types:span",
644    ],
645)
646
647cc_library(
648    name = "cordz_update_scope",
649    hdrs = ["internal/cordz_update_scope.h"],
650    copts = ABSL_DEFAULT_COPTS,
651    linkopts = ABSL_DEFAULT_LINKOPTS,
652    visibility = [
653        "//absl:__subpackages__",
654    ],
655    deps = [
656        ":cord_internal",
657        ":cordz_info",
658        ":cordz_update_tracker",
659        "//absl/base:config",
660        "//absl/base:core_headers",
661    ],
662)
663
664cc_test(
665    name = "cordz_update_scope_test",
666    srcs = ["internal/cordz_update_scope_test.cc"],
667    copts = ABSL_DEFAULT_COPTS,
668    deps = [
669        ":cord_internal",
670        ":cordz_info",
671        ":cordz_test_helpers",
672        ":cordz_update_scope",
673        ":cordz_update_tracker",
674        "//absl/base:config",
675        "@com_google_googletest//:gtest",
676        "@com_google_googletest//:gtest_main",
677    ],
678)
679
680cc_library(
681    name = "cordz_sample_token",
682    srcs = ["internal/cordz_sample_token.cc"],
683    hdrs = ["internal/cordz_sample_token.h"],
684    copts = ABSL_DEFAULT_COPTS,
685    linkopts = ABSL_DEFAULT_LINKOPTS,
686    visibility = [
687        "//absl:__subpackages__",
688    ],
689    deps = [
690        ":cordz_handle",
691        ":cordz_info",
692        "//absl/base:config",
693    ],
694)
695
696cc_library(
697    name = "cordz_functions",
698    srcs = ["internal/cordz_functions.cc"],
699    hdrs = ["internal/cordz_functions.h"],
700    copts = ABSL_DEFAULT_COPTS,
701    linkopts = ABSL_DEFAULT_LINKOPTS,
702    visibility = [
703        "//absl:__subpackages__",
704    ],
705    deps = [
706        "//absl/base:config",
707        "//absl/base:core_headers",
708        "//absl/base:raw_logging_internal",
709        "//absl/profiling:exponential_biased",
710    ],
711)
712
713cc_library(
714    name = "cordz_statistics",
715    hdrs = ["internal/cordz_statistics.h"],
716    copts = ABSL_DEFAULT_COPTS,
717    linkopts = ABSL_DEFAULT_LINKOPTS,
718    visibility = [
719        "//absl:__subpackages__",
720    ],
721    deps = [
722        ":cordz_update_tracker",
723        "//absl/base:config",
724    ],
725)
726
727cc_test(
728    name = "cordz_functions_test",
729    srcs = [
730        "internal/cordz_functions_test.cc",
731    ],
732    deps = [
733        ":cordz_functions",
734        ":cordz_test_helpers",
735        "//absl/base:config",
736        "@com_google_googletest//:gtest",
737        "@com_google_googletest//:gtest_main",
738    ],
739)
740
741cc_test(
742    name = "cordz_handle_test",
743    srcs = [
744        "internal/cordz_handle_test.cc",
745    ],
746    deps = [
747        ":cordz_handle",
748        "//absl/base:config",
749        "//absl/memory",
750        "//absl/random",
751        "//absl/random:distributions",
752        "//absl/synchronization",
753        "//absl/synchronization:thread_pool",
754        "//absl/time",
755        "@com_google_googletest//:gtest",
756        "@com_google_googletest//:gtest_main",
757    ],
758)
759
760cc_test(
761    name = "cordz_info_test",
762    srcs = [
763        "internal/cordz_info_test.cc",
764    ],
765    deps = [
766        ":cord_internal",
767        ":cordz_handle",
768        ":cordz_info",
769        ":cordz_statistics",
770        ":cordz_test_helpers",
771        ":cordz_update_tracker",
772        ":strings",
773        "//absl/base:config",
774        "//absl/debugging:stacktrace",
775        "//absl/debugging:symbolize",
776        "//absl/types:span",
777        "@com_google_googletest//:gtest",
778        "@com_google_googletest//:gtest_main",
779    ],
780)
781
782cc_test(
783    name = "cordz_info_statistics_test",
784    srcs = [
785        "internal/cordz_info_statistics_test.cc",
786    ],
787    deps = [
788        ":cord",
789        ":cord_internal",
790        ":cordz_info",
791        ":cordz_sample_token",
792        ":cordz_statistics",
793        ":cordz_update_scope",
794        ":cordz_update_tracker",
795        "//absl/base:config",
796        "//absl/crc:crc_cord_state",
797        "//absl/synchronization",
798        "//absl/synchronization:thread_pool",
799        "@com_google_googletest//:gtest",
800        "@com_google_googletest//:gtest_main",
801    ],
802)
803
804cc_test(
805    name = "cordz_sample_token_test",
806    srcs = [
807        "internal/cordz_sample_token_test.cc",
808    ],
809    deps = [
810        ":cord_internal",
811        ":cordz_handle",
812        ":cordz_info",
813        ":cordz_sample_token",
814        ":cordz_test_helpers",
815        "//absl/base:config",
816        "//absl/memory",
817        "//absl/random",
818        "//absl/synchronization",
819        "//absl/synchronization:thread_pool",
820        "//absl/time",
821        "@com_google_googletest//:gtest",
822        "@com_google_googletest//:gtest_main",
823    ],
824)
825
826cc_library(
827    name = "cord_test_helpers",
828    testonly = 1,
829    hdrs = [
830        "cord_test_helpers.h",
831    ],
832    copts = ABSL_DEFAULT_COPTS,
833    linkopts = ABSL_DEFAULT_LINKOPTS,
834    deps = [
835        ":cord",
836        ":cord_internal",
837        ":strings",
838        "//absl/base:config",
839    ],
840)
841
842cc_library(
843    name = "cord_rep_test_util",
844    testonly = 1,
845    hdrs = ["internal/cord_rep_test_util.h"],
846    copts = ABSL_DEFAULT_COPTS,
847    linkopts = ABSL_DEFAULT_LINKOPTS,
848    deps = [
849        ":cord_internal",
850        ":strings",
851        "//absl/base:config",
852        "//absl/base:raw_logging_internal",
853    ],
854)
855
856cc_library(
857    name = "cordz_test_helpers",
858    testonly = 1,
859    hdrs = ["cordz_test_helpers.h"],
860    copts = ABSL_DEFAULT_COPTS,
861    linkopts = ABSL_DEFAULT_LINKOPTS,
862    deps = [
863        ":cord",
864        ":cord_internal",
865        ":cordz_info",
866        ":cordz_sample_token",
867        ":cordz_statistics",
868        ":cordz_update_tracker",
869        ":strings",
870        "//absl/base:config",
871        "//absl/base:core_headers",
872        "@com_google_googletest//:gtest",
873    ],
874)
875
876cc_test(
877    name = "cord_buffer_test",
878    size = "small",
879    srcs = ["cord_buffer_test.cc"],
880    copts = ABSL_TEST_COPTS,
881    visibility = ["//visibility:private"],
882    deps = [
883        ":cord",
884        ":cord_internal",
885        ":cord_rep_test_util",
886        ":string_view",
887        "//absl/base:config",
888        "//absl/types:span",
889        "@com_google_googletest//:gtest",
890        "@com_google_googletest//:gtest_main",
891    ],
892)
893
894cc_test(
895    name = "cord_test",
896    size = "medium",
897    srcs = ["cord_test.cc"],
898    copts = ABSL_TEST_COPTS,
899    visibility = ["//visibility:private"],
900    deps = [
901        ":cord",
902        ":cord_internal",
903        ":cord_test_helpers",
904        ":cordz_functions",
905        ":cordz_statistics",
906        ":cordz_test_helpers",
907        ":cordz_update_tracker",
908        ":str_format",
909        ":strings",
910        "//absl/base:config",
911        "//absl/base:core_headers",
912        "//absl/base:endian",
913        "//absl/container:fixed_array",
914        "//absl/functional:function_ref",
915        "//absl/hash",
916        "//absl/log",
917        "//absl/log:check",
918        "//absl/random",
919        "//absl/types:optional",
920        "@com_google_googletest//:gtest",
921        "@com_google_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        "@com_google_googletest//:gtest",
955        "@com_google_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        "@com_google_googletest//:gtest",
969        "@com_google_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        "@com_github_google_benchmark//:benchmark_main",
983        "@com_google_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        "@com_google_googletest//:gtest",
996        "@com_google_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        "@com_google_googletest//:gtest",
1013        "@com_google_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        "@com_github_google_benchmark//:benchmark_main",
1027        "@com_google_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        "@com_google_googletest//:gtest",
1040        "@com_google_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        "@com_github_google_benchmark//:benchmark_main",
1053        "@com_google_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        "@com_google_googletest//:gtest",
1070        "@com_google_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        "@com_google_googletest//:gtest",
1085        "@com_google_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        "@com_github_google_benchmark//:benchmark_main",
1098        "@com_google_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        "@com_google_googletest//:gtest",
1112        "@com_google_googletest//:gtest_main",
1113    ],
1114)
1115
1116cc_test(
1117    name = "str_cat_benchmark",
1118    srcs = ["str_cat_benchmark.cc"],
1119    copts = ABSL_TEST_COPTS,
1120    tags = ["benchmark"],
1121    visibility = ["//visibility:private"],
1122    deps = [
1123        ":strings",
1124        "@com_github_google_benchmark//:benchmark_main",
1125        "@com_google_googletest//:gtest",
1126    ],
1127)
1128
1129cc_test(
1130    name = "numbers_test",
1131    size = "medium",
1132    srcs = [
1133        "internal/numbers_test_common.h",
1134        "numbers_test.cc",
1135    ],
1136    copts = ABSL_TEST_COPTS,
1137    visibility = ["//visibility:private"],
1138    deps = [
1139        ":internal",
1140        ":pow10_helper",
1141        ":strings",
1142        "//absl/base:config",
1143        "//absl/log",
1144        "//absl/numeric:int128",
1145        "//absl/random",
1146        "//absl/random:distributions",
1147        "@com_google_googletest//:gtest",
1148        "@com_google_googletest//:gtest_main",
1149    ],
1150)
1151
1152cc_test(
1153    name = "numbers_benchmark",
1154    srcs = ["numbers_benchmark.cc"],
1155    copts = ABSL_TEST_COPTS,
1156    tags = ["benchmark"],
1157    visibility = ["//visibility:private"],
1158    deps = [
1159        ":strings",
1160        "//absl/base:raw_logging_internal",
1161        "//absl/random",
1162        "//absl/random:distributions",
1163        "@com_github_google_benchmark//:benchmark_main",
1164        "@com_google_googletest//:gtest",
1165    ],
1166)
1167
1168cc_test(
1169    name = "strip_test",
1170    size = "small",
1171    srcs = ["strip_test.cc"],
1172    copts = ABSL_TEST_COPTS,
1173    visibility = ["//visibility:private"],
1174    deps = [
1175        ":strings",
1176        "@com_google_googletest//:gtest",
1177        "@com_google_googletest//:gtest_main",
1178    ],
1179)
1180
1181cc_test(
1182    name = "charconv_test",
1183    srcs = ["charconv_test.cc"],
1184    copts = ABSL_TEST_COPTS,
1185    deps = [
1186        ":pow10_helper",
1187        ":str_format",
1188        ":strings",
1189        "@com_google_googletest//:gtest",
1190        "@com_google_googletest//:gtest_main",
1191    ],
1192)
1193
1194cc_test(
1195    name = "charconv_parse_test",
1196    srcs = [
1197        "internal/charconv_parse.h",
1198        "internal/charconv_parse_test.cc",
1199    ],
1200    copts = ABSL_TEST_COPTS,
1201    deps = [
1202        ":strings",
1203        "//absl/base:config",
1204        "//absl/log:check",
1205        "@com_google_googletest//:gtest",
1206        "@com_google_googletest//:gtest_main",
1207    ],
1208)
1209
1210cc_test(
1211    name = "charconv_bigint_test",
1212    srcs = [
1213        "internal/charconv_bigint.h",
1214        "internal/charconv_bigint_test.cc",
1215        "internal/charconv_parse.h",
1216    ],
1217    copts = ABSL_TEST_COPTS,
1218    deps = [
1219        ":strings",
1220        "//absl/base:config",
1221        "@com_google_googletest//:gtest",
1222        "@com_google_googletest//:gtest_main",
1223    ],
1224)
1225
1226cc_test(
1227    name = "charconv_benchmark",
1228    srcs = [
1229        "charconv_benchmark.cc",
1230    ],
1231    tags = [
1232        "benchmark",
1233    ],
1234    deps = [
1235        ":strings",
1236        "@com_github_google_benchmark//:benchmark_main",
1237        "@com_google_googletest//:gtest",
1238    ],
1239)
1240
1241cc_library(
1242    name = "str_format",
1243    hdrs = [
1244        "str_format.h",
1245    ],
1246    copts = ABSL_DEFAULT_COPTS,
1247    linkopts = ABSL_DEFAULT_LINKOPTS,
1248    deps = [
1249        ":str_format_internal",
1250    ],
1251)
1252
1253cc_library(
1254    name = "str_format_internal",
1255    srcs = [
1256        "internal/str_format/arg.cc",
1257        "internal/str_format/bind.cc",
1258        "internal/str_format/extension.cc",
1259        "internal/str_format/float_conversion.cc",
1260        "internal/str_format/output.cc",
1261        "internal/str_format/parser.cc",
1262    ],
1263    hdrs = [
1264        "internal/str_format/arg.h",
1265        "internal/str_format/bind.h",
1266        "internal/str_format/checker.h",
1267        "internal/str_format/constexpr_parser.h",
1268        "internal/str_format/extension.h",
1269        "internal/str_format/float_conversion.h",
1270        "internal/str_format/output.h",
1271        "internal/str_format/parser.h",
1272    ],
1273    copts = ABSL_DEFAULT_COPTS,
1274    linkopts = ABSL_DEFAULT_LINKOPTS,
1275    visibility = ["//visibility:private"],
1276    deps = [
1277        ":strings",
1278        "//absl/base:config",
1279        "//absl/base:core_headers",
1280        "//absl/container:inlined_vector",
1281        "//absl/functional:function_ref",
1282        "//absl/meta:type_traits",
1283        "//absl/numeric:bits",
1284        "//absl/numeric:int128",
1285        "//absl/numeric:representation",
1286        "//absl/types:optional",
1287        "//absl/types:span",
1288        "//absl/utility",
1289    ],
1290)
1291
1292cc_test(
1293    name = "str_format_test",
1294    srcs = ["str_format_test.cc"],
1295    copts = ABSL_TEST_COPTS,
1296    visibility = ["//visibility:private"],
1297    deps = [
1298        ":cord",
1299        ":str_format",
1300        ":strings",
1301        "//absl/base:config",
1302        "//absl/base:core_headers",
1303        "//absl/types:span",
1304        "@com_google_googletest//:gtest",
1305        "@com_google_googletest//:gtest_main",
1306    ],
1307)
1308
1309cc_test(
1310    name = "str_format_extension_test",
1311    srcs = [
1312        "internal/str_format/extension_test.cc",
1313    ],
1314    copts = ABSL_TEST_COPTS,
1315    visibility = ["//visibility:private"],
1316    deps = [
1317        ":str_format",
1318        ":str_format_internal",
1319        ":strings",
1320        "@com_google_googletest//:gtest",
1321        "@com_google_googletest//:gtest_main",
1322    ],
1323)
1324
1325cc_test(
1326    name = "str_format_arg_test",
1327    srcs = ["internal/str_format/arg_test.cc"],
1328    copts = ABSL_TEST_COPTS,
1329    visibility = ["//visibility:private"],
1330    deps = [
1331        ":str_format",
1332        ":str_format_internal",
1333        "@com_google_googletest//:gtest",
1334        "@com_google_googletest//:gtest_main",
1335    ],
1336)
1337
1338cc_test(
1339    name = "str_format_bind_test",
1340    srcs = ["internal/str_format/bind_test.cc"],
1341    copts = ABSL_TEST_COPTS,
1342    visibility = ["//visibility:private"],
1343    deps = [
1344        ":str_format_internal",
1345        "@com_google_googletest//:gtest",
1346        "@com_google_googletest//:gtest_main",
1347    ],
1348)
1349
1350cc_test(
1351    name = "str_format_checker_test",
1352    srcs = ["internal/str_format/checker_test.cc"],
1353    copts = ABSL_TEST_COPTS,
1354    visibility = ["//visibility:private"],
1355    deps = [
1356        ":str_format",
1357        "@com_google_googletest//:gtest",
1358        "@com_google_googletest//:gtest_main",
1359    ],
1360)
1361
1362cc_test(
1363    name = "str_format_convert_test",
1364    size = "medium",
1365    srcs = ["internal/str_format/convert_test.cc"],
1366    copts = ABSL_TEST_COPTS,
1367    visibility = ["//visibility:private"],
1368    deps = [
1369        ":str_format_internal",
1370        ":strings",
1371        "//absl/base:core_headers",
1372        "//absl/base:raw_logging_internal",
1373        "//absl/log",
1374        "//absl/types:optional",
1375        "@com_google_googletest//:gtest",
1376        "@com_google_googletest//:gtest_main",
1377    ],
1378)
1379
1380cc_test(
1381    name = "str_format_output_test",
1382    srcs = ["internal/str_format/output_test.cc"],
1383    copts = ABSL_TEST_COPTS,
1384    visibility = ["//visibility:private"],
1385    deps = [
1386        ":cord",
1387        ":str_format_internal",
1388        "@com_google_googletest//:gtest",
1389        "@com_google_googletest//:gtest_main",
1390    ],
1391)
1392
1393cc_test(
1394    name = "str_format_parser_test",
1395    srcs = ["internal/str_format/parser_test.cc"],
1396    copts = ABSL_TEST_COPTS,
1397    visibility = ["//visibility:private"],
1398    deps = [
1399        ":str_format_internal",
1400        "//absl/base:core_headers",
1401        "@com_google_googletest//:gtest",
1402        "@com_google_googletest//:gtest_main",
1403    ],
1404)
1405
1406cc_library(
1407    name = "pow10_helper",
1408    testonly = True,
1409    srcs = ["internal/pow10_helper.cc"],
1410    hdrs = ["internal/pow10_helper.h"],
1411    linkopts = ABSL_DEFAULT_LINKOPTS,
1412    visibility = ["//visibility:private"],
1413    deps = ["//absl/base:config"],
1414)
1415
1416cc_test(
1417    name = "pow10_helper_test",
1418    srcs = ["internal/pow10_helper_test.cc"],
1419    copts = ABSL_TEST_COPTS,
1420    visibility = ["//visibility:private"],
1421    deps = [
1422        ":pow10_helper",
1423        ":str_format",
1424        "@com_google_googletest//:gtest",
1425        "@com_google_googletest//:gtest_main",
1426    ],
1427)
1428
1429cc_binary(
1430    name = "atod_manual_test",
1431    testonly = 1,
1432    srcs = ["atod_manual_test.cc"],
1433    copts = ABSL_TEST_COPTS,
1434    linkopts = ABSL_DEFAULT_LINKOPTS,
1435    visibility = ["//visibility:private"],
1436    deps = [
1437        ":str_format",
1438        ":strings",
1439        "//absl/base",
1440        "//absl/types:optional",
1441    ],
1442)
1443
1444cc_test(
1445    name = "char_formatting_test",
1446    srcs = [
1447        "char_formatting_test.cc",
1448    ],
1449    deps = [
1450        ":str_format",
1451        ":strings",
1452        "@com_google_googletest//:gtest",
1453        "@com_google_googletest//:gtest_main",
1454    ],
1455)
1456