From 8874249a9bed28c3e317ae6aad0a343c55e4c781 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Piotr=20Da=C5=82ek?= Date: Fri, 16 Oct 2015 09:07:47 +0200 Subject: [PATCH] test/ObjectMap: add test for raw_key_is_prefixed MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Add a raw_key_is_prefixed() method to KeyValueDBMemory and a basic test for raw_key_is_prefixed(). Signed-off-by: Piotr Dałek --- src/test/ObjectMap/KeyValueDBMemory.cc | 9 +++++++++ src/test/ObjectMap/test_keyvaluedb_iterators.cc | 15 +++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/test/ObjectMap/KeyValueDBMemory.cc b/src/test/ObjectMap/KeyValueDBMemory.cc index 8883b95ee317..672037ce4cbf 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 dd4c8cd7a24c..e3ab7daa88cd 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) { -- 2.47.3