]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: add object cache message unite test
authorshangdehao1 <dehao.shang@intel.com>
Sun, 13 Jan 2019 22:34:37 +0000 (06:34 +0800)
committerYuan Zhou <yuan.zhou@intel.com>
Thu, 21 Mar 2019 16:16:26 +0000 (00:16 +0800)
Signed-off-by: Dehao Shang <dehao.shang@intel.com>
src/test/immutable_object_cache/CMakeLists.txt
src/test/immutable_object_cache/test_message.cc [new file with mode: 0644]
src/tools/immutable_object_cache/CMakeLists.txt

index eec2936774e976eed0ab6a7a2284b351614632fc..aade49afba88bfb5862e1518e27ab8fe8917d472 100644 (file)
@@ -6,6 +6,7 @@ add_executable(unittest_ceph_immutable_obj_cache
   test_DomainSocket.cc
   test_multi_session.cc
   test_object_store.cc
+  test_message.cc
   )
 add_ceph_unittest(unittest_ceph_immutable_obj_cache)
 
diff --git a/src/test/immutable_object_cache/test_message.cc b/src/test/immutable_object_cache/test_message.cc
new file mode 100644 (file)
index 0000000..4d00007
--- /dev/null
@@ -0,0 +1,63 @@
+#include "gtest/gtest.h"
+#include "tools/immutable_object_cache/Types.h"
+
+using namespace ceph::immutable_obj_cache;
+
+TEST(test_for_message, test_1) 
+{
+  std::string pool_name("this is a pool name");
+  std::string image_name("this is an image name");
+  std::string oid_name("this is a oid name");
+
+  ObjectCacheMsgHeader header;
+  header.seq = 1;
+  header.type = 2;
+  header.version =3;
+  header.mid_len =4;
+  header.data_len = 5;
+  header.reserved = 6;
+
+  ObjectCacheRequest req;
+
+  ASSERT_EQ(req.m_head_buffer.length(), 0);
+  ASSERT_EQ(req.m_mid_buffer.length(), 0);
+  ASSERT_EQ(req.m_data_buffer.length(), 0);
+
+  req.m_head = header;
+
+  req.m_mid.m_image_size = 111111;
+  req.m_mid.m_read_offset = 222222;
+  req.m_mid.m_read_len = 333333;
+  req.m_mid.m_pool_name = pool_name;
+  req.m_mid.m_image_name = image_name;
+  req.m_mid.m_oid = oid_name;
+
+  req.encode();
+
+  ASSERT_EQ(req.m_head_buffer.length(), sizeof(req.m_head));
+  ASSERT_EQ(req.m_data_buffer.length(), 0);
+
+
+  ObjectCacheRequest* req_decode;
+
+  auto x = req.get_head_buffer();
+  auto y = req.get_mid_buffer();
+  auto z = req.get_data_buffer();
+
+  req_decode = decode_object_cache_request(x, y, z);
+
+  ASSERT_EQ(req_decode->m_head.seq, header.seq);
+  ASSERT_EQ(req_decode->m_head.type, header.type);
+  ASSERT_EQ(req_decode->m_head.version, header.version);
+  ASSERT_EQ(req_decode->m_head.mid_len, req.m_mid_buffer.length());
+  ASSERT_EQ(req_decode->m_head.data_len, req.m_data_buffer.length());
+  ASSERT_EQ(req_decode->m_head.reserved, header.reserved);
+
+
+  ASSERT_EQ(req_decode->m_mid.m_image_size, 111111);
+  ASSERT_EQ(req_decode->m_mid.m_read_offset, 222222);
+  ASSERT_EQ(req_decode->m_mid.m_read_len, 333333);
+  ASSERT_EQ(req_decode->m_mid.m_pool_name, pool_name);
+  ASSERT_EQ(req_decode->m_mid.m_image_name, image_name);
+  ASSERT_EQ(req_decode->m_mid.m_oid, oid_name);
+}
index 4358b90216a9bcc433b7afaaab5760fa984ae078..fa713f639a3eca98dc682df3609f7199043349a5 100644 (file)
@@ -7,6 +7,7 @@ set(ceph_immutable_object_cache_files
   CacheSession.cc
   SimplePolicy.cc
   Utils.cc
+  Types.cc
   )
 add_library(ceph_immutable_object_cache_lib STATIC ${ceph_immutable_object_cache_files})
 
@@ -18,6 +19,7 @@ add_executable(ceph-immutable-object-cache
   CacheSession.cc
   SimplePolicy.cc
   Utils.cc
+  Types.cc
   main.cc)
 target_link_libraries(ceph-immutable-object-cache
   librados-cxx