|
@ -73,7 +73,7 @@ std::string GenKeyByNum(int num,int len){ |
|
|
std::string GenValueByNum(int num,int len){ |
|
|
std::string GenValueByNum(int num,int len){ |
|
|
std::string value; |
|
|
std::string value; |
|
|
for(int i=0;i<len;i++){ |
|
|
for(int i=0;i<len;i++){ |
|
|
value+=std::to_string(i); |
|
|
|
|
|
|
|
|
value+=std::to_string(num); |
|
|
} |
|
|
} |
|
|
return value; |
|
|
return value; |
|
|
} |
|
|
} |
|
@ -98,6 +98,43 @@ bool CompareKey(const std::vector a, std::vector b) { |
|
|
return true; |
|
|
return true; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
TEST(Test, valuelog_corrupt_in_write_test){ |
|
|
|
|
|
DB *db; |
|
|
|
|
|
WriteOptions writeOptions; |
|
|
|
|
|
ReadOptions readOptions; |
|
|
|
|
|
Options dboptions; |
|
|
|
|
|
std::vector<std::string> values; |
|
|
|
|
|
dboptions.use_valuelog_length=100; |
|
|
|
|
|
writeOptions.sync=true; |
|
|
|
|
|
if(OpenDB(&db,dboptions).ok() == false) { |
|
|
|
|
|
std::cerr << "open db failed" << std::endl; |
|
|
|
|
|
abort(); |
|
|
|
|
|
} |
|
|
|
|
|
for(int i=0;i<5;i++){ |
|
|
|
|
|
std::string key=GenKeyByNum(i,5); |
|
|
|
|
|
std::string value=GenValueByNum(i,5000); |
|
|
|
|
|
values.push_back(value); |
|
|
|
|
|
if(i==4)writeOptions.crash_test=true; |
|
|
|
|
|
else writeOptions.crash_test=false; |
|
|
|
|
|
Status s=db->Put(writeOptions,key,value); |
|
|
|
|
|
if(i<4)assert(s.ok()); |
|
|
|
|
|
else assert(!s.ok()); |
|
|
|
|
|
} |
|
|
|
|
|
delete db; |
|
|
|
|
|
if(OpenDB(&db,dboptions,false).ok() == false) { |
|
|
|
|
|
std::cerr << "open db failed" << std::endl; |
|
|
|
|
|
abort(); |
|
|
|
|
|
} |
|
|
|
|
|
for(int i=0;i<5;i++){ |
|
|
|
|
|
std::string key=GenKeyByNum(i,5); |
|
|
|
|
|
std::string value; |
|
|
|
|
|
Status s=db->Get(readOptions,key,&value); |
|
|
|
|
|
if(i<4)assert(s.ok()); |
|
|
|
|
|
else assert(s.IsNotFound()); |
|
|
|
|
|
} |
|
|
|
|
|
delete db; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
TEST(Test, valuelog_iterator_test) { |
|
|
TEST(Test, valuelog_iterator_test) { |
|
|
DB *db; |
|
|
DB *db; |
|
|
WriteOptions writeOptions; |
|
|
WriteOptions writeOptions; |
|
|