test: test_store_tool: add 'crc <prefix> <key>' command

Returns the CRC of contents for a given key with a given prefix.

Signed-off-by: Joao Eduardo Luis <joao.luis@inktank.com>
This commit is contained in:
Joao Eduardo Luis 2013-10-01 14:28:58 +01:00
parent d6ec7891eb
commit 18fcd91319

View 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 {