]> git-server-git.apps.pok.os.sepia.ceph.com Git - ceph.git/commitdiff
test: test_store_tool: add 'crc <prefix> <key>' command
authorJoao Eduardo Luis <joao.luis@inktank.com>
Tue, 1 Oct 2013 13:28:58 +0000 (14:28 +0100)
committerJoao Eduardo Luis <joao.luis@inktank.com>
Wed, 2 Oct 2013 00:28:22 +0000 (01:28 +0100)
Returns the CRC of contents for a given key with a given prefix.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
src/test/ObjectMap/test_store_tool/test_store_tool.cc

index f81598ccfb8d2dd8811888383ad14faaada26e45..66d55bee587121063d9fef223dd8fb00a431828d 100644 (file)
@@ -111,7 +111,7 @@ void usage(const char *pname)
     << "  list [prefix]\n"
     << "  exists <prefix> [key]\n"
     << "  get <prefix> <key>\n"
-    << "  verify <store path>\n"
+    << "  crc <prefix> <key>\n"
     << "  get-size\n"
     << std::endl;
 }
@@ -183,8 +183,23 @@ int main(int argc, const char *argv[])
     bl.hexdump(os);
     std::cout << os.str() << std::endl;
 
-  } else if (cmd == "verify") {
-    assert(0);
+  } else if (cmd == "crc") {
+    if (argc < 5) {
+      usage(argv[0]);
+      return 1;
+    }
+    string prefix(argv[3]);
+    string key(argv[4]);
+
+    bool exists = false;
+    bufferlist bl = st.get(prefix, key, exists);
+    std::cout << "(" << prefix << ", " << key << ") ";
+    if (!exists) {
+      std::cout << " does not exist" << std::endl;
+      return 1;
+    }
+    std::cout << " crc " << bl.crc32c(0) << std::endl;
+
   } else if (cmd == "get-size") {
     std::cout << "estimated store size: " << st.get_size() << std::endl;
   } else {