| # Licensed under the Apache-2.0 license |
| |
| exports_files(["src/main.rs"]) |
| |
| 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", |
| "in-process-responder", |
| ], |
| 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", |
| ], |
| ) |
| |
| # In-process SPDM requester variant (AST1060-EVB hardware target). |
| # Same src/main.rs as mctp_server, different feature set. |
| # The virt-ast1060-evb variant is expanded inline in |
| # //target/virt-ast1060-evb/mctp-requester/BUILD.bazel to avoid a |
| # codegen_crate_name collision (two rust_app rules in the same Bazel package |
| # cannot share codegen_crate_name). |
| rust_app( |
| name = "mctp_server_requester", |
| codegen_crate_name = "app_mctp_server_requester", |
| srcs = ["src/main.rs"], |
| crate_features = [ |
| "i2c-polling", |
| "direct-client", |
| "in-process-requester", |
| ], |
| edition = "2024", |
| system_config = "//target/ast1060-evb/mctp-requester: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", |
| ], |
| ) |