xref: /aosp_15_r20/external/pigweed/pw_malloc/BUILD.bazel (revision 61c4878ac05f98d0ceed94b57d316916de578985)
1*61c4878aSAndroid Build Coastguard Worker# Copyright 2020 The Pigweed Authors
2*61c4878aSAndroid Build Coastguard Worker#
3*61c4878aSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License"); you may not
4*61c4878aSAndroid Build Coastguard Worker# use this file except in compliance with the License. You may obtain a copy of
5*61c4878aSAndroid Build Coastguard Worker# the License at
6*61c4878aSAndroid Build Coastguard Worker#
7*61c4878aSAndroid Build Coastguard Worker#     https://www.apache.org/licenses/LICENSE-2.0
8*61c4878aSAndroid Build Coastguard Worker#
9*61c4878aSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*61c4878aSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
11*61c4878aSAndroid Build Coastguard Worker# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
12*61c4878aSAndroid Build Coastguard Worker# License for the specific language governing permissions and limitations under
13*61c4878aSAndroid Build Coastguard Worker# the License.
14*61c4878aSAndroid Build Coastguard Worker
15*61c4878aSAndroid Build Coastguard Workerload("//pw_build:pw_facade.bzl", "pw_facade")
16*61c4878aSAndroid Build Coastguard Workerload("//pw_unit_test:pw_cc_test.bzl", "pw_cc_test")
17*61c4878aSAndroid Build Coastguard Worker
18*61c4878aSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"])
19*61c4878aSAndroid Build Coastguard Worker
20*61c4878aSAndroid Build Coastguard Workerlicenses(["notice"])
21*61c4878aSAndroid Build Coastguard Worker
22*61c4878aSAndroid Build Coastguard Workerconstraint_setting(
23*61c4878aSAndroid Build Coastguard Worker    name = "backend_constraint_setting",
24*61c4878aSAndroid Build Coastguard Worker)
25*61c4878aSAndroid Build Coastguard Worker
26*61c4878aSAndroid Build Coastguard Worker# TODO: pwbug.dev/328679085 - Remove this alias once no-one uses it.
27*61c4878aSAndroid Build Coastguard Workeralias(
28*61c4878aSAndroid Build Coastguard Worker    name = "facade",
29*61c4878aSAndroid Build Coastguard Worker    actual = "pw_malloc.facade",
30*61c4878aSAndroid Build Coastguard Worker)
31*61c4878aSAndroid Build Coastguard Worker
32*61c4878aSAndroid Build Coastguard Worker_COMMON_SRCS = ["malloc.cc"]
33*61c4878aSAndroid Build Coastguard Worker
34*61c4878aSAndroid Build Coastguard Worker_COMMON_HDRS = [
35*61c4878aSAndroid Build Coastguard Worker    "public/pw_malloc/config.h",
36*61c4878aSAndroid Build Coastguard Worker    "public/pw_malloc/malloc.h",
37*61c4878aSAndroid Build Coastguard Worker]
38*61c4878aSAndroid Build Coastguard Worker
39*61c4878aSAndroid Build Coastguard Workercc_library(
40*61c4878aSAndroid Build Coastguard Worker    name = "common",
41*61c4878aSAndroid Build Coastguard Worker    linkopts = [
42*61c4878aSAndroid Build Coastguard Worker        # Link options that replace dynamic memory operations in standard
43*61c4878aSAndroid Build Coastguard Worker        # library with the pigweed malloc.
44*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=malloc",
45*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=free",
46*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=realloc",
47*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=calloc",
48*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=_malloc_r",
49*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=_realloc_r",
50*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=_free_r",
51*61c4878aSAndroid Build Coastguard Worker        "-Wl,--wrap=_calloc_r",
52*61c4878aSAndroid Build Coastguard Worker    ],
53*61c4878aSAndroid Build Coastguard Worker    visibility = ["//visibility:private"],
54*61c4878aSAndroid Build Coastguard Worker    deps = [
55*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:allocator",
56*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:synchronized_allocator",
57*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:tracking_allocator",
58*61c4878aSAndroid Build Coastguard Worker        "//pw_assert",
59*61c4878aSAndroid Build Coastguard Worker        "//pw_bytes",
60*61c4878aSAndroid Build Coastguard Worker        "//pw_preprocessor",
61*61c4878aSAndroid Build Coastguard Worker    ],
62*61c4878aSAndroid Build Coastguard Worker)
63*61c4878aSAndroid Build Coastguard Worker
64*61c4878aSAndroid Build Coastguard Workerpw_facade(
65*61c4878aSAndroid Build Coastguard Worker    name = "pw_malloc",
66*61c4878aSAndroid Build Coastguard Worker    srcs = _COMMON_SRCS,
67*61c4878aSAndroid Build Coastguard Worker    hdrs = _COMMON_HDRS,
68*61c4878aSAndroid Build Coastguard Worker    backend = ":backend",
69*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
70*61c4878aSAndroid Build Coastguard Worker    deps = [
71*61c4878aSAndroid Build Coastguard Worker        ":common",
72*61c4878aSAndroid Build Coastguard Worker        ":config_override",
73*61c4878aSAndroid Build Coastguard Worker    ],
74*61c4878aSAndroid Build Coastguard Worker)
75*61c4878aSAndroid Build Coastguard Worker
76*61c4878aSAndroid Build Coastguard Workerlabel_flag(
77*61c4878aSAndroid Build Coastguard Worker    name = "config_override",
78*61c4878aSAndroid Build Coastguard Worker    build_setting_default = "//pw_build:default_module_config",
79*61c4878aSAndroid Build Coastguard Worker)
80*61c4878aSAndroid Build Coastguard Worker
81*61c4878aSAndroid Build Coastguard Workerlabel_flag(
82*61c4878aSAndroid Build Coastguard Worker    name = "backend",
83*61c4878aSAndroid Build Coastguard Worker    build_setting_default = ":backend_multiplexer",
84*61c4878aSAndroid Build Coastguard Worker)
85*61c4878aSAndroid Build Coastguard Worker
86*61c4878aSAndroid Build Coastguard Workerconstraint_value(
87*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_backend",
88*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
89*61c4878aSAndroid Build Coastguard Worker)
90*61c4878aSAndroid Build Coastguard Worker
91*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
92*61c4878aSAndroid Build Coastguard Workerconstraint_value(
93*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_block_allocator_backend",
94*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
95*61c4878aSAndroid Build Coastguard Worker)
96*61c4878aSAndroid Build Coastguard Worker
97*61c4878aSAndroid Build Coastguard Workerconstraint_value(
98*61c4878aSAndroid Build Coastguard Worker    name = "bucket_allocator_backend",
99*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
100*61c4878aSAndroid Build Coastguard Worker)
101*61c4878aSAndroid Build Coastguard Worker
102*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
103*61c4878aSAndroid Build Coastguard Workerconstraint_value(
104*61c4878aSAndroid Build Coastguard Worker    name = "bucket_block_allocator_backend",
105*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
106*61c4878aSAndroid Build Coastguard Worker)
107*61c4878aSAndroid Build Coastguard Worker
108*61c4878aSAndroid Build Coastguard Workerconstraint_value(
109*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_backend",
110*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
111*61c4878aSAndroid Build Coastguard Worker)
112*61c4878aSAndroid Build Coastguard Worker
113*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
114*61c4878aSAndroid Build Coastguard Workerconstraint_value(
115*61c4878aSAndroid Build Coastguard Worker    name = "dual_first_fit_block_allocator_backend",
116*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
117*61c4878aSAndroid Build Coastguard Worker)
118*61c4878aSAndroid Build Coastguard Worker
119*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
120*61c4878aSAndroid Build Coastguard Workerconstraint_value(
121*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_block_allocator_backend",
122*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
123*61c4878aSAndroid Build Coastguard Worker)
124*61c4878aSAndroid Build Coastguard Worker
125*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
126*61c4878aSAndroid Build Coastguard Workerconstraint_value(
127*61c4878aSAndroid Build Coastguard Worker    name = "last_fit_block_allocator_backend",
128*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
129*61c4878aSAndroid Build Coastguard Worker)
130*61c4878aSAndroid Build Coastguard Worker
131*61c4878aSAndroid Build Coastguard Workerconstraint_value(
132*61c4878aSAndroid Build Coastguard Worker    name = "freelist_backend",
133*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
134*61c4878aSAndroid Build Coastguard Worker)
135*61c4878aSAndroid Build Coastguard Worker
136*61c4878aSAndroid Build Coastguard Workerconstraint_value(
137*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit_backend",
138*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
139*61c4878aSAndroid Build Coastguard Worker)
140*61c4878aSAndroid Build Coastguard Worker
141*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
142*61c4878aSAndroid Build Coastguard Workerconstraint_value(
143*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit_block_allocator_backend",
144*61c4878aSAndroid Build Coastguard Worker    constraint_setting = "//pw_malloc:backend_constraint_setting",
145*61c4878aSAndroid Build Coastguard Worker)
146*61c4878aSAndroid Build Coastguard Worker
147*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
148*61c4878aSAndroid Build Coastguard Workeralias(
149*61c4878aSAndroid Build Coastguard Worker    name = "backend_multiplexer",
150*61c4878aSAndroid Build Coastguard Worker    actual = select({
151*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:best_fit_block_allocator_backend": "//pw_malloc:best_fit",
152*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:bucket_allocator_backend": "//pw_malloc:bucket_allocator",
153*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:bucket_block_allocator_backend": "//pw_malloc:bucket_allocator",
154*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:dual_first_fit_block_allocator_backend": "//pw_malloc:first_fit",
155*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:first_fit_block_allocator_backend": "//pw_malloc:first_fit",
156*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:last_fit_block_allocator_backend": "//pw_malloc:first_fit",
157*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:worst_fit_block_allocator_backend": "//pw_malloc:worst_fit",
158*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc_freelist:backend": "//pw_malloc:bucket_allocator",
159*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc_freertos:backend": "//pw_malloc_freertos",
160*61c4878aSAndroid Build Coastguard Worker        "//conditions:default": "//pw_build:unspecified_backend",
161*61c4878aSAndroid Build Coastguard Worker    }),
162*61c4878aSAndroid Build Coastguard Worker    visibility = ["//targets:__pkg__"],
163*61c4878aSAndroid Build Coastguard Worker)
164*61c4878aSAndroid Build Coastguard Worker
165*61c4878aSAndroid Build Coastguard Workercc_library(
166*61c4878aSAndroid Build Coastguard Worker    name = "best_fit",
167*61c4878aSAndroid Build Coastguard Worker    srcs = ["best_fit.cc"],
168*61c4878aSAndroid Build Coastguard Worker    deps = [
169*61c4878aSAndroid Build Coastguard Worker        ":pw_malloc.facade",
170*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:best_fit",
171*61c4878aSAndroid Build Coastguard Worker    ],
172*61c4878aSAndroid Build Coastguard Worker)
173*61c4878aSAndroid Build Coastguard Worker
174*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
175*61c4878aSAndroid Build Coastguard Workercc_library(
176*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_block_allocator",
177*61c4878aSAndroid Build Coastguard Worker    deps = [":best_fit"],
178*61c4878aSAndroid Build Coastguard Worker)
179*61c4878aSAndroid Build Coastguard Worker
180*61c4878aSAndroid Build Coastguard Workercc_library(
181*61c4878aSAndroid Build Coastguard Worker    name = "bucket_allocator",
182*61c4878aSAndroid Build Coastguard Worker    srcs = ["bucket_allocator.cc"],
183*61c4878aSAndroid Build Coastguard Worker    deps = [
184*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:bucket_allocator",
185*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:facade",
186*61c4878aSAndroid Build Coastguard Worker    ],
187*61c4878aSAndroid Build Coastguard Worker)
188*61c4878aSAndroid Build Coastguard Worker
189*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
190*61c4878aSAndroid Build Coastguard Workercc_library(
191*61c4878aSAndroid Build Coastguard Worker    name = "bucket_block_allocator",
192*61c4878aSAndroid Build Coastguard Worker    deps = [":bucket_allocator"],
193*61c4878aSAndroid Build Coastguard Worker)
194*61c4878aSAndroid Build Coastguard Worker
195*61c4878aSAndroid Build Coastguard Workercc_library(
196*61c4878aSAndroid Build Coastguard Worker    name = "first_fit",
197*61c4878aSAndroid Build Coastguard Worker    srcs = ["first_fit.cc"],
198*61c4878aSAndroid Build Coastguard Worker    deps = [
199*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:first_fit",
200*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:facade",
201*61c4878aSAndroid Build Coastguard Worker    ],
202*61c4878aSAndroid Build Coastguard Worker)
203*61c4878aSAndroid Build Coastguard Worker
204*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
205*61c4878aSAndroid Build Coastguard Workercc_library(
206*61c4878aSAndroid Build Coastguard Worker    name = "dual_first_fit_block_allocator",
207*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
208*61c4878aSAndroid Build Coastguard Worker)
209*61c4878aSAndroid Build Coastguard Worker
210*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
211*61c4878aSAndroid Build Coastguard Workercc_library(
212*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_block_allocator",
213*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
214*61c4878aSAndroid Build Coastguard Worker)
215*61c4878aSAndroid Build Coastguard Worker
216*61c4878aSAndroid Build Coastguard Worker# TODO(b/376730645): Remove deprecated backends.
217*61c4878aSAndroid Build Coastguard Workercc_library(
218*61c4878aSAndroid Build Coastguard Worker    name = "last_fit_block_allocator",
219*61c4878aSAndroid Build Coastguard Worker    deps = [":first_fit"],
220*61c4878aSAndroid Build Coastguard Worker)
221*61c4878aSAndroid Build Coastguard Worker
222*61c4878aSAndroid Build Coastguard Workercc_library(
223*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit",
224*61c4878aSAndroid Build Coastguard Worker    srcs = ["worst_fit.cc"],
225*61c4878aSAndroid Build Coastguard Worker    deps = [
226*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:worst_fit",
227*61c4878aSAndroid Build Coastguard Worker        "//pw_malloc:facade",
228*61c4878aSAndroid Build Coastguard Worker    ],
229*61c4878aSAndroid Build Coastguard Worker)
230*61c4878aSAndroid Build Coastguard Worker
231*61c4878aSAndroid Build Coastguard Workercc_library(
232*61c4878aSAndroid Build Coastguard Worker    name = "testing",
233*61c4878aSAndroid Build Coastguard Worker    testonly = True,
234*61c4878aSAndroid Build Coastguard Worker    srcs = _COMMON_SRCS,
235*61c4878aSAndroid Build Coastguard Worker    hdrs = _COMMON_HDRS + ["public/pw_malloc/internal/testing.h"],
236*61c4878aSAndroid Build Coastguard Worker    defines = [
237*61c4878aSAndroid Build Coastguard Worker        "PW_MALLOC_METRICS_INCLUDE=\\\"pw_malloc/internal/testing.h\\\"",
238*61c4878aSAndroid Build Coastguard Worker        "PW_MALLOC_METRICS_TYPE=::pw::malloc::internal::TestMetrics",
239*61c4878aSAndroid Build Coastguard Worker        "PW_MALLOC_BLOCK_OFFSET_TYPE=uint16_t",
240*61c4878aSAndroid Build Coastguard Worker        "PW_MALLOC_MIN_BUCKET_SIZE=64",
241*61c4878aSAndroid Build Coastguard Worker        "PW_MALLOC_NUM_BUCKETS=4",
242*61c4878aSAndroid Build Coastguard Worker    ],
243*61c4878aSAndroid Build Coastguard Worker    implementation_deps = [
244*61c4878aSAndroid Build Coastguard Worker        "//pw_tokenizer:decoder",
245*61c4878aSAndroid Build Coastguard Worker    ],
246*61c4878aSAndroid Build Coastguard Worker    strip_include_prefix = "public",
247*61c4878aSAndroid Build Coastguard Worker
248*61c4878aSAndroid Build Coastguard Worker    # Only run the test if no backend is set to ensure there is no system
249*61c4878aSAndroid Build Coastguard Worker    # allocator.
250*61c4878aSAndroid Build Coastguard Worker    target_compatible_with = select({
251*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:best_fit_block_allocator_backend": ["@platforms//:incompatible"],
252*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:bucket_allocator_backend": ["@platforms//:incompatible"],
253*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:bucket_block_allocator_backend": ["@platforms//:incompatible"],
254*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:dual_first_fit_block_allocator_backend": ["@platforms//:incompatible"],
255*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:first_fit_block_allocator_backend": ["@platforms//:incompatible"],
256*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:last_fit_block_allocator_backend": ["@platforms//:incompatible"],
257*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc:worst_fit_block_allocator_backend": ["@platforms//:incompatible"],
258*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc_freelist:backend": ["@platforms//:incompatible"],
259*61c4878aSAndroid Build Coastguard Worker                                 "//pw_malloc_freertos:backend": ["@platforms//:incompatible"],
260*61c4878aSAndroid Build Coastguard Worker                                 "//conditions:default": [],
261*61c4878aSAndroid Build Coastguard Worker                             }) +
262*61c4878aSAndroid Build Coastguard Worker
263*61c4878aSAndroid Build Coastguard Worker                             # Currently only supported for host unit tests on Linux.
264*61c4878aSAndroid Build Coastguard Worker                             select({
265*61c4878aSAndroid Build Coastguard Worker                                 "@platforms//os:linux": [],
266*61c4878aSAndroid Build Coastguard Worker                                 "//conditions:default": ["@platforms//:incompatible"],
267*61c4878aSAndroid Build Coastguard Worker                             }) +
268*61c4878aSAndroid Build Coastguard Worker
269*61c4878aSAndroid Build Coastguard Worker                             # Only run using the light framework, since gtest allocates objects before
270*61c4878aSAndroid Build Coastguard Worker                             # the test fixture initializes the heap.
271*61c4878aSAndroid Build Coastguard Worker                             select({
272*61c4878aSAndroid Build Coastguard Worker                                 "//pw_unit_test:light_setting": [],
273*61c4878aSAndroid Build Coastguard Worker                                 "//conditions:default": ["@platforms//:incompatible"],
274*61c4878aSAndroid Build Coastguard Worker                             }) +
275*61c4878aSAndroid Build Coastguard Worker
276*61c4878aSAndroid Build Coastguard Worker                             # Don't run with ASAN or TSAN, since they wrap malloc.
277*61c4878aSAndroid Build Coastguard Worker                             select({
278*61c4878aSAndroid Build Coastguard Worker                                 "//pw_toolchain/host_clang:asan_enabled": ["@platforms//:incompatible"],
279*61c4878aSAndroid Build Coastguard Worker                                 "//pw_toolchain/host_clang:tsan_enabled": ["@platforms//:incompatible"],
280*61c4878aSAndroid Build Coastguard Worker                                 "//conditions:default": [],
281*61c4878aSAndroid Build Coastguard Worker                             }),
282*61c4878aSAndroid Build Coastguard Worker    visibility = ["//visibility:private"],
283*61c4878aSAndroid Build Coastguard Worker    deps = [
284*61c4878aSAndroid Build Coastguard Worker        ":common",
285*61c4878aSAndroid Build Coastguard Worker        "//pw_tokenizer:decoder",
286*61c4878aSAndroid Build Coastguard Worker        "//pw_unit_test:light",
287*61c4878aSAndroid Build Coastguard Worker    ],
288*61c4878aSAndroid Build Coastguard Worker)
289*61c4878aSAndroid Build Coastguard Worker
290*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
291*61c4878aSAndroid Build Coastguard Worker    name = "best_fit_test",
292*61c4878aSAndroid Build Coastguard Worker    srcs = [
293*61c4878aSAndroid Build Coastguard Worker        "best_fit.cc",
294*61c4878aSAndroid Build Coastguard Worker        "malloc_test.cc",
295*61c4878aSAndroid Build Coastguard Worker    ],
296*61c4878aSAndroid Build Coastguard Worker    # TODO: b/379937425 - Enable when internal toolchains are sorted out.
297*61c4878aSAndroid Build Coastguard Worker    tags = ["manual"],
298*61c4878aSAndroid Build Coastguard Worker    deps = [
299*61c4878aSAndroid Build Coastguard Worker        ":testing",
300*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:best_fit",
301*61c4878aSAndroid Build Coastguard Worker    ],
302*61c4878aSAndroid Build Coastguard Worker)
303*61c4878aSAndroid Build Coastguard Worker
304*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
305*61c4878aSAndroid Build Coastguard Worker    name = "bucket_allocator_test",
306*61c4878aSAndroid Build Coastguard Worker    srcs = [
307*61c4878aSAndroid Build Coastguard Worker        "bucket_allocator.cc",
308*61c4878aSAndroid Build Coastguard Worker        "malloc_test.cc",
309*61c4878aSAndroid Build Coastguard Worker    ],
310*61c4878aSAndroid Build Coastguard Worker    # TODO: b/379937425 - Enable when internal toolchains are sorted out.
311*61c4878aSAndroid Build Coastguard Worker    tags = ["manual"],
312*61c4878aSAndroid Build Coastguard Worker    deps = [
313*61c4878aSAndroid Build Coastguard Worker        ":testing",
314*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:bucket_allocator",
315*61c4878aSAndroid Build Coastguard Worker    ],
316*61c4878aSAndroid Build Coastguard Worker)
317*61c4878aSAndroid Build Coastguard Worker
318*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
319*61c4878aSAndroid Build Coastguard Worker    name = "first_fit_test",
320*61c4878aSAndroid Build Coastguard Worker    srcs = [
321*61c4878aSAndroid Build Coastguard Worker        "first_fit.cc",
322*61c4878aSAndroid Build Coastguard Worker        "malloc_test.cc",
323*61c4878aSAndroid Build Coastguard Worker    ],
324*61c4878aSAndroid Build Coastguard Worker    # TODO: b/379937425 - Enable when internal toolchains are sorted out.
325*61c4878aSAndroid Build Coastguard Worker    tags = ["manual"],
326*61c4878aSAndroid Build Coastguard Worker    deps = [
327*61c4878aSAndroid Build Coastguard Worker        ":testing",
328*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:first_fit",
329*61c4878aSAndroid Build Coastguard Worker    ],
330*61c4878aSAndroid Build Coastguard Worker)
331*61c4878aSAndroid Build Coastguard Worker
332*61c4878aSAndroid Build Coastguard Workerpw_cc_test(
333*61c4878aSAndroid Build Coastguard Worker    name = "worst_fit_test",
334*61c4878aSAndroid Build Coastguard Worker    srcs = [
335*61c4878aSAndroid Build Coastguard Worker        "malloc_test.cc",
336*61c4878aSAndroid Build Coastguard Worker        "worst_fit.cc",
337*61c4878aSAndroid Build Coastguard Worker    ],
338*61c4878aSAndroid Build Coastguard Worker    # TODO: b/379937425 - Enable when internal toolchains are sorted out.
339*61c4878aSAndroid Build Coastguard Worker    tags = ["manual"],
340*61c4878aSAndroid Build Coastguard Worker    deps = [
341*61c4878aSAndroid Build Coastguard Worker        ":testing",
342*61c4878aSAndroid Build Coastguard Worker        "//pw_allocator:worst_fit",
343*61c4878aSAndroid Build Coastguard Worker    ],
344*61c4878aSAndroid Build Coastguard Worker)
345*61c4878aSAndroid Build Coastguard Worker
346*61c4878aSAndroid Build Coastguard Workerfilegroup(
347*61c4878aSAndroid Build Coastguard Worker    name = "doxygen",
348*61c4878aSAndroid Build Coastguard Worker    srcs = [
349*61c4878aSAndroid Build Coastguard Worker        "public/pw_malloc/config.h",
350*61c4878aSAndroid Build Coastguard Worker        "public/pw_malloc/malloc.h",
351*61c4878aSAndroid Build Coastguard Worker    ],
352*61c4878aSAndroid Build Coastguard Worker)
353