DBTest.DynamicLevelMaxBytesCompactRange: make sure L0 is not empty before running compact range

Summary: DBTest.DynamicLevelMaxBytesCompactRange needs to make sure L0 is not empty to properly cover the code paths we want to cover. However, current codes have a bug that might leave the condition not held. Improve the test to ensure it.

Test Plan: Run the test in an environment that is used to fail. Also run it many times.

Subscribers: leveldb, dhruba

Differential Revision: https://reviews.facebook.net/D38631
This commit is contained in:
sdong 2015-05-18 11:47:16 -07:00
parent 6fa7085121
commit fb5bdbf987
1 changed files with 6 additions and 3 deletions

View File

@ -11219,9 +11219,12 @@ TEST_F(DBTest, DynamicLevelMaxBytesCompactRange) {
}
Flush();
dbfull()->TEST_WaitForCompact();
ASSERT_OK(
Put(Key(static_cast<int>(rnd.Uniform(kMaxKey))), RandomString(&rnd, 80)));
Flush();
if (NumTableFilesAtLevel(0) == 0) {
// Make sure level 0 is not empty
ASSERT_OK(Put(Key(static_cast<int>(rnd.Uniform(kMaxKey))),
RandomString(&rnd, 80)));
Flush();
}
ASSERT_TRUE(db_->GetIntProperty("rocksdb.base-level", &int_prop));
ASSERT_EQ(3U, int_prop);