blob: d22ca9d89f8746b9e0646480619d58b3b81bebe2 [file]
# Licensed under the Apache-2.0 license
load("@rules_rust//rust:defs.bzl", "rust_library", "rust_test")
load("@pigweed//pw_kernel/tooling:rust_app.bzl", "rust_app")
rust_library(
name = "mctp_server_lib",
srcs = [
"src/direct_client.rs",
"src/dispatch.rs",
"src/lib.rs",
"src/server.rs",
],
crate_features = ["direct-client"],
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",
"@pigweed//pw_log/rust:pw_log",
],
)
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_app(
name = "mctp_server",
codegen_crate_name = "app_mctp_server",
srcs = ["src/main.rs"],
crate_features = [
"i2c-polling",
"direct-client",
],
edition = "2024",
system_config = "//target/ast1060-evb/mctp:system_config",
tags = ["kernel"],
visibility = ["//visibility:public"],
deps = [
":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",
"//services/spdm/transport-mctp:spdm_transport_mctp",
"//target/ast1060-evb/spdm-req-resp-test:mock_platform",
"@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",
"@oot_crates_no_std//:spdm-lib",
],
)