• 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_crc.cc",
276        "internal/cord_rep_ring.cc",
277    ],
278    hdrs = [
279        "internal/cord_data_edge.h",
280        "internal/cord_internal.h",
281        "internal/cord_rep_btree.h",
282        "internal/cord_rep_btree_navigator.h",
283        "internal/cord_rep_btree_reader.h",
284        "internal/cord_rep_consume.h",
285        "internal/cord_rep_crc.h",
286        "internal/cord_rep_flat.h",
287        "internal/cord_rep_ring.h",
288        "internal/cord_rep_ring_reader.h",
289    ],
290    copts = ABSL_DEFAULT_COPTS,
291    visibility = [
292        "//visibility:private",
293    ],
294    deps = [
295        ":strings",
296        "//absl/base:base_internal",
297        "//absl/base:config",
298        "//absl/base:core_headers",
299        "//absl/base:endian",
300        "//absl/base:raw_logging_internal",
301        "//absl/base:throw_delegate",
302        "//absl/container:compressed_tuple",
303        "//absl/container:inlined_vector",
304        "//absl/container:layout",
305        "//absl/functional:function_ref",
306        "//absl/meta:type_traits",
307        "//absl/types:span",
308    ],
309)
310
311cc_test(
312    name = "cord_data_edge_test",
313    size = "small",
314    srcs = ["internal/cord_data_edge_test.cc"],
315    copts = ABSL_TEST_COPTS,
316    visibility = ["//visibility:private"],
317    deps = [
318        ":cord_internal",
319        ":cord_rep_test_util",
320        ":strings",
321        "//absl/base:config",
322        "@com_google_googletest//:gtest_main",
323    ],
324)
325
326cc_test(
327    name = "cord_rep_btree_test",
328    size = "medium",
329    srcs = ["internal/cord_rep_btree_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        "//absl/cleanup",
339        "@com_google_googletest//:gtest_main",
340    ],
341)
342
343cc_test(
344    name = "cord_rep_btree_navigator_test",
345    size = "medium",
346    srcs = ["internal/cord_rep_btree_navigator_test.cc"],
347    copts = ABSL_TEST_COPTS,
348    visibility = ["//visibility:private"],
349    deps = [
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_test(
360    name = "cord_rep_btree_reader_test",
361    size = "medium",
362    srcs = ["internal/cord_rep_btree_reader_test.cc"],
363    copts = ABSL_TEST_COPTS,
364    visibility = ["//visibility:private"],
365    deps = [
366        ":cord",
367        ":cord_internal",
368        ":cord_rep_test_util",
369        ":strings",
370        "//absl/base:config",
371        "//absl/base:raw_logging_internal",
372        "@com_google_googletest//:gtest_main",
373    ],
374)
375
376cc_test(
377    name = "cord_rep_crc_test",
378    size = "small",
379    srcs = ["internal/cord_rep_crc_test.cc"],
380    copts = ABSL_TEST_COPTS,
381    visibility = ["//visibility:private"],
382    deps = [
383        ":cord_internal",
384        ":cord_rep_test_util",
385        "//absl/base:config",
386        "@com_google_googletest//:gtest_main",
387    ],
388)
389
390cc_library(
391    name = "cordz_update_tracker",
392    hdrs = ["internal/cordz_update_tracker.h"],
393    copts = ABSL_DEFAULT_COPTS,
394    visibility = [
395        "//absl:__subpackages__",
396    ],
397    deps = ["//absl/base:config"],
398)
399
400cc_test(
401    name = "cordz_update_tracker_test",
402    srcs = ["internal/cordz_update_tracker_test.cc"],
403    deps = [
404        ":cordz_update_tracker",
405        "//absl/base:config",
406        "//absl/base:core_headers",
407        "//absl/synchronization",
408        "@com_google_googletest//:gtest_main",
409    ],
410)
411
412cc_library(
413    name = "cord",
414    srcs = [
415        "cord.cc",
416        "cord_analysis.cc",
417        "cord_analysis.h",
418    ],
419    hdrs = [
420        "cord.h",
421    ],
422    copts = ABSL_DEFAULT_COPTS,
423    deps = [
424        ":cord_internal",
425        ":cordz_functions",
426        ":cordz_info",
427        ":cordz_statistics",
428        ":cordz_update_scope",
429        ":cordz_update_tracker",
430        ":internal",
431        ":str_format",
432        ":strings",
433        "//absl/base",
434        "//absl/base:config",
435        "//absl/base:core_headers",
436        "//absl/base:endian",
437        "//absl/base:raw_logging_internal",
438        "//absl/container:fixed_array",
439        "//absl/container:inlined_vector",
440        "//absl/functional:function_ref",
441        "//absl/meta:type_traits",
442        "//absl/numeric:bits",
443        "//absl/types:optional",
444        "//absl/types:span",
445    ],
446)
447
448cc_library(
449    name = "cordz_handle",
450    srcs = ["internal/cordz_handle.cc"],
451    hdrs = ["internal/cordz_handle.h"],
452    copts = ABSL_DEFAULT_COPTS,
453    visibility = [
454        "//absl:__subpackages__",
455    ],
456    deps = [
457        "//absl/base",
458        "//absl/base:config",
459        "//absl/base:raw_logging_internal",
460        "//absl/synchronization",
461    ],
462)
463
464cc_library(
465    name = "cordz_info",
466    srcs = ["internal/cordz_info.cc"],
467    hdrs = ["internal/cordz_info.h"],
468    copts = ABSL_DEFAULT_COPTS,
469    visibility = [
470        "//absl:__subpackages__",
471    ],
472    deps = [
473        ":cord_internal",
474        ":cordz_functions",
475        ":cordz_handle",
476        ":cordz_statistics",
477        ":cordz_update_tracker",
478        "//absl/base",
479        "//absl/base:config",
480        "//absl/base:core_headers",
481        "//absl/base:raw_logging_internal",
482        "//absl/container:inlined_vector",
483        "//absl/debugging:stacktrace",
484        "//absl/synchronization",
485        "//absl/types:span",
486    ],
487)
488
489cc_library(
490    name = "cordz_update_scope",
491    hdrs = ["internal/cordz_update_scope.h"],
492    copts = ABSL_DEFAULT_COPTS,
493    visibility = [
494        "//absl:__subpackages__",
495    ],
496    deps = [
497        ":cord_internal",
498        ":cordz_info",
499        ":cordz_update_tracker",
500        "//absl/base:config",
501        "//absl/base:core_headers",
502    ],
503)
504
505cc_test(
506    name = "cordz_update_scope_test",
507    srcs = ["internal/cordz_update_scope_test.cc"],
508    copts = ABSL_DEFAULT_COPTS,
509    deps = [
510        ":cord_internal",
511        ":cordz_info",
512        ":cordz_test_helpers",
513        ":cordz_update_scope",
514        ":cordz_update_tracker",
515        "//absl/base:config",
516        "@com_google_googletest//:gtest_main",
517    ],
518)
519
520cc_library(
521    name = "cordz_sample_token",
522    srcs = ["internal/cordz_sample_token.cc"],
523    hdrs = ["internal/cordz_sample_token.h"],
524    copts = ABSL_DEFAULT_COPTS,
525    visibility = [
526        "//absl:__subpackages__",
527    ],
528    deps = [
529        ":cordz_handle",
530        ":cordz_info",
531        "//absl/base:config",
532    ],
533)
534
535cc_library(
536    name = "cordz_functions",
537    srcs = ["internal/cordz_functions.cc"],
538    hdrs = ["internal/cordz_functions.h"],
539    copts = ABSL_DEFAULT_COPTS,
540    visibility = [
541        "//absl:__subpackages__",
542    ],
543    deps = [
544        "//absl/base:config",
545        "//absl/base:core_headers",
546        "//absl/base:raw_logging_internal",
547        "//absl/profiling:exponential_biased",
548    ],
549)
550
551cc_library(
552    name = "cordz_statistics",
553    hdrs = ["internal/cordz_statistics.h"],
554    copts = ABSL_DEFAULT_COPTS,
555    visibility = [
556        "//absl:__subpackages__",
557    ],
558    deps = [
559        ":cordz_update_tracker",
560        "//absl/base:config",
561    ],
562)
563
564cc_test(
565    name = "cordz_functions_test",
566    srcs = [
567        "internal/cordz_functions_test.cc",
568    ],
569    deps = [
570        ":cordz_functions",
571        ":cordz_test_helpers",
572        "//absl/base:config",
573        "@com_google_googletest//:gtest_main",
574    ],
575)
576
577cc_test(
578    name = "cordz_handle_test",
579    srcs = [
580        "internal/cordz_handle_test.cc",
581    ],
582    deps = [
583        ":cordz_handle",
584        "//absl/base:config",
585        "//absl/memory",
586        "//absl/random",
587        "//absl/random:distributions",
588        "//absl/synchronization",
589        "//absl/synchronization:thread_pool",
590        "//absl/time",
591        "@com_google_googletest//:gtest_main",
592    ],
593)
594
595cc_test(
596    name = "cordz_info_test",
597    srcs = [
598        "internal/cordz_info_test.cc",
599    ],
600    deps = [
601        ":cord_internal",
602        ":cordz_handle",
603        ":cordz_info",
604        ":cordz_statistics",
605        ":cordz_test_helpers",
606        ":cordz_update_tracker",
607        ":strings",
608        "//absl/base:config",
609        "//absl/debugging:stacktrace",
610        "//absl/debugging:symbolize",
611        "//absl/types:span",
612        "@com_google_googletest//:gtest_main",
613    ],
614)
615
616cc_test(
617    name = "cordz_info_statistics_test",
618    srcs = [
619        "internal/cordz_info_statistics_test.cc",
620    ],
621    deps = [
622        ":cord",
623        ":cord_internal",
624        ":cordz_info",
625        ":cordz_sample_token",
626        ":cordz_statistics",
627        ":cordz_update_scope",
628        ":cordz_update_tracker",
629        "//absl/base:config",
630        "//absl/synchronization",
631        "//absl/synchronization:thread_pool",
632        "@com_google_googletest//:gtest_main",
633    ],
634)
635
636cc_test(
637    name = "cordz_sample_token_test",
638    srcs = [
639        "internal/cordz_sample_token_test.cc",
640    ],
641    deps = [
642        ":cord_internal",
643        ":cordz_handle",
644        ":cordz_info",
645        ":cordz_sample_token",
646        ":cordz_test_helpers",
647        "//absl/base:config",
648        "//absl/memory",
649        "//absl/random",
650        "//absl/synchronization",
651        "//absl/synchronization:thread_pool",
652        "//absl/time",
653        "@com_google_googletest//:gtest_main",
654    ],
655)
656
657cc_library(
658    name = "cord_test_helpers",
659    testonly = 1,
660    hdrs = [
661        "cord_test_helpers.h",
662    ],
663    copts = ABSL_DEFAULT_COPTS,
664    deps = [
665        ":cord",
666        ":cord_internal",
667        ":strings",
668        "//absl/base:config",
669    ],
670)
671
672cc_library(
673    name = "cord_rep_test_util",
674    testonly = 1,
675    hdrs = ["internal/cord_rep_test_util.h"],
676    copts = ABSL_DEFAULT_COPTS,
677    deps = [
678        ":cord_internal",
679        ":strings",
680        "//absl/base:config",
681        "//absl/base:raw_logging_internal",
682    ],
683)
684
685cc_library(
686    name = "cordz_test_helpers",
687    testonly = 1,
688    hdrs = ["cordz_test_helpers.h"],
689    copts = ABSL_DEFAULT_COPTS,
690    deps = [
691        ":cord",
692        ":cord_internal",
693        ":cordz_info",
694        ":cordz_sample_token",
695        ":cordz_statistics",
696        ":cordz_update_tracker",
697        ":strings",
698        "//absl/base:config",
699        "//absl/base:core_headers",
700        "@com_google_googletest//:gtest",
701    ],
702)
703
704cc_test(
705    name = "cord_test",
706    size = "medium",
707    srcs = ["cord_test.cc"],
708    copts = ABSL_TEST_COPTS,
709    visibility = ["//visibility:private"],
710    deps = [
711        ":cord",
712        ":cord_test_helpers",
713        ":cordz_functions",
714        ":cordz_test_helpers",
715        ":str_format",
716        ":strings",
717        "//absl/base",
718        "//absl/base:config",
719        "//absl/base:core_headers",
720        "//absl/base:endian",
721        "//absl/base:raw_logging_internal",
722        "//absl/container:fixed_array",
723        "//absl/hash",
724        "//absl/random",
725        "@com_google_googletest//:gtest_main",
726    ],
727)
728
729cc_test(
730    name = "cordz_test",
731    size = "medium",
732    srcs = ["cordz_test.cc"],
733    copts = ABSL_TEST_COPTS,
734    tags = [
735        "benchmark",
736        "no_test_android_arm",
737        "no_test_android_arm64",
738        "no_test_android_x86",
739        "no_test_ios_x86_64",
740        "no_test_loonix",
741        "no_test_msvc_x64",
742    ],
743    visibility = ["//visibility:private"],
744    deps = [
745        ":cord",
746        ":cord_test_helpers",
747        ":cordz_functions",
748        ":cordz_info",
749        ":cordz_sample_token",
750        ":cordz_statistics",
751        ":cordz_test_helpers",
752        ":cordz_update_tracker",
753        ":strings",
754        "//absl/base:config",
755        "//absl/base:core_headers",
756        "//absl/base:raw_logging_internal",
757        "@com_google_googletest//:gtest_main",
758    ],
759)
760
761cc_test(
762    name = "cord_ring_test",
763    size = "medium",
764    srcs = ["cord_ring_test.cc"],
765    copts = ABSL_TEST_COPTS,
766    visibility = ["//visibility:private"],
767    deps = [
768        ":cord_internal",
769        ":strings",
770        "//absl/base:config",
771        "//absl/base:core_headers",
772        "//absl/base:raw_logging_internal",
773        "//absl/debugging:leak_check",
774        "@com_google_googletest//:gtest_main",
775    ],
776)
777
778cc_test(
779    name = "cord_ring_reader_test",
780    size = "medium",
781    srcs = ["cord_ring_reader_test.cc"],
782    copts = ABSL_TEST_COPTS,
783    visibility = ["//visibility:private"],
784    deps = [
785        ":cord_internal",
786        ":strings",
787        "//absl/base:core_headers",
788        "//absl/debugging:leak_check",
789        "@com_google_googletest//:gtest_main",
790    ],
791)
792
793cc_test(
794    name = "substitute_test",
795    size = "small",
796    srcs = ["substitute_test.cc"],
797    copts = ABSL_TEST_COPTS,
798    visibility = ["//visibility:private"],
799    deps = [
800        ":strings",
801        "//absl/base:core_headers",
802        "@com_google_googletest//:gtest_main",
803    ],
804)
805
806cc_test(
807    name = "str_replace_benchmark",
808    srcs = ["str_replace_benchmark.cc"],
809    copts = ABSL_TEST_COPTS,
810    tags = ["benchmark"],
811    visibility = ["//visibility:private"],
812    deps = [
813        ":strings",
814        "//absl/base:raw_logging_internal",
815        "@com_github_google_benchmark//:benchmark_main",
816    ],
817)
818
819cc_test(
820    name = "str_replace_test",
821    size = "small",
822    srcs = ["str_replace_test.cc"],
823    copts = ABSL_TEST_COPTS,
824    visibility = ["//visibility:private"],
825    deps = [
826        ":strings",
827        "@com_google_googletest//:gtest_main",
828    ],
829)
830
831cc_test(
832    name = "str_split_test",
833    srcs = ["str_split_test.cc"],
834    copts = ABSL_TEST_COPTS,
835    visibility = ["//visibility:private"],
836    deps = [
837        ":strings",
838        "//absl/base:core_headers",
839        "//absl/base:dynamic_annotations",
840        "//absl/container:btree",
841        "//absl/container:flat_hash_map",
842        "//absl/container:node_hash_map",
843        "@com_google_googletest//:gtest_main",
844    ],
845)
846
847cc_test(
848    name = "str_split_benchmark",
849    srcs = ["str_split_benchmark.cc"],
850    copts = ABSL_TEST_COPTS,
851    tags = ["benchmark"],
852    visibility = ["//visibility:private"],
853    deps = [
854        ":strings",
855        "//absl/base:raw_logging_internal",
856        "@com_github_google_benchmark//:benchmark_main",
857    ],
858)
859
860cc_test(
861    name = "ostringstream_test",
862    size = "small",
863    srcs = ["internal/ostringstream_test.cc"],
864    copts = ABSL_TEST_COPTS,
865    visibility = ["//visibility:private"],
866    deps = [
867        ":internal",
868        "@com_google_googletest//:gtest_main",
869    ],
870)
871
872cc_test(
873    name = "ostringstream_benchmark",
874    srcs = ["internal/ostringstream_benchmark.cc"],
875    copts = ABSL_TEST_COPTS,
876    tags = ["benchmark"],
877    visibility = ["//visibility:private"],
878    deps = [
879        ":internal",
880        "@com_github_google_benchmark//:benchmark_main",
881    ],
882)
883
884cc_test(
885    name = "resize_uninitialized_test",
886    size = "small",
887    srcs = [
888        "internal/resize_uninitialized.h",
889        "internal/resize_uninitialized_test.cc",
890    ],
891    copts = ABSL_TEST_COPTS,
892    visibility = ["//visibility:private"],
893    deps = [
894        "//absl/base:core_headers",
895        "//absl/meta:type_traits",
896        "@com_google_googletest//:gtest_main",
897    ],
898)
899
900cc_test(
901    name = "str_join_test",
902    size = "small",
903    srcs = ["str_join_test.cc"],
904    copts = ABSL_TEST_COPTS,
905    visibility = ["//visibility:private"],
906    deps = [
907        ":strings",
908        "//absl/base:core_headers",
909        "//absl/memory",
910        "@com_google_googletest//:gtest_main",
911    ],
912)
913
914cc_test(
915    name = "str_join_benchmark",
916    srcs = ["str_join_benchmark.cc"],
917    copts = ABSL_TEST_COPTS,
918    tags = ["benchmark"],
919    visibility = ["//visibility:private"],
920    deps = [
921        ":strings",
922        "@com_github_google_benchmark//:benchmark_main",
923    ],
924)
925
926cc_test(
927    name = "str_cat_test",
928    size = "small",
929    srcs = ["str_cat_test.cc"],
930    copts = ABSL_TEST_COPTS,
931    visibility = ["//visibility:private"],
932    deps = [
933        ":strings",
934        "//absl/base:core_headers",
935        "@com_google_googletest//:gtest_main",
936    ],
937)
938
939cc_test(
940    name = "str_cat_benchmark",
941    srcs = ["str_cat_benchmark.cc"],
942    copts = ABSL_TEST_COPTS,
943    tags = ["benchmark"],
944    visibility = ["//visibility:private"],
945    deps = [
946        ":strings",
947        "@com_github_google_benchmark//:benchmark_main",
948    ],
949)
950
951cc_test(
952    name = "numbers_test",
953    size = "medium",
954    srcs = [
955        "internal/numbers_test_common.h",
956        "numbers_test.cc",
957    ],
958    copts = ABSL_TEST_COPTS,
959    visibility = ["//visibility:private"],
960    deps = [
961        ":internal",
962        ":pow10_helper",
963        ":strings",
964        "//absl/base:config",
965        "//absl/base:raw_logging_internal",
966        "//absl/random",
967        "//absl/random:distributions",
968        "@com_google_googletest//:gtest_main",
969    ],
970)
971
972cc_test(
973    name = "numbers_benchmark",
974    srcs = ["numbers_benchmark.cc"],
975    copts = ABSL_TEST_COPTS,
976    tags = ["benchmark"],
977    visibility = ["//visibility:private"],
978    deps = [
979        ":strings",
980        "//absl/base:raw_logging_internal",
981        "//absl/random",
982        "//absl/random:distributions",
983        "@com_github_google_benchmark//:benchmark_main",
984    ],
985)
986
987cc_test(
988    name = "strip_test",
989    size = "small",
990    srcs = ["strip_test.cc"],
991    copts = ABSL_TEST_COPTS,
992    visibility = ["//visibility:private"],
993    deps = [
994        ":strings",
995        "@com_google_googletest//:gtest_main",
996    ],
997)
998
999cc_test(
1000    name = "char_map_test",
1001    srcs = ["internal/char_map_test.cc"],
1002    copts = ABSL_TEST_COPTS,
1003    deps = [
1004        ":internal",
1005        "@com_google_googletest//:gtest_main",
1006    ],
1007)
1008
1009cc_test(
1010    name = "char_map_benchmark",
1011    srcs = ["internal/char_map_benchmark.cc"],
1012    copts = ABSL_TEST_COPTS,
1013    tags = ["benchmark"],
1014    deps = [
1015        ":internal",
1016        "@com_github_google_benchmark//:benchmark_main",
1017    ],
1018)
1019
1020cc_test(
1021    name = "charconv_test",
1022    srcs = ["charconv_test.cc"],
1023    copts = ABSL_TEST_COPTS,
1024    deps = [
1025        ":pow10_helper",
1026        ":str_format",
1027        ":strings",
1028        "@com_google_googletest//:gtest_main",
1029    ],
1030)
1031
1032cc_test(
1033    name = "charconv_parse_test",
1034    srcs = [
1035        "internal/charconv_parse.h",
1036        "internal/charconv_parse_test.cc",
1037    ],
1038    copts = ABSL_TEST_COPTS,
1039    deps = [
1040        ":strings",
1041        "//absl/base:config",
1042        "//absl/base:raw_logging_internal",
1043        "@com_google_googletest//:gtest_main",
1044    ],
1045)
1046
1047cc_test(
1048    name = "charconv_bigint_test",
1049    srcs = [
1050        "internal/charconv_bigint.h",
1051        "internal/charconv_bigint_test.cc",
1052        "internal/charconv_parse.h",
1053    ],
1054    copts = ABSL_TEST_COPTS,
1055    deps = [
1056        ":strings",
1057        "//absl/base:config",
1058        "@com_google_googletest//:gtest_main",
1059    ],
1060)
1061
1062cc_test(
1063    name = "charconv_benchmark",
1064    srcs = [
1065        "charconv_benchmark.cc",
1066    ],
1067    tags = [
1068        "benchmark",
1069    ],
1070    deps = [
1071        ":strings",
1072        "@com_github_google_benchmark//:benchmark_main",
1073    ],
1074)
1075
1076cc_library(
1077    name = "str_format",
1078    hdrs = [
1079        "str_format.h",
1080    ],
1081    copts = ABSL_DEFAULT_COPTS,
1082    deps = [
1083        ":str_format_internal",
1084    ],
1085)
1086
1087cc_library(
1088    name = "str_format_internal",
1089    srcs = [
1090        "internal/str_format/arg.cc",
1091        "internal/str_format/bind.cc",
1092        "internal/str_format/extension.cc",
1093        "internal/str_format/float_conversion.cc",
1094        "internal/str_format/output.cc",
1095        "internal/str_format/parser.cc",
1096    ],
1097    hdrs = [
1098        "internal/str_format/arg.h",
1099        "internal/str_format/bind.h",
1100        "internal/str_format/checker.h",
1101        "internal/str_format/extension.h",
1102        "internal/str_format/float_conversion.h",
1103        "internal/str_format/output.h",
1104        "internal/str_format/parser.h",
1105    ],
1106    copts = ABSL_DEFAULT_COPTS,
1107    visibility = ["//visibility:private"],
1108    deps = [
1109        ":strings",
1110        "//absl/base:config",
1111        "//absl/base:core_headers",
1112        "//absl/functional:function_ref",
1113        "//absl/meta:type_traits",
1114        "//absl/numeric:bits",
1115        "//absl/numeric:int128",
1116        "//absl/numeric:representation",
1117        "//absl/types:optional",
1118        "//absl/types:span",
1119    ],
1120)
1121
1122cc_test(
1123    name = "str_format_test",
1124    srcs = ["str_format_test.cc"],
1125    copts = ABSL_TEST_COPTS,
1126    visibility = ["//visibility:private"],
1127    deps = [
1128        ":cord",
1129        ":str_format",
1130        ":strings",
1131        "//absl/base:core_headers",
1132        "@com_google_googletest//:gtest_main",
1133    ],
1134)
1135
1136cc_test(
1137    name = "str_format_extension_test",
1138    srcs = [
1139        "internal/str_format/extension_test.cc",
1140    ],
1141    copts = ABSL_TEST_COPTS,
1142    visibility = ["//visibility:private"],
1143    deps = [
1144        ":str_format",
1145        ":str_format_internal",
1146        ":strings",
1147        "@com_google_googletest//:gtest_main",
1148    ],
1149)
1150
1151cc_test(
1152    name = "str_format_arg_test",
1153    srcs = ["internal/str_format/arg_test.cc"],
1154    copts = ABSL_TEST_COPTS,
1155    visibility = ["//visibility:private"],
1156    deps = [
1157        ":str_format",
1158        ":str_format_internal",
1159        "@com_google_googletest//:gtest_main",
1160    ],
1161)
1162
1163cc_test(
1164    name = "str_format_bind_test",
1165    srcs = ["internal/str_format/bind_test.cc"],
1166    copts = ABSL_TEST_COPTS,
1167    visibility = ["//visibility:private"],
1168    deps = [
1169        ":str_format_internal",
1170        "@com_google_googletest//:gtest_main",
1171    ],
1172)
1173
1174cc_test(
1175    name = "str_format_checker_test",
1176    srcs = ["internal/str_format/checker_test.cc"],
1177    copts = ABSL_TEST_COPTS,
1178    visibility = ["//visibility:private"],
1179    deps = [
1180        ":str_format",
1181        "@com_google_googletest//:gtest_main",
1182    ],
1183)
1184
1185cc_test(
1186    name = "str_format_convert_test",
1187    size = "medium",
1188    srcs = ["internal/str_format/convert_test.cc"],
1189    copts = ABSL_TEST_COPTS,
1190    visibility = ["//visibility:private"],
1191    deps = [
1192        ":str_format_internal",
1193        ":strings",
1194        "//absl/base:raw_logging_internal",
1195        "//absl/types:optional",
1196        "@com_google_googletest//:gtest_main",
1197    ],
1198)
1199
1200cc_test(
1201    name = "str_format_output_test",
1202    srcs = ["internal/str_format/output_test.cc"],
1203    copts = ABSL_TEST_COPTS,
1204    visibility = ["//visibility:private"],
1205    deps = [
1206        ":cord",
1207        ":str_format_internal",
1208        "@com_google_googletest//:gtest_main",
1209    ],
1210)
1211
1212cc_test(
1213    name = "str_format_parser_test",
1214    srcs = ["internal/str_format/parser_test.cc"],
1215    copts = ABSL_TEST_COPTS,
1216    visibility = ["//visibility:private"],
1217    deps = [
1218        ":str_format_internal",
1219        "//absl/base:core_headers",
1220        "@com_google_googletest//:gtest_main",
1221    ],
1222)
1223
1224cc_library(
1225    name = "pow10_helper",
1226    testonly = True,
1227    srcs = ["internal/pow10_helper.cc"],
1228    hdrs = ["internal/pow10_helper.h"],
1229    visibility = ["//visibility:private"],
1230    deps = ["//absl/base:config"],
1231)
1232
1233cc_test(
1234    name = "pow10_helper_test",
1235    srcs = ["internal/pow10_helper_test.cc"],
1236    copts = ABSL_TEST_COPTS,
1237    visibility = ["//visibility:private"],
1238    deps = [
1239        ":pow10_helper",
1240        ":str_format",
1241        "@com_google_googletest//:gtest_main",
1242    ],
1243)
1244