summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorQiuwen Lu <[email protected]>2016-09-02 21:23:56 +0800
committerQiuwen Lu <[email protected]>2016-09-02 21:23:56 +0800
commitf9b9c844d16a051a5197f22d7a345454252ce922 (patch)
tree32afb9d30edd0fada91b8417f24d82a4603973b0 /test
parentafc6a119a40f4aad838447a4aaa49e6cdb2ece40 (diff)
完成虚拟节点管理器的创建、生产者注册、消费者注册、Attach功能。
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt8
-rw-r--r--test/TestVMan.cc59
2 files changed, 65 insertions, 2 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index fdeef9b..c6f8cd3 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -22,6 +22,10 @@ set(TEST_LINK_LIBRARIES ${DPDK_LIBRARY} gtest)
# add_executable(TestVNode TestVNode.cc Unittest.cc)
# target_link_libraries(TestVNode ${TEST_LINK_LIBRARIES} core)
-# TestCase 3
+# TestCase 4
add_executable(TestMask TestMask.cc Unittest.cc)
-target_link_libraries(TestMask ${TEST_LINK_LIBRARIES} core) \ No newline at end of file
+target_link_libraries(TestMask ${TEST_LINK_LIBRARIES} core)
+
+# TestCase 5
+add_executable(TestVMan TestVMan.cc Unittest.cc)
+target_link_libraries(TestVMan ${TEST_LINK_LIBRARIES} core) \ No newline at end of file
diff --git a/test/TestVMan.cc b/test/TestVMan.cc
new file mode 100644
index 0000000..ca8ed11
--- /dev/null
+++ b/test/TestVMan.cc
@@ -0,0 +1,59 @@
+
+/* \brief ����ڵ��������Ԫ���Դ���
+ * \author Qiuwen Lu<[email protected]>
+ * \date 2016-09-02
+ */
+
+#include <gtest/gtest.h>
+#include <mr_ctx.h>
+#include <mr_common.h>
+#include <mr_vman.h>
+
+extern struct mr_module module_desc_vnodeman;
+
+class TestCaseVNodeMan : public ::testing::Test
+{
+protected:
+
+ TestCaseVNodeMan()
+ {
+ }
+
+ ~TestCaseVNodeMan()
+ {
+ }
+
+ static void SetUpTestCase()
+ {
+ mr_global_cfg_init();
+ mr_global_ctx_init();
+
+ struct mr_global_ctx * g_ctx = mr_global_ctx_get();
+ struct mr_config * g_cfg = mr_global_config_get();
+
+ int ret = module_desc_vnodeman.preinit(
+ &module_desc_vnodeman, g_cfg, g_ctx);
+ ASSERT_EQ(ret, 0);
+ }
+};
+
+TEST_F(TestCaseVNodeMan, TestRegisterAndAttach)
+{
+ int ret = 0;
+ ret = mr_vnodeman_create("TN", 1024, 128, 0);
+ ASSERT_EQ(ret, 0);
+ ret = mr_vnodeman_register_consumer("TN", "TNS",4);
+ ASSERT_EQ(ret, 0);
+ ret = mr_vnodeman_register_producer("TN", "TNP", 4);
+ ASSERT_EQ(ret, 0);
+
+ struct vnodeman_attach_desc * cons_desc[4];
+ struct vnodeman_attach_desc * prod_desc[4];
+ for (int i = 0; i < 4; i++)
+ {
+ cons_desc[i] = mr_vnodeman_consumer_attach("TN", "TNS");
+ ASSERT_TRUE(cons_desc[i] != NULL);
+ EXPECT_EQ(cons_desc[i]->desc_type, VNODEMAN_ATTACH_CONSUMER);
+ EXPECT_EQ(cons_desc[i]->queue_id, i);
+ }
+} \ No newline at end of file