blob: c5389923fee45c0f0f14c893ed6197753cb7e04b [file] [log] [blame]
# Benchmarks for Rust Protobuf.
load(
"@rules_rust//rust:defs.bzl",
"rust_library",
)
load("//bazel:cc_proto_library.bzl", "cc_proto_library")
load(
"//protos/bazel:upb_cc_proto_library.bzl",
"upb_cc_proto_library",
)
load(
"//rust:defs.bzl",
"rust_cc_proto_library",
"rust_upb_proto_library",
)
proto_library(
name = "bench_data_proto",
srcs = ["bench_data.proto"],
)
cc_proto_library(
name = "bench_data_cc_proto",
deps = [":bench_data_proto"],
)
rust_cc_proto_library(
name = "bench_data_cpp_rust_proto",
deps = [":bench_data_proto"],
)
rust_upb_proto_library(
name = "bench_data_upb_rust_proto",
deps = [":bench_data_proto"],
)
upb_cc_proto_library(
name = "bench_data_upb_cc_proto",
deps = [":bench_data_proto"],
)
cc_test(
name = "rust_protobuf_benchmarks_cpp",
testonly = True,
srcs = ["rust_protobuf_benchmarks.cc"],
deps = [
":bench_data_cc_proto",
":bench_data_upb_cc_proto",
":benchmarks",
":proto_benchmarks_cpp", # build_cleaner: keep
"//protos",
"//protos:repeated_field",
"//src/google/protobuf:protobuf_lite",
"//testing/base/public:gunit",
"//third_party/benchmark",
"@com_google_absl//absl/log:absl_check",
"@com_google_googletest//:gtest",
"@com_google_googletest//:gtest_main",
],
)
cc_test(
name = "rust_protobuf_benchmarks_upb",
testonly = True,
srcs = ["rust_protobuf_benchmarks.cc"],
defines = ["BENCHMARK_UPB"],
deps = [
":bench_data_cc_proto",
":bench_data_upb_cc_proto",
":benchmarks",
":proto_benchmarks_upb", # build_cleaner: keep
"//protos",
"//protos:repeated_field",
"//src/google/protobuf:protobuf_lite",
"//testing/base/public:gunit",
"//third_party/benchmark",
"@com_google_absl//absl/log:absl_check",
"@com_google_googletest//:gtest",
"@com_google_googletest//:gtest_main",
],
)
rust_library(
name = "proto_benchmarks_cpp",
srcs = ["proto_benchmarks.rs"],
proc_macro_deps = [
"@crate_index//:paste",
],
rustc_flags = [
"--cfg=bench_cpp",
],
deps = [":bench_data_cpp_rust_proto"],
)
rust_library(
name = "proto_benchmarks_upb",
srcs = ["proto_benchmarks.rs"],
proc_macro_deps = [
"@crate_index//:paste",
],
rustc_flags = [
"--cfg=bench_upb",
],
deps = [":bench_data_upb_rust_proto"],
)
rust_library(
name = "benchmarks",
srcs = ["benchmarks.rs"],
deps = [
":benchmark_thunks", #build_cleaner: keep
],
)
cc_library(
name = "benchmark_thunks",
srcs = ["benchmark_thunks.cc"],
deps = [":bench_data_cc_proto"],
)