浏览代码

模拟崩溃测试综合版

pull/2/head
augurier 8 个月前
父节点
当前提交
ea3d7c31f5
共有 1 个文件被更改,包括 11 次插入7 次删除
  1. +11
    -7
      test/recover_test.cc

+ 11
- 7
test/recover_test.cc 查看文件

@ -36,7 +36,7 @@ TEST(TestNormalRecover, Recover) {
findKeysByAgeIndex(db, true);
}
TEST(TestParalPutRecover, Recover) {
TEST(TestParalRecover, Recover) {
//第一次运行
// fielddb::DestroyDB("testdb3.2",Options());
// FieldDB *db = new FieldDB();
@ -47,24 +47,28 @@ TEST(TestParalPutRecover, Recover) {
// }
// db->CreateIndexOnField("address");
// db->CreateIndexOnField("age");
// shanghaiKeys.clear();
// age20Keys.clear();
// int thread_num_ = 2;
// int thread_num_ = 4;
// std::vector<std::thread> threads(thread_num_);
// threads[0] = std::thread([db](){
// InsertFieldData(db);
// });
// threads[1] = std::thread([db](){
// WriteFieldData(db);
// });
// threads[2] = std::thread([db](){
// DeleteFieldData(db);
// });
// threads[3] = std::thread([db](){
// InsertOneField(db);
// delete db;
// });
// for (auto& t : threads) {
// for (auto& t : threads) {
// if (t.joinable()) {
// t.join();
// }
// }
//线程1导致了线程0错误,测试会终止(模拟数据库崩溃)
//这会导致线程0写入的各种奇怪的时间点崩溃
//线程3导致了其他线程错误,测试会终止(模拟数据库崩溃)
//这会导致线程在各种奇怪的时间点崩溃
//第二次运行注释掉上面的代码,运行下面的代码测试恢复

正在加载...
取消
保存