]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test/test_async_networkstack: add dpdk backend test
authorHaomai Wang <haomai@xsky.com>
Fri, 5 Aug 2016 07:40:22 +0000 (15:40 +0800)
committerHaomai Wang <haomai@xsky.com>
Wed, 9 Nov 2016 03:39:20 +0000 (11:39 +0800)
Signed-off-by: Haomai Wang <haomai@xsky.com>
src/test/msgr/CMakeLists.txt
src/test/msgr/test_async_networkstack.cc

index c0c52945f6d83f101bb3b31feca5a63f546a351a..6a1b15fdb0171c971d069449f3049dd2159e3e37 100644 (file)
@@ -20,7 +20,7 @@ add_executable(ceph_test_async_networkstack
   )
 set_target_properties(ceph_test_async_networkstack PROPERTIES COMPILE_FLAGS
   ${UNITTEST_CXX_FLAGS})
-target_link_libraries(ceph_test_async_networkstack global ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
+target_link_libraries(ceph_test_async_networkstack global ${CRYPTO_LIBS} ${BLKID_LIBRARIES} ${CMAKE_DL_LIBS} ${UNITTEST_LIBS})
 
 #ceph_perf_msgr_server
 add_executable(ceph_perf_msgr_server perf_msgr_server.cc)
index 7fb0e14e6b95518eaaa6e30106f656f6ed09aae5..75a4518c2b9b6ee71181dfaa2b32e567bf8d5697 100644 (file)
@@ -41,8 +41,21 @@ class NetworkWorkerTest : public ::testing::TestWithParam<const char*> {
   NetworkWorkerTest() {}
   virtual void SetUp() {
     cerr << __func__ << " start set up " << GetParam() << std::endl;
-    addr = "127.0.0.1:15000";
-    port_addr = "127.0.0.1:15001";
+    if (strncmp(GetParam(), "dpdk", 4)) {
+      g_ceph_context->_conf->set_val("ms_async_transport_type", "posix", false, false);
+      addr = "127.0.0.1:15000";
+      port_addr = "127.0.0.1:15001";
+    } else {
+      g_ceph_context->_conf->set_val("ms_async_transport_type", "dpdk", false, false);
+      g_ceph_context->_conf->set_val("ms_dpdk_debug_allow_loopback", "true", false, false);
+      g_ceph_context->_conf->set_val("ms_async_op_threads", "2", false, false);
+      g_ceph_context->_conf->set_val("ms_dpdk_coremask", "0x7", false, false);
+      g_ceph_context->_conf->set_val("ms_dpdk_host_ipv4_addr", "172.16.218.3", false, false);
+      g_ceph_context->_conf->set_val("ms_dpdk_gateway_ipv4_addr", "172.16.218.2", false, false);
+      g_ceph_context->_conf->set_val("ms_dpdk_netmask_ipv4_addr", "255.255.255.0", false, false);
+      addr = "172.16.218.3:15000";
+      port_addr = "172.16.218.3:15001";
+    }
     stack = NetworkStack::create(g_ceph_context, GetParam());
     stack->start();
   }
@@ -198,6 +211,7 @@ TEST_P(NetworkWorkerTest, SimpleTest) {
         while (r == -EAGAIN) {
           ASSERT_TRUE(cb.poll(500));
           r = srv_socket.read(buf, sizeof(buf));
+          cb.reset();
         }
         ASSERT_EQ(len, r);
         ASSERT_EQ(0, memcmp(buf, message, len));
@@ -1011,7 +1025,8 @@ class StressFactory {
 };
 
 TEST_P(NetworkWorkerTest, StressTest) {
-  StressFactory factory(stack, get_addr(), 16, 16, 10000, 1024, false);
+  StressFactory factory(stack, get_addr(), 16, 16, 10000, 1024,
+                        strncmp(GetParam(), "dpdk", 4) == 0);
   StressFactory *f = &factory;
   exec_events([f](Worker *worker) mutable {
     f->start(worker);
@@ -1024,6 +1039,9 @@ INSTANTIATE_TEST_CASE_P(
   NetworkStack,
   NetworkWorkerTest,
   ::testing::Values(
+#ifdef HAVE_DPDK
+    "dpdk",
+#endif
     "posix"
   )
 );