diff --git a/db/db_test.cc b/db/db_test.cc index 7f46d0993..9ee935d54 100644 --- a/db/db_test.cc +++ b/db/db_test.cc @@ -490,7 +490,7 @@ class DBTest { auto options = CurrentOptions(); options.create_if_missing = true; - TryReopen(&options); + TryReopen(options); return true; } else { return false; @@ -514,7 +514,7 @@ class DBTest { auto options = CurrentOptions(); options.create_if_missing = true; - TryReopen(&options); + TryReopen(options); return true; } @@ -648,13 +648,8 @@ class DBTest { } void CreateColumnFamilies(const std::vector& cfs, - const ColumnFamilyOptions* options = nullptr) { - ColumnFamilyOptions cf_opts; - if (options != nullptr) { - cf_opts = ColumnFamilyOptions(*options); - } else { - cf_opts = ColumnFamilyOptions(CurrentOptions()); - } + const Options& options) { + ColumnFamilyOptions cf_opts(options); int cfi = handles_.size(); handles_.resize(cfi + cfs.size()); for (auto cf : cfs) { @@ -663,11 +658,11 @@ class DBTest { } void CreateAndReopenWithCF(const std::vector& cfs, - const Options* options = nullptr) { + const Options& options) { CreateColumnFamilies(cfs, options); std::vector cfs_plus_default = cfs; cfs_plus_default.insert(cfs_plus_default.begin(), kDefaultColumnFamilyName); - ReopenWithColumnFamilies(cfs_plus_default, options); + ReopenWithColumnFamilies(cfs_plus_default, &options); } void ReopenWithColumnFamilies(const std::vector& cfs, @@ -702,7 +697,7 @@ class DBTest { } void Reopen(const Options& options) { - ASSERT_OK(TryReopen(&options)); + ASSERT_OK(TryReopen(options)); } void Close() { @@ -717,7 +712,7 @@ class DBTest { void DestroyAndReopen(const Options& options) { //Destroy using last options Destroy(last_options_); - ASSERT_OK(TryReopen(&options)); + ASSERT_OK(TryReopen(options)); } void Destroy(const Options& options) { @@ -729,8 +724,9 @@ class DBTest { return DB::OpenForReadOnly(*options, dbname_, &db_); } - Status TryReopen(const Options* options = nullptr) { + Status TryReopen(const Options& options) { Close(); + /* Options opts; if (options != nullptr) { opts = *options; @@ -738,8 +734,9 @@ class DBTest { opts = CurrentOptions(); opts.create_if_missing = true; } - last_options_ = opts; - return DB::Open(opts, dbname_, &db_); + */ + last_options_ = options; + return DB::Open(options, dbname_, &db_); } Status Flush(int cf = 0) { @@ -1224,7 +1221,7 @@ TEST(DBTest, Empty) { options.env = env_; options.write_buffer_size = 100000; // Small write buffer options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); std::string num; ASSERT_TRUE(dbfull()->GetProperty( @@ -1412,7 +1409,7 @@ TEST(DBTest, IndexAndFilterBlocksOfNewTableAddedToCache) { table_options.cache_index_and_filter_blocks = true; table_options.filter_policy.reset(NewBloomFilterPolicy(20)); options.table_factory.reset(new BlockBasedTableFactory(table_options)); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(Put(1, "key", "val")); // Create a new table. @@ -1493,7 +1490,7 @@ TEST(DBTest, GetPropertiesOfAllTablesTest) { TEST(DBTest, LevelLimitReopen) { Options options = CurrentOptions(); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const std::string value(1024 * 1024, ' '); int i = 0; @@ -1545,7 +1542,7 @@ TEST(DBTest, Preallocation) { TEST(DBTest, PutDeleteGet) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_EQ("v1", Get(1, "foo")); ASSERT_OK(Put(1, "foo", "v2")); @@ -1562,7 +1559,7 @@ TEST(DBTest, GetFromImmutableLayer) { options.env = env_; options.write_buffer_size = 100000; // Small write buffer options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_EQ("v1", Get(1, "foo")); @@ -1580,7 +1577,7 @@ TEST(DBTest, GetFromImmutableLayer) { TEST(DBTest, GetFromVersions) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_OK(Flush(1)); ASSERT_EQ("v1", Get(1, "foo")); @@ -1590,7 +1587,7 @@ TEST(DBTest, GetFromVersions) { TEST(DBTest, GetSnapshot) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); // Try with both a short key and a long key for (int i = 0; i < 2; i++) { std::string key = (i == 0) ? std::string("foo") : std::string(200, 'x'); @@ -1610,7 +1607,7 @@ TEST(DBTest, GetSnapshot) { TEST(DBTest, GetLevel0Ordering) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); // Check that we process level-0 files in correct order. The code // below generates two level-0 files where the earlier one comes // before the later one in the level-0 file list since the earlier @@ -1626,7 +1623,7 @@ TEST(DBTest, GetLevel0Ordering) { TEST(DBTest, GetOrderedByLevels) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); Compact(1, "a", "z"); ASSERT_EQ("v1", Get(1, "foo")); @@ -1639,7 +1636,7 @@ TEST(DBTest, GetOrderedByLevels) { TEST(DBTest, GetPicksCorrectFile) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); // Arrange to have multiple files in a non-level-0 level. ASSERT_OK(Put(1, "a", "va")); Compact(1, "a", "b"); @@ -1658,7 +1655,7 @@ TEST(DBTest, GetEncountersEmptyLevel) { Options options = CurrentOptions(); options.max_background_flushes = 0; options.disableDataSync = true; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Arrange for the following to happen: // * sstable A in level 0 // * nothing in level 1 @@ -1706,7 +1703,7 @@ TEST(DBTest, KeyMayExist) { options_override.filter_policy.reset(NewBloomFilterPolicy(20)); Options options = CurrentOptions(options_override); options.statistics = rocksdb::CreateDBStatistics(); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_TRUE(!db_->KeyMayExist(ropts, handles_[1], "a", &value)); @@ -1767,7 +1764,7 @@ TEST(DBTest, NonBlockingIteration) { Options options = CurrentOptions(); options.statistics = rocksdb::CreateDBStatistics(); non_blocking_opts.read_tier = kBlockCacheTier; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // write one kv to the database. ASSERT_OK(Put(1, "a", "b")); @@ -1833,7 +1830,7 @@ TEST(DBTest, FilterDeletes) { options_override.filter_policy.reset(NewBloomFilterPolicy(20)); Options options = CurrentOptions(options_override); options.filter_deletes = true; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); WriteBatch batch; batch.Delete(handles_[1], "a"); @@ -1992,7 +1989,7 @@ TEST(DBTest, IterPrevWithNewerSeq2) { TEST(DBTest, IterEmpty) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); Iterator* iter = db_->NewIterator(ReadOptions(), handles_[1]); iter->SeekToFirst(); @@ -2010,7 +2007,7 @@ TEST(DBTest, IterEmpty) { TEST(DBTest, IterSingle) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "a", "va")); Iterator* iter = db_->NewIterator(ReadOptions(), handles_[1]); @@ -2051,7 +2048,7 @@ TEST(DBTest, IterSingle) { TEST(DBTest, IterMulti) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "a", "va")); ASSERT_OK(Put(1, "b", "vb")); ASSERT_OK(Put(1, "c", "vc")); @@ -2144,7 +2141,7 @@ TEST(DBTest, IterReseek) { options.create_if_missing = true; options.statistics = rocksdb::CreateDBStatistics(); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // insert two keys with same userkey and verify that // reseek is not invoked. For each of these test cases, @@ -2223,7 +2220,7 @@ TEST(DBTest, IterReseek) { TEST(DBTest, IterSmallAndLargeMix) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "a", "va")); ASSERT_OK(Put(1, "b", std::string(100000, 'b'))); ASSERT_OK(Put(1, "c", "vc")); @@ -2264,7 +2261,7 @@ TEST(DBTest, IterSmallAndLargeMix) { TEST(DBTest, IterMultiWithDelete) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "ka", "va")); ASSERT_OK(Put(1, "kb", "vb")); ASSERT_OK(Put(1, "kc", "vc")); @@ -2289,7 +2286,7 @@ TEST(DBTest, IterMultiWithDelete) { TEST(DBTest, IterPrevMaxSkip) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); for (int i = 0; i < 2; i++) { ASSERT_OK(Put(1, "key1", "v1")); ASSERT_OK(Put(1, "key2", "v2")); @@ -2319,7 +2316,7 @@ TEST(DBTest, IterPrevMaxSkip) { TEST(DBTest, IterWithSnapshot) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "key1", "val1")); ASSERT_OK(Put(1, "key2", "val2")); ASSERT_OK(Put(1, "key3", "val3")); @@ -2363,7 +2360,7 @@ TEST(DBTest, IterWithSnapshot) { TEST(DBTest, Recover) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_OK(Put(1, "baz", "v5")); @@ -2392,7 +2389,7 @@ TEST(DBTest, RecoverWithTableHandle) { options.disable_auto_compactions = true; options = CurrentOptions(options); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_OK(Put(1, "bar", "v2")); @@ -2506,14 +2503,14 @@ TEST(DBTest, IgnoreRecoveredLog) { env_->DeleteFile(backup_logs + "/" + log); } } - Status s = TryReopen(&options); + Status s = TryReopen(options); ASSERT_TRUE(!s.ok()); } while (ChangeOptions(kSkipHashCuckoo)); } TEST(DBTest, RollLog) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_OK(Put(1, "baz", "v5")); @@ -2530,7 +2527,7 @@ TEST(DBTest, RollLog) { TEST(DBTest, WAL) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); WriteOptions writeOpt = WriteOptions(); writeOpt.disableWAL = true; ASSERT_OK(dbfull()->Put(writeOpt, handles_[1], "foo", "v1")); @@ -2566,7 +2563,7 @@ TEST(DBTest, CheckLock) { do { DB* localdb; Options options = CurrentOptions(); - ASSERT_OK(TryReopen(&options)); + ASSERT_OK(TryReopen(options)); // second open should fail ASSERT_TRUE(!(DB::Open(options, dbname_, &localdb)).ok()); @@ -2580,7 +2577,7 @@ TEST(DBTest, FlushMultipleMemtable) { writeOpt.disableWAL = true; options.max_write_buffer_number = 4; options.min_write_buffer_number_to_merge = 3; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(dbfull()->Put(writeOpt, handles_[1], "foo", "v1")); ASSERT_OK(Flush(1)); ASSERT_OK(dbfull()->Put(writeOpt, handles_[1], "bar", "v1")); @@ -2599,7 +2596,7 @@ TEST(DBTest, NumImmutableMemTable) { options.max_write_buffer_number = 4; options.min_write_buffer_number_to_merge = 3; options.write_buffer_size = 1000000; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); std::string big_value(1000000 * 2, 'x'); std::string num; @@ -2724,7 +2721,7 @@ TEST(DBTest, FlushEmptyColumnFamily) { writeOpt.disableWAL = true; options.max_write_buffer_number = 2; options.min_write_buffer_number_to_merge = 1; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Compaction can still go through even if no thread can flush the // mem table. @@ -2862,7 +2859,7 @@ TEST(DBTest, GetProperty) { TEST(DBTest, FLUSH) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); WriteOptions writeOpt = WriteOptions(); writeOpt.disableWAL = true; SetPerfLevel(kEnableTime);; @@ -2907,7 +2904,7 @@ TEST(DBTest, FLUSH) { TEST(DBTest, RecoveryWithEmptyLog) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v1")); ASSERT_OK(Put(1, "foo", "v2")); ReopenWithColumnFamilies({"default", "pikachu"}); @@ -2926,7 +2923,7 @@ TEST(DBTest, RecoverDuringMemtableCompaction) { options.env = env_; options.write_buffer_size = 1000000; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Trigger a long memtable compaction and reopen the database during it ASSERT_OK(Put(1, "foo", "v1")); // Goes to 1st log file @@ -2950,7 +2947,7 @@ TEST(DBTest, FlushSchedule) { options.min_write_buffer_number_to_merge = 1; options.max_write_buffer_number = 2; options.write_buffer_size = 100 * 1000; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); std::vector threads; std::atomic thread_num(0); @@ -2985,7 +2982,7 @@ TEST(DBTest, MinorCompactionsHappen) { Options options; options.write_buffer_size = 10000; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const int N = 500; @@ -3013,7 +3010,7 @@ TEST(DBTest, ManifestRollOver) { Options options; options.max_manifest_file_size = 10 ; // 10 bytes options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); { ASSERT_OK(Put(1, "manifest_key1", std::string(1000, '1'))); ASSERT_OK(Put(1, "manifest_key2", std::string(1000, '2'))); @@ -3058,7 +3055,7 @@ TEST(DBTest, RecoverWithLargeLog) { do { { Options options = CurrentOptions(); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(Put(1, "big1", std::string(200000, '1'))); ASSERT_OK(Put(1, "big2", std::string(200000, '2'))); ASSERT_OK(Put(1, "small3", std::string(10, '3'))); @@ -3085,7 +3082,7 @@ TEST(DBTest, CompactionsGenerateMultipleFiles) { Options options; options.write_buffer_size = 100000000; // Large write buffer options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); @@ -3115,7 +3112,7 @@ TEST(DBTest, CompactionTrigger) { options.max_mem_compaction_level = 0; options.level0_file_num_compaction_trigger = 3; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); @@ -3362,7 +3359,7 @@ TEST(DBTest, UniversalCompactionTrigger) { options.compaction_filter_factory.reset(filter); options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); int key_idx = 0; @@ -3494,7 +3491,7 @@ TEST(DBTest, UniversalCompactionSizeAmplification) { options.compaction_style = kCompactionStyleUniversal; options.write_buffer_size = 100<<10; //100KB options.level0_file_num_compaction_trigger = 3; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Trigger compaction if size amplification exceeds 110% options.compaction_options_universal.max_size_amplification_percent = 110; @@ -3536,7 +3533,7 @@ TEST(DBTest, UniversalCompactionOptions) { options.num_levels = 1; options.compaction_options_universal.compression_size_percent = -1; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); int key_idx = 0; @@ -3691,7 +3688,7 @@ TEST(DBTest, CompressedCache) { default: ASSERT_TRUE(false); } - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // default column family doesn't have block cache Options no_block_cache_opts; no_block_cache_opts.statistics = options.statistics; @@ -3864,7 +3861,7 @@ TEST(DBTest, FailMoreDbPaths) { options.db_paths.emplace_back(dbname_ + "_3", 1000000); options.db_paths.emplace_back(dbname_ + "_4", 1000000); options.db_paths.emplace_back(dbname_ + "_5", 1000000); - ASSERT_TRUE(TryReopen(&options).IsNotSupported()); + ASSERT_TRUE(TryReopen(options).IsNotSupported()); } TEST(DBTest, UniversalCompactionSecondPathRatio) { @@ -4076,7 +4073,7 @@ TEST(DBTest, ConvertCompactionStyle) { options.target_file_size_base = 200<<10; // 200KB options.target_file_size_multiplier = 1; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); for (int i = 0; i <= max_key_level_insert; i++) { // each value is 10K @@ -4281,7 +4278,7 @@ TEST(DBTest, RepeatedWritesToSameKey) { options.env = env_; options.write_buffer_size = 100000; // Small write buffer options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // We must have at most one file per level except for level-0, // which may have up to kL0_StopWritesTrigger files. @@ -4305,7 +4302,7 @@ TEST(DBTest, InPlaceUpdate) { options.env = env_; options.write_buffer_size = 100000; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Update key with values of smaller size int numValues = 10; @@ -4329,7 +4326,7 @@ TEST(DBTest, InPlaceUpdateLargeNewValue) { options.env = env_; options.write_buffer_size = 100000; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Update key with values of larger size int numValues = 10; @@ -4357,7 +4354,7 @@ TEST(DBTest, InPlaceUpdateCallbackSmallerSize) { options.inplace_callback = rocksdb::DBTest::updateInPlaceSmallerSize; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Update key with values of smaller size int numValues = 10; @@ -4386,7 +4383,7 @@ TEST(DBTest, InPlaceUpdateCallbackSmallerVarintSize) { options.inplace_callback = rocksdb::DBTest::updateInPlaceSmallerVarintSize; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Update key with values of smaller varint size int numValues = 265; @@ -4415,7 +4412,7 @@ TEST(DBTest, InPlaceUpdateCallbackLargeNewValue) { options.inplace_callback = rocksdb::DBTest::updateInPlaceLargerSize; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Update key with values of larger size int numValues = 10; @@ -4442,7 +4439,7 @@ TEST(DBTest, InPlaceUpdateCallbackNoAction) { options.inplace_callback = rocksdb::DBTest::updateInPlaceNoAction; options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Callback function requests no actions from db ASSERT_OK(Put(1, "key", DummyString(1, 'a'))); @@ -4458,7 +4455,7 @@ TEST(DBTest, CompactionFilter) { options.max_mem_compaction_level = 0; options.compaction_filter_factory = std::make_shared(); options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Write 100K keys, these are written to a few files in L0. const std::string value(10, 'x'); @@ -4538,7 +4535,7 @@ TEST(DBTest, CompactionFilter) { options.compaction_filter_factory = std::make_shared(); options.create_if_missing = true; DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // write all the keys once again. for (int i = 0; i < 100000; i++) { @@ -4637,7 +4634,7 @@ TEST(DBTest, CompactionFilterWithValueChange) { options.compaction_filter_factory = std::make_shared(); options = CurrentOptions(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Write 100K+1 keys, these are written to a few files // in L0. We do this so that the current snapshot points @@ -5043,7 +5040,7 @@ TEST(DBTest, SparseMerge) { do { Options options = CurrentOptions(); options.compression = kNoCompression; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); FillLevels("A", "Z", 1); @@ -5103,7 +5100,7 @@ TEST(DBTest, ApproximateSizes) { options.create_if_missing = true; options = CurrentOptions(options); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_TRUE(Between(Size("", "xyz", 1), 0, 0)); ReopenWithColumnFamilies({"default", "pikachu"}, &options); @@ -5156,7 +5153,7 @@ TEST(DBTest, ApproximateSizes_MixOfSmallAndLarge) { do { Options options = CurrentOptions(); options.compression = kNoCompression; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); std::string big1 = RandomString(&rnd, 100000); @@ -5193,7 +5190,7 @@ TEST(DBTest, ApproximateSizes_MixOfSmallAndLarge) { TEST(DBTest, IteratorPinsRef) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); Put(1, "foo", "hello"); // Get iterator that will yield the current contents of the DB. @@ -5219,7 +5216,7 @@ TEST(DBTest, IteratorPinsRef) { TEST(DBTest, Snapshot) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); Put(0, "foo", "0v1"); Put(1, "foo", "1v1"); const Snapshot* s1 = db_->GetSnapshot(); @@ -5265,7 +5262,7 @@ TEST(DBTest, HiddenValuesAreRemoved) { do { Options options = CurrentOptions(); options.max_background_flushes = 0; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); FillLevels("a", "z", 1); @@ -5303,7 +5300,7 @@ TEST(DBTest, CompactBetweenSnapshots) { do { Options options = CurrentOptions(); options.disable_auto_compactions = true; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); FillLevels("a", "z", 1); @@ -5358,7 +5355,7 @@ TEST(DBTest, CompactBetweenSnapshots) { TEST(DBTest, DeletionMarkers1) { Options options = CurrentOptions(); options.max_background_flushes = 0; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Put(1, "foo", "v1"); ASSERT_OK(Flush(1)); const int last = CurrentOptions().max_mem_compaction_level; @@ -5395,7 +5392,7 @@ TEST(DBTest, DeletionMarkers1) { TEST(DBTest, DeletionMarkers2) { Options options = CurrentOptions(); options.max_background_flushes = 0; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Put(1, "foo", "v1"); ASSERT_OK(Flush(1)); const int last = CurrentOptions().max_mem_compaction_level; @@ -5426,7 +5423,7 @@ TEST(DBTest, OverlapInLevel0) { do { Options options = CurrentOptions(); options.max_background_flushes = 0; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); int tmp = CurrentOptions().max_mem_compaction_level; ASSERT_EQ(tmp, 2) << "Fix test to match config"; @@ -5469,7 +5466,7 @@ TEST(DBTest, OverlapInLevel0) { TEST(DBTest, L0_CompactionBug_Issue44_a) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "b", "v")); ReopenWithColumnFamilies({"default", "pikachu"}); ASSERT_OK(Delete(1, "b")); @@ -5488,7 +5485,7 @@ TEST(DBTest, L0_CompactionBug_Issue44_a) { TEST(DBTest, L0_CompactionBug_Issue44_b) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); Put(1, "", ""); ReopenWithColumnFamilies({"default", "pikachu"}); Delete(1, "e"); @@ -5531,8 +5528,8 @@ TEST(DBTest, ComparatorCheck) { Options new_options, options; NewComparator cmp; do { - CreateAndReopenWithCF({"pikachu"}); options = CurrentOptions(); + CreateAndReopenWithCF({"pikachu"}, options); new_options = CurrentOptions(); new_options.comparator = &cmp; // only the non-default column family has non-matching comparator @@ -5579,7 +5576,7 @@ TEST(DBTest, CustomComparator) { new_options.write_buffer_size = 1000; // Compact more often new_options = CurrentOptions(new_options); DestroyAndReopen(new_options); - CreateAndReopenWithCF({"pikachu"}, &new_options); + CreateAndReopenWithCF({"pikachu"}, new_options); ASSERT_OK(Put(1, "[10]", "ten")); ASSERT_OK(Put(1, "[0x14]", "twenty")); for (int i = 0; i < 2; i++) { @@ -5606,7 +5603,7 @@ TEST(DBTest, CustomComparator) { TEST(DBTest, ManualCompaction) { Options options = CurrentOptions(); options.max_background_flushes = 0; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_EQ(dbfull()->MaxMemCompactionLevel(), 2) << "Need to update this test to match kMaxMemCompactLevel"; @@ -5648,7 +5645,7 @@ TEST(DBTest, ManualCompaction) { options.num_levels = 3; options.create_if_missing = true; DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); } } @@ -5663,7 +5660,7 @@ TEST(DBTest, ManualCompactionOutputPathId) { options.level0_file_num_compaction_trigger = 10; Destroy(options); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); MakeTables(3, "p", "q", 1); dbfull()->TEST_WaitForCompact(); ASSERT_EQ("3", FilesPerLevel(1)); @@ -5747,7 +5744,7 @@ TEST(DBTest, DBOpen_Change_NumLevels) { opts.max_background_flushes = 0; DestroyAndReopen(opts); ASSERT_TRUE(db_ != nullptr); - CreateAndReopenWithCF({"pikachu"}, &opts); + CreateAndReopenWithCF({"pikachu"}, opts); ASSERT_OK(Put(1, "a", "123")); ASSERT_OK(Put(1, "b", "234")); @@ -5966,7 +5963,7 @@ TEST(DBTest, PutFailsParanoid) { options.error_if_exists = false; options.paranoid_checks = true; DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Status s; ASSERT_OK(Put(1, "foo", "bar")); @@ -5985,7 +5982,7 @@ TEST(DBTest, PutFailsParanoid) { // do the same thing with paranoid checks off options.paranoid_checks = false; DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ASSERT_OK(Put(1, "foo", "bar")); ASSERT_OK(Put(1, "foo1", "bar1")); @@ -6001,7 +5998,7 @@ TEST(DBTest, PutFailsParanoid) { TEST(DBTest, FilesDeletedAfterCompaction) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "foo", "v2")); Compact(1, "a", "z"); const int num_files = CountLiveFiles(); @@ -6025,7 +6022,7 @@ TEST(DBTest, BloomFilter) { table_options.filter_policy.reset(NewBloomFilterPolicy(10)); options.table_factory.reset(NewBlockBasedTableFactory(table_options)); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Populate multiple layers const int N = 10000; @@ -6069,7 +6066,7 @@ TEST(DBTest, BloomFilterRate) { while (ChangeFilterOptions()) { Options options = CurrentOptions(); options.statistics = rocksdb::CreateDBStatistics(); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const int maxKey = 10000; for (int i = 0; i < maxKey; i++) { @@ -6101,7 +6098,7 @@ TEST(DBTest, BloomFilterCompatibility) { options.table_factory.reset(NewBlockBasedTableFactory(table_options)); // Create with block based filter - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const int maxKey = 10000; for (int i = 0; i < maxKey; i++) { @@ -6130,7 +6127,7 @@ TEST(DBTest, BloomFilterReverseCompatibility) { options.table_factory.reset(NewBlockBasedTableFactory(table_options)); // Create with full filter - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const int maxKey = 10000; for (int i = 0; i < maxKey; i++) { @@ -6199,7 +6196,7 @@ TEST(DBTest, BloomFilterWrapper) { table_options.filter_policy.reset(policy); options.table_factory.reset(NewBlockBasedTableFactory(table_options)); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); const int maxKey = 10000; for (int i = 0; i < maxKey; i++) { @@ -6229,7 +6226,7 @@ TEST(DBTest, SnapshotFiles) { do { Options options = CurrentOptions(); options.write_buffer_size = 100000000; // Large write buffer - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Random rnd(301); @@ -6359,7 +6356,7 @@ TEST(DBTest, CompactOnFlush) { Options options = CurrentOptions(); options.purge_redundant_kvs_while_flush = true; options.disable_auto_compactions = true; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Put(1, "foo", "v1"); ASSERT_OK(Flush(1)); @@ -6471,7 +6468,7 @@ TEST(DBTest, FlushOneColumnFamily) { Options options; CreateAndReopenWithCF({"pikachu", "ilya", "muromec", "dobrynia", "nikitich", "alyosha", "popovich"}, - &options); + options); ASSERT_OK(Put(0, "Default", "Default")); ASSERT_OK(Put(1, "pikachu", "pikachu")); @@ -6497,7 +6494,7 @@ TEST(DBTest, FlushOneColumnFamily) { TEST(DBTest, RecoverCheckFileAmountWithSmallWriteBuffer) { Options options; options.write_buffer_size = 5000000; - CreateAndReopenWithCF({"pikachu", "dobrynia", "nikitich"}, &options); + CreateAndReopenWithCF({"pikachu", "dobrynia", "nikitich"}, options); // Since we will reopen DB with smaller write_buffer_size, // each key will go to new SST file @@ -6552,7 +6549,7 @@ TEST(DBTest, RecoverCheckFileAmountWithSmallWriteBuffer) { TEST(DBTest, RecoverCheckFileAmount) { Options options; options.write_buffer_size = 100000; - CreateAndReopenWithCF({"pikachu", "dobrynia", "nikitich"}, &options); + CreateAndReopenWithCF({"pikachu", "dobrynia", "nikitich"}, options); ASSERT_OK(Put(0, Key(1), DummyString(1))); ASSERT_OK(Put(1, Key(1), DummyString(1))); @@ -6798,7 +6795,7 @@ TEST(DBTest, TransactionLogIterator) { do { Options options = OptionsForLogIterTest(); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); Put(0, "key1", DummyString(1024)); Put(1, "key2", DummyString(1024)); Put(1, "key2", DummyString(1024)); @@ -6880,7 +6877,7 @@ TEST(DBTest, TransactionLogIteratorMoveOverZeroFiles) { do { Options options = OptionsForLogIterTest(); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); // Do a plain Reopen. Put(1, "key1", DummyString(1024)); // Two reopens should create a zero record WAL file. @@ -6969,7 +6966,7 @@ TEST(DBTest, TransactionLogIteratorBatchOperations) { do { Options options = OptionsForLogIterTest(); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); WriteBatch batch; batch.Put(handles_[1], "key1", DummyString(1024)); batch.Put(handles_[0], "key2", DummyString(1024)); @@ -6988,7 +6985,7 @@ TEST(DBTest, TransactionLogIteratorBatchOperations) { TEST(DBTest, TransactionLogIteratorBlobs) { Options options = OptionsForLogIterTest(); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); { WriteBatch batch; batch.Put(handles_[1], "key1", DummyString(1024)); @@ -7186,7 +7183,7 @@ TEST(DBTest, MultiThreaded) { for (int i = 1; i < kColumnFamilies; ++i) { cfs.push_back(std::to_string(i)); } - CreateAndReopenWithCF(cfs); + CreateAndReopenWithCF(cfs, CurrentOptions()); // Initialize state MTState mt; mt.test = this; @@ -7689,7 +7686,7 @@ TEST(DBTest, Randomized) { TEST(DBTest, MultiGetSimple) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ASSERT_OK(Put(1, "k1", "v1")); ASSERT_OK(Put(1, "k2", "v2")); ASSERT_OK(Put(1, "k3", "v3")); @@ -7721,7 +7718,7 @@ TEST(DBTest, MultiGetSimple) { TEST(DBTest, MultiGetEmpty) { do { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); // Empty Key Set std::vector keys; std::vector values; @@ -7733,7 +7730,7 @@ TEST(DBTest, MultiGetEmpty) { Options options = CurrentOptions(); options.create_if_missing = true; DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, options); s = db_->MultiGet(ReadOptions(), cfs, keys, &values); ASSERT_EQ(s.size(), 0U); @@ -7866,7 +7863,7 @@ TEST(DBTest, TailingIteratorSingle) { } TEST(DBTest, TailingIteratorKeepAdding) { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ReadOptions read_options; read_options.tailing = true; @@ -7888,7 +7885,7 @@ TEST(DBTest, TailingIteratorKeepAdding) { } TEST(DBTest, TailingIteratorSeekToNext) { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ReadOptions read_options; read_options.tailing = true; @@ -7935,7 +7932,7 @@ TEST(DBTest, TailingIteratorSeekToNext) { } TEST(DBTest, TailingIteratorDeletes) { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ReadOptions read_options; read_options.tailing = true; @@ -7984,7 +7981,7 @@ TEST(DBTest, TailingIteratorPrefixSeek) { options.prefix_extractor.reset(NewFixedPrefixTransform(2)); options.memtable_factory.reset(NewHashSkipListRepFactory(16)); DestroyAndReopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); std::unique_ptr iter(db_->NewIterator(read_options, handles_[1])); ASSERT_OK(Put(1, "0101", "test")); @@ -8006,7 +8003,7 @@ TEST(DBTest, TailingIteratorPrefixSeek) { } TEST(DBTest, TailingIteratorIncomplete) { - CreateAndReopenWithCF({"pikachu"}); + CreateAndReopenWithCF({"pikachu"}, CurrentOptions()); ReadOptions read_options; read_options.tailing = true; read_options.read_tier = kBlockCacheTier; @@ -8031,7 +8028,7 @@ TEST(DBTest, TailingIteratorSeekToSame) { Options options = CurrentOptions(); options.compaction_style = kCompactionStyleUniversal; options.write_buffer_size = 1000; - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); ReadOptions read_options; read_options.tailing = true; @@ -8390,7 +8387,7 @@ TEST(DBTest, TableOptionsSanitizeTest) { options.table_factory.reset(new PlainTableFactory()); options.prefix_extractor.reset(NewNoopTransform()); Destroy(options); - ASSERT_TRUE(TryReopen(&options).IsNotSupported()); + ASSERT_TRUE(TryReopen(options).IsNotSupported()); // Test for check of prefix_extractor when hash index is used for // block-based table @@ -8399,9 +8396,9 @@ TEST(DBTest, TableOptionsSanitizeTest) { options = Options(); options.create_if_missing = true; options.table_factory.reset(NewBlockBasedTableFactory(to)); - ASSERT_TRUE(TryReopen(&options).IsInvalidArgument()); + ASSERT_TRUE(TryReopen(options).IsInvalidArgument()); options.prefix_extractor.reset(NewFixedPrefixTransform(1)); - ASSERT_OK(TryReopen(&options)); + ASSERT_OK(TryReopen(options)); } TEST(DBTest, DBIteratorBoundTest) { @@ -8572,7 +8569,7 @@ TEST(DBTest, DisableDataSyncTest) { options.create_if_missing = true; options.env = env_; Reopen(options); - CreateAndReopenWithCF({"pikachu"}, &options); + CreateAndReopenWithCF({"pikachu"}, options); MakeTables(10, "a", "z"); Compact("a", "z");