blob: 027a423e37e93176b534c026ff8aeef17a6a897d [file]
# Licensed under the Apache-2.0 license
load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_library", "rust_test")
load("@pigweed//pw_kernel/tooling:app_package.bzl", "app_package")
rust_library(
name = "mctp_server_lib",
srcs = [
"src/dispatch.rs",
"src/lib.rs",
"src/server.rs",
],
crate_name = "openprot_mctp_server",
edition = "2024",
visibility = ["//visibility:public"],
deps = [
"//services/mctp/api:mctp_api",
"@rust_crates//:heapless",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
],
)
rust_test(
name = "mctp_server_test",
crate = ":mctp_server_lib",
)
# Integration tests — each tests/ file is its own Bazel test target.
# All share tests/common/mod.rs for fixtures (BufferSender, DirectClient, etc.).
# No I2C transport dependency; the mock Sender replaces it entirely.
rust_test(
name = "mctp_server_echo_test",
srcs = [
"tests/echo.rs",
"tests/common/mod.rs",
],
crate_root = "tests/echo.rs",
edition = "2024",
deps = [
":mctp_server_lib",
"//services/mctp/api:mctp_api",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
],
)
rust_test(
name = "mctp_server_dispatch_test",
srcs = [
"tests/dispatch.rs",
"tests/common/mod.rs",
],
crate_root = "tests/dispatch.rs",
edition = "2024",
deps = [
":mctp_server_lib",
"//services/mctp/api:mctp_api",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
],
)
rust_test(
name = "mctp_server_unit_test",
srcs = [
"tests/server_unit.rs",
"tests/common/mod.rs",
],
crate_root = "tests/server_unit.rs",
edition = "2024",
deps = [
":mctp_server_lib",
"//services/mctp/api:mctp_api",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
],
)
rust_test(
name = "mctp_server_integration_test",
srcs = [
"tests/integration.rs",
"tests/common/mod.rs",
],
crate_root = "tests/integration.rs",
edition = "2024",
deps = [
":mctp_server_lib",
"//services/mctp/api:mctp_api",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
],
)
rust_binary(
name = "mctp_server",
srcs = ["src/main.rs"],
edition = "2024",
tags = ["kernel"],
visibility = ["//visibility:public"],
deps = [
":app_mctp_server",
":mctp_server_lib",
"//services/i2c/api:i2c_api",
"//services/i2c/client:i2c_client",
"//services/mctp/api:mctp_api",
"//services/mctp/transport-i2c:mctp_transport_i2c",
"@rust_crates//:mctp",
"@rust_crates//:mctp-lib",
"@pigweed//pw_kernel/syscall:syscall_user",
"@pigweed//pw_kernel/userspace",
"@pigweed//pw_log/rust:pw_log",
"@pigweed//pw_status/rust:pw_status",
],
)
app_package(
name = "app_mctp_server",
app_name = "mctp_server",
edition = "2024",
system_config = "//target/ast1060-evb/mctp:system_config",
tags = ["kernel"],
)