]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
test/ObjectMap: add test for raw_key_is_prefixed
authorPiotr Dałek <piotr.dalek@ts.fujitsu.com>
Fri, 16 Oct 2015 07:07:47 +0000 (09:07 +0200)
committerSage Weil <sage@redhat.com>
Mon, 19 Oct 2015 16:57:31 +0000 (12:57 -0400)
Add a raw_key_is_prefixed() method to KeyValueDBMemory and a basic
test for raw_key_is_prefixed().

Signed-off-by: Piotr Dałek <piotr.dalek@ts.fujitsu.com>
src/test/ObjectMap/KeyValueDBMemory.cc
src/test/ObjectMap/test_keyvaluedb_iterators.cc

index 8883b95ee317de81e01d5d1a48ae859da80208ac..672037ce4cbf4db596081308ca8b15bb47f13a33 100644 (file)
@@ -139,6 +139,15 @@ public:
     else
       return make_pair("", "");
   }
+  
+  bool raw_key_is_prefixed(const string &prefix) {
+    string key = (*it).first.first;
+    if ((key.size() > prefix.length()) && (key[prefix.length()] == '\0')) {
+      return memcmp(key.c_str(), prefix.c_str(), prefix.length()) == 0;
+    } else {
+      return false;
+    }
+  }
 
   bufferlist value() {
     if (valid())
index dd4c8cd7a24ccc928aafd05f2b704d238302d88f..e3ab7daa88cdc35d48fe08a2ad35f2b949c84cb4 100644 (file)
@@ -100,6 +100,21 @@ public:
              << __func__
              << " iterator not valid";
     }
+    
+    if (!it->raw_key_is_prefixed(expected_prefix)) {
+      return ::testing::AssertionFailure()
+             << __func__
+             << " expected raw_key_is_prefixed() == TRUE"
+             << " got FALSE";
+    }
+    
+    if (it->raw_key_is_prefixed("??__SomeUnexpectedValue__??")) {
+      return ::testing::AssertionFailure()
+             << __func__
+             << " expected raw_key_is_prefixed() == FALSE"
+             << " got TRUE";
+    }
     pair<string,string> key = it->raw_key();
 
     if (expected_prefix != key.first) {