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>
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())
<< __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) {