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" << " list [prefix]\n"
<< " exists <prefix> [key]\n" << " exists <prefix> [key]\n"
<< " get <prefix> <key>\n" << " get <prefix> <key>\n"
<< " verify <store path>\n" << " crc <prefix> <key>\n"
<< " get-size\n" << " get-size\n"
<< std::endl; << std::endl;
} }
@ -183,8 +183,23 @@ int main(int argc, const char *argv[])
bl.hexdump(os); bl.hexdump(os);
std::cout << os.str() << std::endl; std::cout << os.str() << std::endl;
} else if (cmd == "verify") { } else if (cmd == "crc") {
assert(0); 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") { } else if (cmd == "get-size") {
std::cout << "estimated store size: " << st.get_size() << std::endl; std::cout << "estimated store size: " << st.get_size() << std::endl;
} else { } else {