This is an automated email from the ASF dual-hosted git repository.

twice pushed a commit to branch unstable
in repository https://gitbox.apache.org/repos/asf/kvrocks.git


The following commit(s) were added to refs/heads/unstable by this push:
     new 892ea915 Remove raw pointers and useless copy in TestBase (#2062)
892ea915 is described below

commit 892ea915f627c6c09b2bb81a120fe228ba10e893
Author: Twice <[email protected]>
AuthorDate: Sun Jan 28 11:03:16 2024 +0900

    Remove raw pointers and useless copy in TestBase (#2062)
---
 tests/cppunit/disk_test.cc              | 36 +++++++-------
 tests/cppunit/iterator_test.cc          | 84 ++++++++++++++++-----------------
 tests/cppunit/metadata_test.cc          |  4 +-
 tests/cppunit/namespace_test.cc         |  6 +--
 tests/cppunit/rdb_test.cc               | 18 +++----
 tests/cppunit/test_base.h               | 24 +++++-----
 tests/cppunit/types/bitmap_test.cc      |  4 +-
 tests/cppunit/types/bloom_chain_test.cc |  2 +-
 tests/cppunit/types/geo_test.cc         |  2 +-
 tests/cppunit/types/hash_test.cc        |  2 +-
 tests/cppunit/types/json_test.cc        |  2 +-
 tests/cppunit/types/list_test.cc        |  2 +-
 tests/cppunit/types/set_test.cc         |  2 +-
 tests/cppunit/types/sortedint_test.cc   |  2 +-
 tests/cppunit/types/stream_test.cc      |  2 +-
 tests/cppunit/types/string_test.cc      |  2 +-
 tests/cppunit/types/zset_test.cc        |  2 +-
 17 files changed, 97 insertions(+), 99 deletions(-)

diff --git a/tests/cppunit/disk_test.cc b/tests/cppunit/disk_test.cc
index 124e1f81..a4cfc0df 100644
--- a/tests/cppunit/disk_test.cc
+++ b/tests/cppunit/disk_test.cc
@@ -46,8 +46,8 @@ class RedisDiskTest : public TestBase {
 
 TEST_F(RedisDiskTest, StringDisk) {
   key_ = "stringdisk_key";
-  std::unique_ptr<redis::String> string = 
std::make_unique<redis::String>(storage_, "disk_ns_string");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_string");
+  std::unique_ptr<redis::String> string = 
std::make_unique<redis::String>(storage_.get(), "disk_ns_string");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_string");
   std::vector<int> value_size{1024 * 1024};
   EXPECT_TRUE(string->Set(key_, std::string(value_size[0], 'a')).ok());
   uint64_t result = 0;
@@ -58,8 +58,8 @@ TEST_F(RedisDiskTest, StringDisk) {
 }
 
 TEST_F(RedisDiskTest, HashDisk) {
-  std::unique_ptr<redis::Hash> hash = std::make_unique<redis::Hash>(storage_, 
"disk_ns_hash");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_hash");
+  std::unique_ptr<redis::Hash> hash = 
std::make_unique<redis::Hash>(storage_.get(), "disk_ns_hash");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_hash");
   key_ = "hashdisk_key";
   fields_ = {"hashdisk_kkey1", "hashdisk_kkey2", "hashdisk_kkey3", 
"hashdisk_kkey4", "hashdisk_kkey5"};
   values_.resize(5);
@@ -82,8 +82,8 @@ TEST_F(RedisDiskTest, HashDisk) {
 }
 
 TEST_F(RedisDiskTest, SetDisk) {
-  std::unique_ptr<redis::Set> set = std::make_unique<redis::Set>(storage_, 
"disk_ns_set");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_set");
+  std::unique_ptr<redis::Set> set = 
std::make_unique<redis::Set>(storage_.get(), "disk_ns_set");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_set");
   key_ = "setdisk_key";
   values_.resize(5);
   uint64_t approximate_size = 0;
@@ -107,8 +107,8 @@ TEST_F(RedisDiskTest, SetDisk) {
 }
 
 TEST_F(RedisDiskTest, ListDisk) {
-  std::unique_ptr<redis::List> list = std::make_unique<redis::List>(storage_, 
"disk_ns_list");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_list");
+  std::unique_ptr<redis::List> list = 
std::make_unique<redis::List>(storage_.get(), "disk_ns_list");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_list");
   key_ = "listdisk_key";
   values_.resize(5);
   std::vector<int> value_size{1024, 1024, 1024, 1024, 1024};
@@ -130,8 +130,8 @@ TEST_F(RedisDiskTest, ListDisk) {
 }
 
 TEST_F(RedisDiskTest, ZsetDisk) {
-  std::unique_ptr<redis::ZSet> zset = std::make_unique<redis::ZSet>(storage_, 
"disk_ns_zet");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_zet");
+  std::unique_ptr<redis::ZSet> zset = 
std::make_unique<redis::ZSet>(storage_.get(), "disk_ns_zet");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_zet");
   key_ = "zsetdisk_key";
   uint64_t ret = 0;
   uint64_t approximate_size = 0;
@@ -152,8 +152,8 @@ TEST_F(RedisDiskTest, ZsetDisk) {
 }
 
 TEST_F(RedisDiskTest, BitmapDisk) {
-  std::unique_ptr<redis::Bitmap> bitmap = 
std::make_unique<redis::Bitmap>(storage_, "disk_ns_bitmap");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_bitmap");
+  std::unique_ptr<redis::Bitmap> bitmap = 
std::make_unique<redis::Bitmap>(storage_.get(), "disk_ns_bitmap");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_bitmap");
   key_ = "bitmapdisk_key";
   bool bit = false;
   uint64_t approximate_size = 0;
@@ -172,8 +172,8 @@ TEST_F(RedisDiskTest, BitmapDisk2) {
   const int64_t kGroupSize = 8192;
   for (size_t num_bits : {8192, 16384}) {
     for (bool set_op : {false, true}) {
-      std::unique_ptr<redis::Bitmap> bitmap = 
std::make_unique<redis::Bitmap>(storage_, "disk_ns_bitmap2");
-      std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_, "disk_ns_bitmap2");
+      std::unique_ptr<redis::Bitmap> bitmap = 
std::make_unique<redis::Bitmap>(storage_.get(), "disk_ns_bitmap2");
+      std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_bitmap2");
       key_ = "bitmapdisk_key2";
       auto s = bitmap->Del(key_);
       bool bit = false;
@@ -209,8 +209,8 @@ TEST_F(RedisDiskTest, BitmapDisk2) {
 }
 
 TEST_F(RedisDiskTest, SortedintDisk) {
-  std::unique_ptr<redis::Sortedint> sortedint = 
std::make_unique<redis::Sortedint>(storage_, "disk_ns_sortedint");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_sortedint");
+  std::unique_ptr<redis::Sortedint> sortedint = 
std::make_unique<redis::Sortedint>(storage_.get(), "disk_ns_sortedint");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_sortedint");
   key_ = "sortedintdisk_key";
   uint64_t ret = 0;
   uint64_t approximate_size = 0;
@@ -226,8 +226,8 @@ TEST_F(RedisDiskTest, SortedintDisk) {
 }
 
 TEST_F(RedisDiskTest, StreamDisk) {
-  std::unique_ptr<redis::Stream> stream = 
std::make_unique<redis::Stream>(storage_, "disk_ns_stream");
-  std::unique_ptr<redis::Disk> disk = std::make_unique<redis::Disk>(storage_, 
"disk_ns_stream");
+  std::unique_ptr<redis::Stream> stream = 
std::make_unique<redis::Stream>(storage_.get(), "disk_ns_stream");
+  std::unique_ptr<redis::Disk> disk = 
std::make_unique<redis::Disk>(storage_.get(), "disk_ns_stream");
   key_ = "streamdisk_key";
   redis::StreamAddOptions options;
   options.next_id_strategy = *redis::ParseNextStreamEntryIDStrategy("*");
diff --git a/tests/cppunit/iterator_test.cc b/tests/cppunit/iterator_test.cc
index 6a2437a1..3645e59c 100644
--- a/tests/cppunit/iterator_test.cc
+++ b/tests/cppunit/iterator_test.cc
@@ -40,7 +40,7 @@ class DBIteratorTest : public TestBase {
 
   void SetUp() override {
     {  // string
-      redis::String string(storage_, "test_ns0");
+      redis::String string(storage_.get(), "test_ns0");
       string.Set("a", "1");
       string.Set("b", "2");
       string.Set("c", "3");
@@ -52,31 +52,31 @@ class DBIteratorTest : public TestBase {
 
     {  // hash
       uint64_t ret = 0;
-      redis::Hash hash(storage_, "test_ns1");
+      redis::Hash hash(storage_.get(), "test_ns1");
       hash.MSet("hash-1", {{"f0", "v0"}, {"f1", "v1"}, {"f2", "v2"}, {"f3", 
"v3"}}, false, &ret);
     }
 
     {  // set
       uint64_t ret = 0;
-      redis::Set set(storage_, "test_ns2");
+      redis::Set set(storage_.get(), "test_ns2");
       set.Add("set-1", {"e0", "e1", "e2"}, &ret);
     }
 
     {  // sorted set
       uint64_t ret = 0;
-      redis::ZSet zset(storage_, "test_ns3");
+      redis::ZSet zset(storage_.get(), "test_ns3");
       auto mscores = std::vector<MemberScore>{{"z0", 0}, {"z1", 1}, {"z2", 2}};
       zset.Add("zset-1", ZAddFlags(), &mscores, &ret);
     }
 
     {  // list
       uint64_t ret = 0;
-      redis::List list(storage_, "test_ns4");
+      redis::List list(storage_.get(), "test_ns4");
       list.Push("list-1", {"l0", "l1", "l2"}, false, &ret);
     }
 
     {  // stream
-      redis::Stream stream(storage_, "test_ns5");
+      redis::Stream stream(storage_.get(), "test_ns5");
       redis::StreamEntryID ret;
       redis::StreamAddOptions options;
       options.next_id_strategy = 
std::make_unique<redis::AutoGeneratedEntryID>();
@@ -87,7 +87,7 @@ class DBIteratorTest : public TestBase {
     }
 
     {  // bitmap
-      redis::Bitmap bitmap(storage_, "test_ns6");
+      redis::Bitmap bitmap(storage_.get(), "test_ns6");
       bool ret = false;
       bitmap.SetBit("bitmap-1", 0, true, &ret);
       bitmap.SetBit("bitmap-1", 8 * 1024, true, &ret);
@@ -95,7 +95,7 @@ class DBIteratorTest : public TestBase {
     }
 
     {  // json
-      redis::Json json(storage_, "test_ns7");
+      redis::Json json(storage_.get(), "test_ns7");
       json.Set("json-1", "$", "{\"a\": 1, \"b\": 2}");
       json.Set("json-2", "$", "{\"a\": 1, \"b\": 2}");
       json.Set("json-3", "$", "{\"a\": 1, \"b\": 2}");
@@ -106,7 +106,7 @@ class DBIteratorTest : public TestBase {
 
     {
       // sorted integer
-      redis::Sortedint sortedint(storage_, "test_ns8");
+      redis::Sortedint sortedint(storage_.get(), "test_ns8");
       uint64_t ret = 0;
       sortedint.Add("sortedint-1", {1, 2, 3}, &ret);
     }
@@ -114,7 +114,7 @@ class DBIteratorTest : public TestBase {
 };
 
 TEST_F(DBIteratorTest, AllKeys) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   std::vector<std::string> live_keys = {"a",        "b",        "d",      
"hash-1", "set-1",  "zset-1",     "list-1",
                                         "stream-1", "bitmap-1", "json-1", 
"json-2", "json-3", "sortedint-1"};
   std::reverse(live_keys.begin(), live_keys.end());
@@ -128,7 +128,7 @@ TEST_F(DBIteratorTest, AllKeys) {
 }
 
 TEST_F(DBIteratorTest, BasicString) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
 
   std::vector<std::string> expected_keys = {"a", "b", "d"};
   std::reverse(expected_keys.begin(), expected_keys.end());
@@ -150,7 +150,7 @@ TEST_F(DBIteratorTest, BasicString) {
 }
 
 TEST_F(DBIteratorTest, BasicHash) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns1", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisHash, iter.Type());
@@ -173,7 +173,7 @@ TEST_F(DBIteratorTest, BasicHash) {
 }
 
 TEST_F(DBIteratorTest, BasicSet) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns2", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisSet, iter.Type());
@@ -196,7 +196,7 @@ TEST_F(DBIteratorTest, BasicSet) {
 }
 
 TEST_F(DBIteratorTest, BasicZSet) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns3", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisZSet, iter.Type());
@@ -219,7 +219,7 @@ TEST_F(DBIteratorTest, BasicZSet) {
 }
 
 TEST_F(DBIteratorTest, BasicList) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns4", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisList, iter.Type());
@@ -242,7 +242,7 @@ TEST_F(DBIteratorTest, BasicList) {
 }
 
 TEST_F(DBIteratorTest, BasicStream) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns5", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisStream, iter.Type());
@@ -268,7 +268,7 @@ TEST_F(DBIteratorTest, BasicStream) {
 }
 
 TEST_F(DBIteratorTest, BasicBitmap) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
   auto prefix = ComposeNamespaceKey("test_ns6", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
     ASSERT_EQ(kRedisBitmap, iter.Type());
@@ -290,7 +290,7 @@ TEST_F(DBIteratorTest, BasicBitmap) {
 }
 
 TEST_F(DBIteratorTest, BasicJSON) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
 
   std::vector<std::string> expected_keys = {"json-1", "json-2", "json-3"};
   std::reverse(expected_keys.begin(), expected_keys.end());
@@ -312,7 +312,7 @@ TEST_F(DBIteratorTest, BasicJSON) {
 }
 
 TEST_F(DBIteratorTest, BasicSortedInt) {
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions());
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions());
 
   auto prefix = ComposeNamespaceKey("test_ns8", "", 
storage_->IsSlotIdEncoded());
   for (iter.Seek(prefix); iter.Valid() && iter.Key().starts_with(prefix); 
iter.Next()) {
@@ -343,7 +343,7 @@ class SlotIteratorTest : public TestBase {
 };
 
 TEST_F(SlotIteratorTest, LiveKeys) {
-  redis::String string(storage_, kDefaultNamespace);
+  redis::String string(storage_.get(), kDefaultNamespace);
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
   std::vector<std::string> keys = {"{x}a", "{x}b", "{y}c", "{y}d", "{x}e"};
   for (const auto &key : keys) {
@@ -357,7 +357,7 @@ TEST_F(SlotIteratorTest, LiveKeys) {
       same_slot_keys.insert(key);
     }
   }
-  engine::DBIterator iter(storage_, rocksdb::ReadOptions(), slot_id);
+  engine::DBIterator iter(storage_.get(), rocksdb::ReadOptions(), slot_id);
   int count = 0;
   for (iter.Seek(); iter.Valid(); iter.Next()) {
     auto [_, user_key] = iter.UserKey();
@@ -366,7 +366,7 @@ TEST_F(SlotIteratorTest, LiveKeys) {
   }
   ASSERT_EQ(count, same_slot_keys.size());
 
-  engine::WALIterator wal_iter(storage_, slot_id);
+  engine::WALIterator wal_iter(storage_.get(), slot_id);
   count = 0;
   for (wal_iter.Seek(start_seq + 1); wal_iter.Valid(); wal_iter.Next()) {
     auto item = wal_iter.Item();
@@ -388,7 +388,7 @@ class WALIteratorTest : public TestBase {
 
 TEST_F(WALIteratorTest, BasicString) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
-  redis::String string(storage_, "test_ns0");
+  redis::String string(storage_.get(), "test_ns0");
   string.Set("a", "1");
   string.MSet({{"b", "2"}, {"c", "3"}});
   ASSERT_TRUE(string.Del("b").ok());
@@ -397,7 +397,7 @@ TEST_F(WALIteratorTest, BasicString) {
   auto expected_put_keys = {"a", "b", "c"};
   auto expected_delete_keys = {"b"};
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -432,7 +432,7 @@ TEST_F(WALIteratorTest, BasicString) {
 
 TEST_F(WALIteratorTest, BasicHash) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
-  redis::Hash hash(storage_, "test_ns1");
+  redis::Hash hash(storage_.get(), "test_ns1");
   uint64_t ret = 0;
   hash.MSet("hash-1", {{"f0", "v0"}, {"f1", "v1"}, {"f2", "v2"}, {"f3", 
"v3"}}, false, &ret);
   uint64_t deleted_cnt = 0;
@@ -445,7 +445,7 @@ TEST_F(WALIteratorTest, BasicHash) {
   auto expected_delete_fields = {"f0"};
   std::vector<std::string> put_keys, put_fields, delete_fields;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -488,7 +488,7 @@ TEST_F(WALIteratorTest, BasicSet) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
 
   uint64_t ret = 0;
-  redis::Set set(storage_, "test_ns2");
+  redis::Set set(storage_.get(), "test_ns2");
   set.Add("set-1", {"e0", "e1", "e2"}, &ret);
   uint64_t removed_cnt = 0;
   set.Remove("set-1", {"e0", "e1"}, &removed_cnt);
@@ -498,7 +498,7 @@ TEST_F(WALIteratorTest, BasicSet) {
   auto expected_delete_members = {"e0", "e1"};
   std::vector<std::string> put_keys, put_members, delete_members;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -541,7 +541,7 @@ TEST_F(WALIteratorTest, BasicSet) {
 TEST_F(WALIteratorTest, BasicZSet) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
   uint64_t ret = 0;
-  redis::ZSet zset(storage_, "test_ns3");
+  redis::ZSet zset(storage_.get(), "test_ns3");
   auto mscores = std::vector<MemberScore>{{"z0", 0}, {"z1", 1}, {"z2", 2}};
   zset.Add("zset-1", ZAddFlags(), &mscores, &ret);
   uint64_t removed_cnt = 0;
@@ -553,7 +553,7 @@ TEST_F(WALIteratorTest, BasicZSet) {
   int expected_delete_count = 2, delete_count = 0;
   std::vector<std::string> put_keys, put_members;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -594,7 +594,7 @@ TEST_F(WALIteratorTest, BasicZSet) {
 TEST_F(WALIteratorTest, BasicList) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
   uint64_t ret = 0;
-  redis::List list(storage_, "test_ns4");
+  redis::List list(storage_.get(), "test_ns4");
   list.Push("list-1", {"l0", "l1", "l2", "l3", "l4"}, false, &ret);
   ASSERT_TRUE(list.Trim("list-1", 2, 4).ok());
 
@@ -603,7 +603,7 @@ TEST_F(WALIteratorTest, BasicList) {
   auto expected_delete_count = 2, delete_count = 0;
   std::vector<std::string> put_keys, put_values;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -642,7 +642,7 @@ TEST_F(WALIteratorTest, BasicList) {
 
 TEST_F(WALIteratorTest, BasicStream) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
-  redis::Stream stream(storage_, "test_ns5");
+  redis::Stream stream(storage_.get(), "test_ns5");
   redis::StreamEntryID ret;
   redis::StreamAddOptions options;
   options.next_id_strategy = std::make_unique<redis::AutoGeneratedEntryID>();
@@ -657,7 +657,7 @@ TEST_F(WALIteratorTest, BasicStream) {
   int delete_count = 0;
   std::vector<std::string> put_keys, put_values;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -700,7 +700,7 @@ TEST_F(WALIteratorTest, BasicStream) {
 TEST_F(WALIteratorTest, BasicBitmap) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
 
-  redis::Bitmap bitmap(storage_, "test_ns6");
+  redis::Bitmap bitmap(storage_.get(), "test_ns6");
   bool ret = false;
   bitmap.SetBit("bitmap-1", 0, true, &ret);
   bitmap.SetBit("bitmap-1", 8 * 1024, true, &ret);
@@ -709,7 +709,7 @@ TEST_F(WALIteratorTest, BasicBitmap) {
   auto expected_put_values = {"\x1", "\x1", "\x1"};
   std::vector<std::string> put_values;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -736,7 +736,7 @@ TEST_F(WALIteratorTest, BasicBitmap) {
 
 TEST_F(WALIteratorTest, BasicJSON) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
-  redis::Json json(storage_, "test_ns7");
+  redis::Json json(storage_.get(), "test_ns7");
   json.Set("json-1", "$", "{\"a\": 1, \"b\": 2}");
   json.Set("json-2", "$", "{\"a\": 1, \"b\": 2}");
   json.Set("json-3", "$", "{\"a\": 1, \"b\": 2}");
@@ -748,7 +748,7 @@ TEST_F(WALIteratorTest, BasicJSON) {
   auto expected_delete_keys = {"json-3"};
   std::vector<std::string> put_keys, delete_keys;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -786,7 +786,7 @@ TEST_F(WALIteratorTest, BasicJSON) {
 
 TEST_F(WALIteratorTest, BasicSortedInt) {
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
-  redis::Sortedint sortedint(storage_, "test_ns8");
+  redis::Sortedint sortedint(storage_.get(), "test_ns8");
   uint64_t ret = 0;
   sortedint.Add("sortedint-1", {1, 2, 3}, &ret);
   uint64_t removed_cnt = 0;
@@ -795,7 +795,7 @@ TEST_F(WALIteratorTest, BasicSortedInt) {
   std::vector<uint64_t> expected_values = {1, 2, 3}, put_values;
   std::vector<uint64_t> expected_delete_values = {2}, delete_values;
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   for (iter.Seek(start_seq + 1); iter.Valid(); iter.Next()) {
     auto item = iter.Item();
@@ -836,7 +836,7 @@ TEST_F(WALIteratorTest, NextSequence) {
 
   auto start_seq = storage_->GetDB()->GetLatestSequenceNumber();
   uint64_t ret = 0;
-  redis::List list(storage_, "test_ns2");
+  redis::List list(storage_.get(), "test_ns2");
   list.Push("list-1", {"l0", "l1", "l2", "l3", "l4"}, false, &ret);
   
expected_next_sequences.emplace_back(storage_->GetDB()->GetLatestSequenceNumber()
 + 1);
   list.Push("list-2", {"l0", "l1", "l2"}, false, &ret);
@@ -844,7 +844,7 @@ TEST_F(WALIteratorTest, NextSequence) {
   ASSERT_TRUE(list.Trim("list-1", 2, 4).ok());
   
expected_next_sequences.emplace_back(storage_->GetDB()->GetLatestSequenceNumber()
 + 1);
 
-  engine::WALIterator iter(storage_);
+  engine::WALIterator iter(storage_.get());
 
   ASSERT_EQ(iter.NextSequenceNumber(), 0);
 
diff --git a/tests/cppunit/metadata_test.cc b/tests/cppunit/metadata_test.cc
index e17735c3..5e3e60ee 100644
--- a/tests/cppunit/metadata_test.cc
+++ b/tests/cppunit/metadata_test.cc
@@ -69,8 +69,8 @@ TEST(Metadata, EncodeAndDecode) {
 class RedisTypeTest : public TestBase {
  public:
   RedisTypeTest() {
-    redis_ = std::make_unique<redis::Database>(storage_, "default_ns");
-    hash_ = std::make_unique<redis::Hash>(storage_, "default_ns");
+    redis_ = std::make_unique<redis::Database>(storage_.get(), "default_ns");
+    hash_ = std::make_unique<redis::Hash>(storage_.get(), "default_ns");
     key_ = "test-redis-type";
     fields_ = {"test-hash-key-1", "test-hash-key-2", "test-hash-key-3"};
     values_ = {"hash-test-value-1", "hash-test-value-2", "hash-test-value-3"};
diff --git a/tests/cppunit/namespace_test.cc b/tests/cppunit/namespace_test.cc
index 7d26a18e..c968f4ca 100644
--- a/tests/cppunit/namespace_test.cc
+++ b/tests/cppunit/namespace_test.cc
@@ -28,7 +28,7 @@
 
 class NamespaceTest : public TestBase {
  protected:
-  explicit NamespaceTest() { config_->requirepass = "123"; }
+  explicit NamespaceTest() { config_.requirepass = "123"; }
 
   void SetUp() override {}
   void TearDown() override {}
@@ -36,10 +36,10 @@ class NamespaceTest : public TestBase {
 
 TEST_F(NamespaceTest, AddAndDelete) {
   for (const auto &v : {true, false}) {
-    auto ns = std::make_unique<Namespace>(storage_);
+    auto ns = std::make_unique<Namespace>(storage_.get());
     std::map<std::string, std::string> tokens = {
         {"tokens2", "test_ns"}, {"tokens", "test_ns2"}, {"tokens3", 
"test_ns3"}};
-    config_->repl_namespace_enabled = v;
+    config_.repl_namespace_enabled = v;
     for (const auto &iter : tokens) {
       ASSERT_TRUE(ns->Add(iter.second, iter.first).IsOK());
     }
diff --git a/tests/cppunit/rdb_test.cc b/tests/cppunit/rdb_test.cc
index d3a18355..87df1587 100644
--- a/tests/cppunit/rdb_test.cc
+++ b/tests/cppunit/rdb_test.cc
@@ -48,20 +48,20 @@ class RDBTest : public TestBase {
   ~RDBTest() override = default;
   void SetUp() override { crc64_init(); }
 
-  void TearDown() override { ASSERT_TRUE(clearDBDir(config_->db_dir)); }
+  void TearDown() override { ASSERT_TRUE(clearDBDir(config_.db_dir)); }
 
   void loadRdb(const std::string &path) {
     auto stream_ptr = std::make_unique<RdbFileStream>(path);
     auto s = stream_ptr->Open();
     ASSERT_TRUE(s.IsOK());
 
-    RDB rdb(storage_, ns_, std::move(stream_ptr));
+    RDB rdb(storage_.get(), ns_, std::move(stream_ptr));
     s = rdb.LoadRdb(0);
     ASSERT_TRUE(s.IsOK());
   }
 
   void stringCheck(const std::string &key, const std::string &expect) {
-    redis::String string_db(storage_, ns_);
+    redis::String string_db(storage_.get(), ns_);
     std::string value;
     auto s = string_db.Get(key, &value);
     ASSERT_TRUE(s.ok());
@@ -69,7 +69,7 @@ class RDBTest : public TestBase {
   }
 
   void setCheck(const std::string &key, const std::vector<std::string> 
&expect) {
-    redis::Set set_db(storage_, ns_);
+    redis::Set set_db(storage_.get(), ns_);
     std::vector<std::string> members;
     auto s = set_db.Members(key, &members);
 
@@ -78,7 +78,7 @@ class RDBTest : public TestBase {
   }
 
   void hashCheck(const std::string &key, const std::map<std::string, 
std::string> &expect) {
-    redis::Hash hash_db(storage_, ns_);
+    redis::Hash hash_db(storage_.get(), ns_);
     std::vector<FieldValue> field_values;
     auto s = hash_db.GetAll(key, &field_values);
     ASSERT_TRUE(s.ok());
@@ -95,7 +95,7 @@ class RDBTest : public TestBase {
   }
 
   void listCheck(const std::string &key, const std::vector<std::string> 
&expect) {
-    redis::List list_db(storage_, ns_);
+    redis::List list_db(storage_.get(), ns_);
     std::vector<std::string> values;
     auto s = list_db.Range(key, 0, -1, &values);
     ASSERT_TRUE(s.ok());
@@ -103,7 +103,7 @@ class RDBTest : public TestBase {
   }
 
   void zsetCheck(const std::string &key, const std::vector<MemberScore> 
&expect) {
-    redis::ZSet zset_db(storage_, ns_);
+    redis::ZSet zset_db(storage_.get(), ns_);
     std::vector<MemberScore> member_scores;
 
     RangeRankSpec spec;
@@ -117,12 +117,12 @@ class RDBTest : public TestBase {
   }
 
   rocksdb::Status keyExist(const std::string &key) {
-    redis::Database redis(storage_, ns_);
+    redis::Database redis(storage_.get(), ns_);
     return redis.KeyExist(key);
   }
 
   void flushDB() {
-    redis::Database redis(storage_, ns_);
+    redis::Database redis(storage_.get(), ns_);
     auto s = redis.FlushDB();
     ASSERT_TRUE(s.ok());
   }
diff --git a/tests/cppunit/test_base.h b/tests/cppunit/test_base.h
index 5c46f317..6d9d6a39 100644
--- a/tests/cppunit/test_base.h
+++ b/tests/cppunit/test_base.h
@@ -30,18 +30,18 @@
 
 class TestBase : public testing::Test {  // NOLINT
  protected:
-  explicit TestBase() : config_(new Config()) {
+  explicit TestBase() {
     const char *path = "test.conf";
     unlink(path);
     std::ofstream output_file(path, std::ios::out);
     output_file << "";
 
-    auto s = config_->Load(CLIOptions(path));
-    config_->db_dir = "testdb";
-    config_->rocks_db.compression = rocksdb::CompressionType::kNoCompression;
-    config_->rocks_db.write_buffer_size = 1;
-    config_->rocks_db.block_size = 100;
-    storage_ = new engine::Storage(config_);
+    auto s = config_.Load(CLIOptions(path));
+    config_.db_dir = "testdb";
+    config_.rocks_db.compression = rocksdb::CompressionType::kNoCompression;
+    config_.rocks_db.write_buffer_size = 1;
+    config_.rocks_db.block_size = 100;
+    storage_ = std::make_unique<engine::Storage>(&config_);
     s = storage_->Open();
     if (!s.IsOK()) {
       std::cout << "Failed to open the storage, encounter error: " << s.Msg() 
<< std::endl;
@@ -49,12 +49,10 @@ class TestBase : public testing::Test {  // NOLINT
     }
   }
   ~TestBase() override {
-    auto db_dir = config_->db_dir;
-    delete storage_;
-    delete config_;
+    storage_.reset();
 
     std::error_code ec;
-    std::filesystem::remove_all(db_dir, ec);
+    std::filesystem::remove_all(config_.db_dir, ec);
     if (ec) {
       std::cout << "Encounter filesystem error: " << ec << std::endl;
     }
@@ -62,8 +60,8 @@ class TestBase : public testing::Test {  // NOLINT
     unlink(path);
   }
 
-  engine::Storage *storage_;
-  Config *config_ = nullptr;
+  std::unique_ptr<engine::Storage> storage_;
+  Config config_;
   std::string key_;
   std::vector<Slice> fields_;
   std::vector<Slice> values_;
diff --git a/tests/cppunit/types/bitmap_test.cc 
b/tests/cppunit/types/bitmap_test.cc
index 197f0ae9..4742f011 100644
--- a/tests/cppunit/types/bitmap_test.cc
+++ b/tests/cppunit/types/bitmap_test.cc
@@ -29,8 +29,8 @@
 class RedisBitmapTest : public TestBase {
  protected:
   explicit RedisBitmapTest() {
-    bitmap_ = std::make_unique<redis::Bitmap>(storage_, "bitmap_ns");
-    string_ = std::make_unique<redis::String>(storage_, "bitmap_ns");
+    bitmap_ = std::make_unique<redis::Bitmap>(storage_.get(), "bitmap_ns");
+    string_ = std::make_unique<redis::String>(storage_.get(), "bitmap_ns");
   }
   ~RedisBitmapTest() override = default;
 
diff --git a/tests/cppunit/types/bloom_chain_test.cc 
b/tests/cppunit/types/bloom_chain_test.cc
index 904d3fbd..f99df13a 100644
--- a/tests/cppunit/types/bloom_chain_test.cc
+++ b/tests/cppunit/types/bloom_chain_test.cc
@@ -27,7 +27,7 @@
 
 class RedisBloomChainTest : public TestBase {
  protected:
-  explicit RedisBloomChainTest() { sb_chain_ = 
std::make_unique<redis::BloomChain>(storage_, "sb_chain_ns"); }
+  explicit RedisBloomChainTest() { sb_chain_ = 
std::make_unique<redis::BloomChain>(storage_.get(), "sb_chain_ns"); }
   ~RedisBloomChainTest() override = default;
 
   void SetUp() override { key_ = "test_sb_chain_key"; }
diff --git a/tests/cppunit/types/geo_test.cc b/tests/cppunit/types/geo_test.cc
index d3c7a1a2..32041f0f 100644
--- a/tests/cppunit/types/geo_test.cc
+++ b/tests/cppunit/types/geo_test.cc
@@ -28,7 +28,7 @@
 
 class RedisGeoTest : public TestBase {
  protected:
-  RedisGeoTest() { geo_ = std::make_unique<redis::Geo>(storage_, "geo_ns"); }
+  RedisGeoTest() { geo_ = std::make_unique<redis::Geo>(storage_.get(), 
"geo_ns"); }
   ~RedisGeoTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/hash_test.cc b/tests/cppunit/types/hash_test.cc
index 985b3289..5116f5ee 100644
--- a/tests/cppunit/types/hash_test.cc
+++ b/tests/cppunit/types/hash_test.cc
@@ -32,7 +32,7 @@
 
 class RedisHashTest : public TestBase {
  protected:
-  explicit RedisHashTest() { hash_ = std::make_unique<redis::Hash>(storage_, 
"hash_ns"); }
+  explicit RedisHashTest() { hash_ = 
std::make_unique<redis::Hash>(storage_.get(), "hash_ns"); }
   ~RedisHashTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/json_test.cc b/tests/cppunit/types/json_test.cc
index ee76a65c..82bfa944 100644
--- a/tests/cppunit/types/json_test.cc
+++ b/tests/cppunit/types/json_test.cc
@@ -28,7 +28,7 @@
 
 class RedisJsonTest : public TestBase {
  protected:
-  explicit RedisJsonTest() : json_(std::make_unique<redis::Json>(storage_, 
"json_ns")) {}
+  explicit RedisJsonTest() : 
json_(std::make_unique<redis::Json>(storage_.get(), "json_ns")) {}
   ~RedisJsonTest() override = default;
 
   void SetUp() override { key_ = "test_json_key"; }
diff --git a/tests/cppunit/types/list_test.cc b/tests/cppunit/types/list_test.cc
index 712b9b15..643bdce9 100644
--- a/tests/cppunit/types/list_test.cc
+++ b/tests/cppunit/types/list_test.cc
@@ -27,7 +27,7 @@
 
 class RedisListTest : public TestBase {
  protected:
-  explicit RedisListTest() { list_ = std::make_unique<redis::List>(storage_, 
"list_ns"); }
+  explicit RedisListTest() { list_ = 
std::make_unique<redis::List>(storage_.get(), "list_ns"); }
   ~RedisListTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/set_test.cc b/tests/cppunit/types/set_test.cc
index 1946458a..5e5c774b 100644
--- a/tests/cppunit/types/set_test.cc
+++ b/tests/cppunit/types/set_test.cc
@@ -27,7 +27,7 @@
 
 class RedisSetTest : public TestBase {
  protected:
-  explicit RedisSetTest() { set_ = std::make_unique<redis::Set>(storage_, 
"set_ns"); }
+  explicit RedisSetTest() { set_ = 
std::make_unique<redis::Set>(storage_.get(), "set_ns"); }
   ~RedisSetTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/sortedint_test.cc 
b/tests/cppunit/types/sortedint_test.cc
index 2ecacff8..79f0da78 100644
--- a/tests/cppunit/types/sortedint_test.cc
+++ b/tests/cppunit/types/sortedint_test.cc
@@ -27,7 +27,7 @@
 
 class RedisSortedintTest : public TestBase {
  protected:
-  explicit RedisSortedintTest() { sortedint_ = 
std::make_unique<redis::Sortedint>(storage_, "sortedint_ns"); }
+  explicit RedisSortedintTest() { sortedint_ = 
std::make_unique<redis::Sortedint>(storage_.get(), "sortedint_ns"); }
   ~RedisSortedintTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/stream_test.cc 
b/tests/cppunit/types/stream_test.cc
index 993fff0e..60d812f5 100644
--- a/tests/cppunit/types/stream_test.cc
+++ b/tests/cppunit/types/stream_test.cc
@@ -40,7 +40,7 @@ class RedisStreamTest : public TestBase {  // NOLINT
   }
 
  protected:
-  RedisStreamTest() : name_("test_stream") { stream_ = new 
redis::Stream(storage_, "stream_ns"); }
+  RedisStreamTest() : name_("test_stream") { stream_ = new 
redis::Stream(storage_.get(), "stream_ns"); }
 
   ~RedisStreamTest() override { delete stream_; }
 
diff --git a/tests/cppunit/types/string_test.cc 
b/tests/cppunit/types/string_test.cc
index 631b4ec8..74a3d2da 100644
--- a/tests/cppunit/types/string_test.cc
+++ b/tests/cppunit/types/string_test.cc
@@ -27,7 +27,7 @@
 
 class RedisStringTest : public TestBase {
  protected:
-  explicit RedisStringTest() { string_ = 
std::make_unique<redis::String>(storage_, "string_ns"); }
+  explicit RedisStringTest() { string_ = 
std::make_unique<redis::String>(storage_.get(), "string_ns"); }
   ~RedisStringTest() override = default;
 
   void SetUp() override {
diff --git a/tests/cppunit/types/zset_test.cc b/tests/cppunit/types/zset_test.cc
index da2ce714..79c87942 100644
--- a/tests/cppunit/types/zset_test.cc
+++ b/tests/cppunit/types/zset_test.cc
@@ -27,7 +27,7 @@
 
 class RedisZSetTest : public TestBase {
  protected:
-  RedisZSetTest() { zset_ = std::make_unique<redis::ZSet>(storage_, 
"zset_ns"); }
+  RedisZSetTest() { zset_ = std::make_unique<redis::ZSet>(storage_.get(), 
"zset_ns"); }
   ~RedisZSetTest() override = default;
 
   void SetUp() override {


Reply via email to