summaryrefslogtreecommitdiffstats
path: root/src/usr/mbox/test/mboxsptest.H
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/mbox/test/mboxsptest.H')
-rw-r--r--src/usr/mbox/test/mboxsptest.H58
1 files changed, 58 insertions, 0 deletions
diff --git a/src/usr/mbox/test/mboxsptest.H b/src/usr/mbox/test/mboxsptest.H
index d1315038b..e3d546e5e 100644
--- a/src/usr/mbox/test/mboxsptest.H
+++ b/src/usr/mbox/test/mboxsptest.H
@@ -309,6 +309,64 @@ class MboxSPTest : public CxxTest::TestSuite
msg_free(msg);
#endif
}
+
+ /**
+ * @brief IPC message test
+ *
+ */
+ void testIPC(void)
+ {
+ errlHndl_t err = NULL;
+ msg_t * msg = msg_allocate();
+ msg_t * tmsg = msg_allocate();
+ msg_q_t msgQ = msg_q_create();
+
+ err = MBOX::msgq_register(MBOX::HB_TEST_MSGQ,msgQ);
+ if(err)
+ {
+ TS_FAIL("MBOX IPC: Could not register message queue");
+ errlCommit(err,MBOX_COMP_ID);
+ }
+
+ msg->type = 1;
+ msg->data[0] = 0x1111111111111111ull;
+ msg->data[1] = 0x4444444444444444ull;
+ msg->extra_data = (void *)0x3333333333333333ull;
+
+ *tmsg = *msg; // save for compare
+ uint64_t node = 0;
+
+ err = MBOX::send(MBOX::HB_TEST_MSGQ,msg,node);
+ if(err)
+ {
+ TS_FAIL("MBOX::send (IPC) returned and error log");
+ errlCommit(err,MBOX_COMP_ID);
+ msg_free(msg);
+ return;
+ }
+
+ msg_t * rmsg = msg_wait(msgQ);
+
+ if(rmsg->type != tmsg->type ||
+ rmsg->data[0] != tmsg->data[0] ||
+ rmsg->data[1] != tmsg->data[1] ||
+ rmsg->extra_data != tmsg->extra_data)
+ {
+ TS_FAIL("IPCTEST: Unexpected IPC message");
+
+ TRACFCOMP(g_trac_mbox,
+ "IPCTEST IPC MSG: %d %lx %lx %p",
+ rmsg->type,
+ rmsg->data[0],
+ rmsg->data[1],
+ rmsg->extra_data);
+ }
+
+ msgQ = MBOX::msgq_unregister(MBOX::HB_TEST_MSGQ);
+ msg_q_destroy(msgQ);
+ msg_free(rmsg);
+ msg_free(tmsg);
+ }
};
#endif
OpenPOWER on IntegriCloud