# Copyright 2017 gRPC 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
#
#     http://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("//bazel:grpc_build_system.bzl", "grpc_cc_library", "grpc_cc_test", "grpc_package")
load("//test/cpp/microbenchmarks:grpc_benchmark_config.bzl", "grpc_benchmark_args")

licenses(["notice"])

grpc_package(name = "test/cpp/microbenchmarks")

grpc_cc_test(
    name = "noop-benchmark",
    srcs = ["noop-benchmark.cc"],
    external_deps = [
        "benchmark",
    ],
    deps = ["//test/core/util:grpc_test_util"],
)

grpc_cc_test(
    name = "bm_channel_args",
    srcs = ["bm_channel_args.cc"],
    external_deps = [
        "benchmark",
        "absl/container:btree",
    ],
    deps = [
        "//:grpc++",
        "//src/core:channel_args",
        "//test/core/util:grpc_test_util",
    ],
)

grpc_cc_test(
    name = "bm_rng",
    srcs = ["bm_rng.cc"],
    external_deps = [
        "benchmark",
        "absl/container:btree",
    ],
    deps = [
        "//:grpc++",
        "//src/core:channel_args",
        "//test/core/util:grpc_test_util",
    ],
)

grpc_cc_test(
    name = "bm_exec_ctx",
    srcs = ["bm_exec_ctx.cc"],
    args = grpc_benchmark_args(),
    external_deps = [
        "benchmark",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_event_engine_run",
    size = "small",
    srcs = ["bm_event_engine_run.cc"],
    args = grpc_benchmark_args(),
    external_deps = [
        "absl/debugging:leak_check",
        "benchmark",
    ],
    uses_polling = False,
    deps = [
        ":helpers",
        "//src/core:common_event_engine_closures",
    ],
)

grpc_cc_test(
    name = "bm_thread_pool",
    size = "small",
    srcs = ["bm_thread_pool.cc"],
    args = grpc_benchmark_args(),
    external_deps = [
        "benchmark",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [
        ":helpers",
        "//src/core:common_event_engine_closures",
    ],
)

grpc_cc_library(
    name = "helpers",
    testonly = 1,
    srcs = ["helpers.cc"],
    hdrs = [
        "fullstack_context_mutators.h",
        "fullstack_fixtures.h",
        "helpers.h",
    ],
    external_deps = [
        "benchmark",
    ],
    deps = [
        "//:grpc++_unsecure",
        "//src/proto/grpc/testing:echo_proto",
        "//test/core/util:grpc_test_util_base",
        "//test/core/util:grpc_test_util_unsecure",
        "//test/cpp/util:test_config",
    ],
)

# Need a secure version of helpers to benchmark opencensus
grpc_cc_library(
    name = "helpers_secure",
    testonly = 1,
    srcs = ["helpers.cc"],
    hdrs = [
        "fullstack_context_mutators.h",
        "fullstack_fixtures.h",
        "helpers.h",
    ],
    external_deps = [
        "benchmark",
    ],
    deps = [
        "//:grpc++",
        "//src/proto/grpc/testing:echo_proto",
        "//test/core/util:grpc_test_util",
        "//test/core/util:grpc_test_util_base",
        "//test/cpp/util:test_config",
    ],
)

grpc_cc_test(
    name = "bm_closure",
    srcs = ["bm_closure.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    deps = [
        ":helpers",
        "//src/core:closure",
    ],
)

grpc_cc_test(
    name = "bm_huffman_decode",
    srcs = ["bm_huffman_decode.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
        "nomsan",
        "notsan",
        "noubsan",
    ],
    deps = [
        ":helpers",
        "//test/cpp/microbenchmarks/huffman_geometries",
    ],
)

grpc_cc_test(
    name = "bm_alarm",
    srcs = ["bm_alarm.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_arena",
    size = "large",
    srcs = ["bm_arena.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
        "notsan",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_byte_buffer",
    srcs = ["bm_byte_buffer.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_channel",
    srcs = ["bm_channel.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_cq",
    srcs = ["bm_cq.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_cq_multiple_threads",
    srcs = ["bm_cq_multiple_threads.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [":helpers"],
)

grpc_cc_library(
    name = "fullstack_streaming_ping_pong_h",
    testonly = 1,
    hdrs = [
        "fullstack_streaming_ping_pong.h",
    ],
    tags = [
        "no_mac",
        "no_windows",
    ],
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_fullstack_streaming_ping_pong",
    size = "large",
    srcs = [
        "bm_fullstack_streaming_ping_pong.cc",
    ],
    args = grpc_benchmark_args(),
    flaky = True,
    tags = [
        "no_mac",  # to emulate "excluded_poll_engines: poll"
        "no_windows",
    ],
    deps = [":fullstack_streaming_ping_pong_h"],
)

grpc_cc_library(
    name = "fullstack_streaming_pump_h",
    testonly = 1,
    hdrs = [
        "fullstack_streaming_pump.h",
    ],
    deps = [":helpers"],
)

grpc_cc_test(
    name = "bm_fullstack_streaming_pump",
    srcs = [
        "bm_fullstack_streaming_pump.cc",
    ],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",  # to emulate "excluded_poll_engines: poll"
        "no_windows",
    ],
    deps = [":fullstack_streaming_pump_h"],
)

grpc_cc_library(
    name = "fullstack_unary_ping_pong_h",
    testonly = 1,
    hdrs = [
        "fullstack_unary_ping_pong.h",
    ],
    deps = [":helpers_secure"],
)

grpc_cc_test(
    name = "bm_fullstack_unary_ping_pong",
    size = "large",
    srcs = [
        "bm_fullstack_unary_ping_pong.cc",
    ],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",  # to emulate "excluded_poll_engines: poll"
        "no_windows",
    ],
    deps = [":fullstack_unary_ping_pong_h"],
)

grpc_cc_test(
    name = "bm_fullstack_unary_ping_pong_chaotic_good",
    size = "large",
    srcs = [
        "bm_fullstack_unary_ping_pong_chaotic_good.cc",
    ],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",  # to emulate "excluded_poll_engines: poll"
        "no_windows",
    ],
    deps = [
        ":fullstack_unary_ping_pong_h",
        "//:grpcpp_chaotic_good",
    ],
)

grpc_cc_test(
    name = "bm_chttp2_hpack",
    srcs = ["bm_chttp2_hpack.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [
        ":helpers",
        "//src/core:slice",
    ],
)

grpc_cc_test(
    name = "bm_chttp2_transport",
    srcs = ["bm_chttp2_transport.cc"],
    args = grpc_benchmark_args(),
    tags = [
        "no_mac",
        "no_windows",
        "nomsan",
    ],
    deps = [
        ":helpers",
        "//src/core:closure",
        "//src/core:slice",
    ],
)

grpc_cc_test(
    name = "bm_opencensus_plugin",
    srcs = ["bm_opencensus_plugin.cc"],
    args = grpc_benchmark_args(),
    language = "C++",
    deps = [
        ":helpers_secure",
        "//:grpc_opencensus_plugin",
        "//src/proto/grpc/testing:echo_proto",
    ],
)

grpc_cc_library(
    name = "bm_callback_test_service_impl",
    testonly = 1,
    srcs = ["callback_test_service.cc"],
    hdrs = ["callback_test_service.h"],
    external_deps = [
        "benchmark",
    ],
    deps = [
        ":helpers",
        "//src/proto/grpc/testing:echo_proto",
        "//test/cpp/util:test_util",
    ],
)

grpc_cc_library(
    name = "callback_unary_ping_pong_h",
    testonly = 1,
    hdrs = [
        "callback_unary_ping_pong.h",
    ],
    deps = [
        ":bm_callback_test_service_impl",
        ":helpers",
    ],
)

grpc_cc_test(
    name = "bm_callback_unary_ping_pong",
    size = "large",
    srcs = [
        "bm_callback_unary_ping_pong.cc",
    ],
    args = grpc_benchmark_args(),
    tags = [
        "manual",
        "no_mac",
        "no_windows",
        "notap",
    ],
    deps = [":callback_unary_ping_pong_h"],
)

grpc_cc_library(
    name = "callback_streaming_ping_pong_h",
    testonly = 1,
    hdrs = [
        "callback_streaming_ping_pong.h",
    ],
    deps = [
        ":bm_callback_test_service_impl",
        ":helpers",
    ],
)

grpc_cc_test(
    name = "bm_callback_streaming_ping_pong",
    size = "large",
    srcs = [
        "bm_callback_streaming_ping_pong.cc",
    ],
    args = grpc_benchmark_args(),
    tags = [
        "manual",
        "no_mac",
        "no_windows",
        "notap",
    ],
    deps = [":callback_streaming_ping_pong_h"],
)

# TODO(hork): Generalize this for other work queue implementations
grpc_cc_test(
    name = "bm_basic_work_queue",
    srcs = ["bm_basic_work_queue.cc"],
    args = grpc_benchmark_args(),
    external_deps = ["benchmark"],
    tags = [
        "manual",
        "no_windows",
        "notap",
    ],
    uses_event_engine = False,
    uses_polling = False,
    deps = [
        "//:gpr",
        "//src/core:common_event_engine_closures",
        "//src/core:event_engine_basic_work_queue",
        "//test/core/util:grpc_test_util",
    ],
)
