# Copyright 2020 The Pigweed Authors # # Licensed under the Apache License, Version 2.0 (the "License"); you may not # use this file except in compliance with the License. You may obtain a copy of # the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations under # the License. load( "//pw_build:pigweed.bzl", "pw_cc_test", ) package(default_visibility = ["//visibility:public"]) licenses(["notice"]) # Libraries cc_library( name = "measurements", testonly = True, srcs = [ "measurements.cc", ], hdrs = [ "public/pw_allocator/benchmarks/measurements.h", ], strip_include_prefix = "public", deps = [ "//pw_chrono:system_clock", "//pw_containers:intrusive_map", "//pw_metric:metric", ], ) cc_library( name = "benchmark", testonly = True, srcs = [ "benchmark.cc", ], hdrs = [ "public/pw_allocator/benchmarks/benchmark.h", "public/pw_allocator/benchmarks/config.h", ], strip_include_prefix = "public", target_compatible_with = select({ "@platforms//os:linux": [], "//conditions:default": ["@platforms//:incompatible"], }), deps = [ ":measurements", "//pw_allocator:block_allocator", "//pw_allocator:fragmentation", "//pw_allocator:test_harness", "//pw_chrono:system_clock", "//pw_metric:metric", "//pw_tokenizer", ], ) # Binaries cc_binary( name = "best_fit_benchmark", testonly = True, srcs = [ "best_fit_benchmark.cc", ], deps = [ ":benchmark", "//pw_allocator:best_fit", "//pw_random", ], ) cc_binary( name = "dual_first_fit_benchmark", testonly = True, srcs = [ "dual_first_fit_benchmark.cc", ], deps = [ ":benchmark", "//pw_allocator:first_fit", "//pw_random", ], ) cc_binary( name = "first_fit_benchmark", testonly = True, srcs = [ "first_fit_benchmark.cc", ], deps = [ ":benchmark", "//pw_allocator:first_fit", "//pw_random", ], ) cc_binary( name = "last_fit_benchmark", testonly = True, srcs = [ "last_fit_benchmark.cc", ], deps = [ ":benchmark", "//pw_allocator:first_fit", "//pw_random", ], ) cc_binary( name = "worst_fit_benchmark", testonly = True, srcs = [ "worst_fit_benchmark.cc", ], deps = [ ":benchmark", "//pw_allocator:worst_fit", "//pw_random", ], ) # Unit tests pw_cc_test( name = "measurements_test", srcs = ["measurements_test.cc"], deps = [":measurements"], ) pw_cc_test( name = "benchmark_test", srcs = ["benchmark_test.cc"], deps = [ ":benchmark", "//pw_allocator:testing", ], )