From bd7a49d4486d59267b59854b30cafc61a2ef4697 Mon Sep 17 00:00:00 2001 From: Yueh-Hsuan Chiang Date: Wed, 2 Dec 2015 14:06:33 -0800 Subject: [PATCH] Make DBCompactionTestWithParam::CompactionTrigger more deterministic Summary: Make DBCompactionTestWithParam::CompactionTrigger more deterministic Test Plan: ./db_compaction_test Reviewers: anthony, IslamAbdelRahman, rven, kradhakrishnan, sdong Reviewed By: sdong Subscribers: dhruba, leveldb Differential Revision: https://reviews.facebook.net/D51507 --- db/db_compaction_test.cc | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/db/db_compaction_test.cc b/db/db_compaction_test.cc index 631db2a91..2821ca326 100644 --- a/db/db_compaction_test.cc +++ b/db/db_compaction_test.cc @@ -461,16 +461,17 @@ TEST_F(DBCompactionTest, DisableStatsUpdateReopen) { TEST_P(DBCompactionTestWithParam, CompactionTrigger) { - int kNumKeysPerFile = 100; + const int kNumKeysPerFile = 100; Options options; - options.write_buffer_size = 200 << 10; + options.write_buffer_size = 110 << 10; // 110KB options.arena_block_size = 4 << 10; options.num_levels = 3; options.level0_file_num_compaction_trigger = 3; options.max_subcompactions = max_subcompactions_; options.memtable_factory.reset(new SpecialSkipListFactory(kNumKeysPerFile)); options = CurrentOptions(options); + options.memtable_factory.reset(new SpecialSkipListFactory(kNumKeysPerFile)); CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); @@ -483,6 +484,7 @@ TEST_P(DBCompactionTestWithParam, CompactionTrigger) { values.push_back(RandomString(&rnd, 990)); ASSERT_OK(Put(1, Key(i), values[i])); } + // put extra key to trigger flush ASSERT_OK(Put(1, "", "")); dbfull()->TEST_WaitForFlushMemTable(handles_[1]); ASSERT_EQ(NumTableFilesAtLevel(0, 1), num + 1); @@ -490,10 +492,12 @@ TEST_P(DBCompactionTestWithParam, CompactionTrigger) { // generate one more file in level-0, and should trigger level-0 compaction std::vector values; - for (int i = 0; i < 100; i++) { + for (int i = 0; i < kNumKeysPerFile; i++) { values.push_back(RandomString(&rnd, 990)); ASSERT_OK(Put(1, Key(i), values[i])); } + // put extra key to trigger flush + ASSERT_OK(Put(1, "", "")); dbfull()->TEST_WaitForCompact(); ASSERT_EQ(NumTableFilesAtLevel(0, 1), 0);