test_astlpc: Test simple message from BMC to host
Remove the corresponding assertions from the packetized message test.
Signed-off-by: Andrew Jeffery <andrew@aj.id.au>
Change-Id: Ifd0d857e4e955e57b0fb4a4cd2dc0a655b3c9508
diff --git a/tests/test_astlpc.c b/tests/test_astlpc.c
index 2a115c5..63915e7 100644
--- a/tests/test_astlpc.c
+++ b/tests/test_astlpc.c
@@ -244,19 +244,10 @@
/* BMC sends a message */
rc = mctp_message_tx(ctx.bmc.mctp, 9, msg, sizeof(msg));
assert(rc == 0);
- assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_OBF);
- assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_DATA] == 0x01);
-
- astlpc_assert_tx_packet(&ctx.bmc, &msg[0], MCTP_BTU);
/* Host receives the first packet */
mctp_astlpc_poll(ctx.host.astlpc);
- /* Host returns Rx area ownership to BMC */
- assert(!(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_OBF));
- assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_DATA] == 0x02);
- assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_IBF);
-
/* BMC dequeues ownership hand-over and sends the queued packet */
rc = mctp_astlpc_poll(ctx.bmc.astlpc);
assert(rc == 0);
@@ -274,6 +265,46 @@
network_destroy(&ctx);
}
+static void astlpc_test_simple_message_bmc_to_host(void)
+{
+ struct astlpc_test ctx = { 0 };
+ uint8_t msg[MCTP_BTU];
+ int rc;
+
+ /* Test harness initialisation */
+
+ network_init(&ctx);
+
+ memset(&msg[0], 0x5a, MCTP_BTU);
+
+ ctx.msg = &msg[0];
+ ctx.count = 0;
+ mctp_set_rx_all(ctx.host.mctp, rx_message, &ctx);
+
+ /* BMC sends the single-packet message */
+ rc = mctp_message_tx(ctx.bmc.mctp, 9, msg, sizeof(msg));
+ assert(rc == 0);
+ assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_OBF);
+ assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_DATA] == 0x01);
+
+ astlpc_assert_tx_packet(&ctx.bmc, &msg[0], MCTP_BTU);
+
+ /* Host receives the single-packet message */
+ mctp_astlpc_poll(ctx.host.astlpc);
+ assert(ctx.count == 1);
+
+ /* Host returns Rx area ownership to BMC */
+ assert(!(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_OBF));
+ assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_DATA] == 0x02);
+ assert(ctx.kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_IBF);
+
+ /* BMC dequeues ownership hand-over and sends the queued packet */
+ rc = mctp_astlpc_poll(ctx.bmc.astlpc);
+ assert(rc == 0);
+
+ network_destroy(&ctx);
+}
+
static void astlpc_test_simple_init(void)
{
struct astlpc_endpoint bmc, host;
@@ -286,14 +317,14 @@
lpc_mem = calloc(1, lpc_size);
assert(lpc_mem);
- /* Bus owner (BMC) initialisation */
+ /* BMC initialisation */
endpoint_init(&bmc, 8, MCTP_BINDING_ASTLPC_MODE_BMC, &kcs, lpc_mem,
lpc_size);
/* Verify the BMC binding was initialised */
assert(kcs[MCTP_ASTLPC_KCS_REG_STATUS] & KCS_STATUS_BMC_READY);
- /* Device (Host) initialisation */
+ /* Host initialisation */
endpoint_init(&host, 9, MCTP_BINDING_ASTLPC_MODE_HOST, &kcs, lpc_mem,
lpc_size);
@@ -322,6 +353,7 @@
mctp_set_log_stdio(MCTP_LOG_DEBUG);
astlpc_test_simple_init();
+ astlpc_test_simple_message_bmc_to_host();
astlpc_test_packetised_message_bmc_to_host();
return 0;