diff --git a/tests/test_astlpc.c b/tests/test_astlpc.c
index a014ac3..232d737 100644
--- a/tests/test_astlpc.c
+++ b/tests/test_astlpc.c
@@ -35,7 +35,23 @@
 	uint8_t *lpc;
 };
 
-#define binding_to_mmio(b) \
+struct astlpc_endpoint {
+	struct mctp_binding_astlpc_mmio mmio;
+	struct mctp_binding_astlpc *astlpc;
+	struct mctp *mctp;
+};
+
+struct astlpc_test {
+	struct astlpc_endpoint bmc;
+	struct astlpc_endpoint host;
+	uint8_t kcs[2];
+	uint8_t *lpc_mem;
+
+	void *msg;
+	uint8_t count;
+};
+
+#define binding_to_mmio(b)                                                     \
 	container_of(b, struct mctp_binding_astlpc_mmio, astlpc)
 
 static int mctp_astlpc_mmio_kcs_read(void *data,
@@ -114,12 +130,17 @@
 static void rx_message(uint8_t eid __unused, void *data __unused, void *msg,
 		       size_t len)
 {
-	uint8_t type;
+	struct astlpc_test *test = data;
 
-	type = *(uint8_t *)msg;
+	mctp_prdebug("MCTP message received: msg: %p, len %zd", msg, len);
 
-	mctp_prdebug("MCTP message received: len %zd, type %d",
-			len, type);
+	assert(len > 0);
+	assert(msg);
+	assert(test);
+	assert(test->msg);
+	assert(!memcmp(test->msg, msg, len));
+
+	test->count++;
 }
 
 static const struct mctp_binding_astlpc_ops mctp_binding_astlpc_mmio_ops = {
@@ -129,12 +150,6 @@
 	.lpc_write = mctp_astlpc_mmio_lpc_write,
 };
 
-struct astlpc_endpoint {
-	struct mctp_binding_astlpc_mmio mmio;
-	struct mctp_binding_astlpc *astlpc;
-	struct mctp *mctp;
-};
-
 static void endpoint_init(struct astlpc_endpoint *ep, mctp_eid_t eid,
 			  uint8_t mode, uint8_t (*kcs)[2], void *lpc_mem,
 			  size_t lpc_size)
@@ -148,8 +163,6 @@
 	ep->mctp = mctp_init();
 	assert(ep->mctp);
 
-	mctp_set_rx_all(ep->mctp, rx_message, NULL);
-
 	/* Inject KCS registers */
 	ep->mmio.kcs = kcs;
 
@@ -170,13 +183,6 @@
 	mctp_destroy(ep->mctp);
 }
 
-struct astlpc_test {
-	struct astlpc_endpoint bmc;
-	struct astlpc_endpoint host;
-	uint8_t kcs[2];
-	uint8_t *lpc_mem;
-};
-
 static void network_init(struct astlpc_test *ctx)
 {
 	const size_t lpc_size = 1 * 1024 * 1024;
@@ -224,10 +230,14 @@
 
 	/* Test harness initialisation */
 
+	network_init(&ctx);
+
 	memset(&msg[0], 0x5a, MCTP_BTU);
 	memset(&msg[MCTP_BTU], 0xa5, MCTP_BTU);
 
-	network_init(&ctx);
+	ctx.msg = &msg[0];
+	ctx.count = 0;
+	mctp_set_rx_all(ctx.host.mctp, rx_message, &ctx);
 
 	/* BMC sends a message */
 	rc = mctp_message_tx(ctx.bmc.mctp, 9, msg, sizeof(msg));
@@ -255,6 +265,10 @@
 
 	astlpc_assert_tx_packet(&ctx.bmc, &msg[MCTP_BTU], MCTP_BTU);
 
+	/* Host receives final packet */
+	mctp_astlpc_poll(ctx.host.astlpc);
+	assert(ctx.count == 1);
+
 	network_destroy(&ctx);
 }
 
