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