6 #include "./test_key.h"
8 const char *db_dir = "/var/tmp/mabain_test";
10 using namespace mabain;
12 int main(int argc, char *argv[])
15 int options = CONSTS::ReaderOptions();
16 int duration = 0; // in seconds
18 int key_type = MABAIN_TEST_KEY_TYPE_INT;
19 for(int i = 1; i < argc; i++) {
20 if(strcmp(argv[i], "-w") == 0) {
21 options |= CONSTS::WriterOptions() | CONSTS::ASYNC_WRITER_MODE;
22 } else if(strcmp(argv[i], "-d") == 0) {
23 if(++i >= argc) abort();
25 } else if(strcmp(argv[i], "-n") == 0) {
26 if(++i >= argc) abort();
28 } else if(strcmp(argv[i], "-n0") == 0) {
29 if(++i >= argc) abort();
31 } else if(strcmp(argv[i], "-t") == 0) {
32 if(++i >= argc) abort();
33 duration = atoi(argv[i]);
34 } else if(strcmp(argv[i], "-k") == 0) {
35 if(++i >= argc) abort();
36 if(strcmp(argv[i], "int") == 0) {
37 key_type = MABAIN_TEST_KEY_TYPE_INT;
38 } else if(strcmp(argv[i], "sha1") == 0) {
39 key_type = MABAIN_TEST_KEY_TYPE_SHA_128;
41 key_type = MABAIN_TEST_KEY_TYPE_SHA_256;
44 std::cout << "unknown argument " << argv[i] << "\n";
48 DB::SetLogFile(std::string(db_dir) + "/mabain.log");
49 DB *db = new DB(db_dir, options);
50 TestKey tkey(key_type);
51 assert(db->is_open());
53 for(int i = 0; i < num; i++) {
54 std::string kv = tkey.get_key(n0 + i);
55 int rval = db->Add(kv, kv);
56 if(rval != MBError::SUCCESS) {
57 std::cout << "failed to add " << kv << " :" << MBError::get_error_str(rval) << std::endl;
62 uint32_t tm_stop = time(NULL) + duration;
63 int tm_diff = tm_stop - time(NULL);
66 tm_diff = tm_stop - time(NULL);
68 std::cout << "async writer exited\n";