From: Piotr Dałek Date: Fri, 16 Oct 2015 07:07:47 +0000 (+0200) Subject: test/ObjectMap: add test for raw_key_is_prefixed X-Git-Tag: v10.0.1~116^2~20 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=8874249a9bed28c3e317ae6aad0a343c55e4c781;p=ceph.git test/ObjectMap: add test for raw_key_is_prefixed Add a raw_key_is_prefixed() method to KeyValueDBMemory and a basic test for raw_key_is_prefixed(). Signed-off-by: Piotr Dałek --- diff --git a/src/test/ObjectMap/KeyValueDBMemory.cc b/src/test/ObjectMap/KeyValueDBMemory.cc index 8883b95ee31..672037ce4cb 100644 --- a/src/test/ObjectMap/KeyValueDBMemory.cc +++ b/src/test/ObjectMap/KeyValueDBMemory.cc @@ -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()) diff --git a/src/test/ObjectMap/test_keyvaluedb_iterators.cc b/src/test/ObjectMap/test_keyvaluedb_iterators.cc index dd4c8cd7a24..e3ab7daa88c 100644 --- a/src/test/ObjectMap/test_keyvaluedb_iterators.cc +++ b/src/test/ObjectMap/test_keyvaluedb_iterators.cc @@ -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 key = it->raw_key(); if (expected_prefix != key.first) {