Unverified Commit b497731e authored by Xinye Tao's avatar Xinye Tao Committed by GitHub

Fix fallback test (#98)

* fix titan_db_test typo
Signed-off-by: 's avatartabokie <xy.tao@outlook.com>

* test purging blob file in fallback mode
Signed-off-by: 's avatartabokie <xy.tao@outlook.com>

* fix test
Signed-off-by: 's avatartabokie <xy.tao@outlook.com>

* simplify
Signed-off-by: 's avatartabokie <xy.tao@outlook.com>
parent 0a3f87a2
......@@ -880,10 +880,12 @@ TEST_F(TitanDBTest, SetOptions) {
TEST_F(TitanDBTest, BlobRunModeBasic) {
options_.disable_background_gc = true;
options_.disable_auto_compactions = true;
Open();
const uint64_t kNumEntries = 1000;
const uint64_t kNumEntries = 100;
const uint64_t kMaxKeys = 100000;
uint64_t begin;
std::unordered_map<std::string, std::string> opts;
std::map<std::string, std::string> data;
std::vector<KeyVersion> version;
......@@ -891,11 +893,12 @@ TEST_F(TitanDBTest, BlobRunModeBasic) {
std::string end_key;
uint64_t num_blob_files;
for (uint64_t i = 1; i <= kNumEntries; i++) {
begin = 1;
for (uint64_t i = begin; i < begin + kNumEntries; i++) {
Put(i, &data);
}
begin_key = GenKey(1);
end_key = GenKey(kNumEntries);
begin_key = GenKey(begin);
end_key = GenKey(begin + kNumEntries - 1);
ASSERT_EQ(kNumEntries, data.size());
VerifyDB(data);
Flush();
......@@ -914,11 +917,12 @@ TEST_F(TitanDBTest, BlobRunModeBasic) {
opts["blob_run_mode"] = "kReadOnly";
db_->SetOptions(opts);
for (uint64_t i = kNumEntries + 1; i <= kNumEntries * 2; i++) {
begin = kNumEntries + 1;
for (uint64_t i = begin; i < begin + kNumEntries; i++) {
Put(i, &data);
}
begin_key = GenKey(kNumEntries + 1);
end_key = GenKey(kNumEntries * 2);
begin_key = GenKey(begin);
end_key = GenKey(begin + kNumEntries - 1);
ASSERT_EQ(kNumEntries * 2, data.size());
VerifyDB(data);
Flush();
......@@ -931,13 +935,14 @@ TEST_F(TitanDBTest, BlobRunModeBasic) {
}
version.clear();
opts["blob_run_mode"] = "fallback";
opts["blob_run_mode"] = "kFallback";
db_->SetOptions(opts);
for (uint64_t i = kNumEntries * 2 + 1; i <= kNumEntries * 3; i++) {
begin = kNumEntries * 2 + 1;
for (uint64_t i = begin; i < begin + kNumEntries; i++) {
Put(i, &data);
}
begin_key = GenKey(kNumEntries * 2 + 1);
end_key = GenKey(kNumEntries * 3);
begin_key = GenKey(begin);
end_key = GenKey(begin + kNumEntries - 1);
ASSERT_EQ(kNumEntries * 3, data.size());
VerifyDB(data);
Flush();
......@@ -949,6 +954,25 @@ TEST_F(TitanDBTest, BlobRunModeBasic) {
ASSERT_EQ(v.type, static_cast<int>(ValueType::kTypeValue));
}
version.clear();
// make sure new sstable interleaves with existing sstables.
Put(0, &data);
Put(kNumEntries * 3 + 1, &data);
Flush();
CompactAll();
VerifyDB(data);
uint32_t default_cf_id = db_->DefaultColumnFamily()->GetID();
ASSERT_OK(db_impl_->TEST_StartGC(default_cf_id));
ASSERT_OK(db_impl_->TEST_PurgeObsoleteFiles());
blob = GetBlobStorage();
ASSERT_EQ(0, blob.lock()->NumBlobFiles());
begin_key = GenKey(0);
end_key = GenKey(kNumEntries * 3 + 1);
GetAllKeyVersions(db_, begin_key, end_key, kMaxKeys, &version);
for (auto v : version) {
ASSERT_EQ(v.type, static_cast<int>(ValueType::kTypeValue));
}
version.clear();
}
TEST_F(TitanDBTest, FallbackModeEncounterMissingBlobFile) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment