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