@@ -31,6 +31,8 @@ class BrRestoreRegionMetaTest;
3131
3232static bool GetRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test,
3333 std::shared_ptr<dingodb::pb::common::Region> region);
34+
35+ static void TestCreateRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test, const std::string& file_name);
3436class BrRestoreRegionMetaTest : public testing ::Test {
3537 protected:
3638 static void SetUpTestSuite () {
@@ -50,14 +52,15 @@ class BrRestoreRegionMetaTest : public testing::Test {
5052
5153 friend bool GetRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test,
5254 std::shared_ptr<dingodb::pb::common::Region> region);
55+ friend void TestCreateRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test,
56+ const std::string& file_name);
5357
54- inline static std::shared_ptr<br::RestoreRegionMeta> restore_region_meta;
5558 inline static br::ServerInteractionPtr coordinator_interaction;
56- inline static std::shared_ptr<dingodb::pb::common::Region> region;
5759 inline static int64_t replica_num = 0 ;
5860 inline static std::string backup_meta_region_name;
5961 inline static int64_t create_region_timeout_s = 60 ;
60- inline static std::string base_dir = " /home/server/work/dingo-store/build/bin/backup2/" ;
62+ inline static std::string base_dir = " ./backup2/" ;
63+ inline static std::string statics_regions;
6164};
6265
6366static bool GetRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test,
@@ -83,8 +86,7 @@ static bool GetRegion(const BrRestoreRegionMetaTest& br_restore_region_meta_test
8386 EXPECT_EQ (region->id (), response.region ().id ());
8487 EXPECT_EQ (region->region_type (), response.region ().region_type ());
8588
86- // coordinator bug. TODO fix.
87- // EXPECT_EQ(region->definition().id(), response.region().definition().id());
89+ EXPECT_EQ (region->definition ().id (), response.region ().definition ().id ());
8890 EXPECT_EQ (region->definition ().name (), response.region ().definition ().name ());
8991 EXPECT_EQ (region->definition ().range ().start_key (), response.region ().definition ().range ().start_key ());
9092 EXPECT_EQ (region->definition ().range ().end_key (), response.region ().definition ().range ().end_key ());
@@ -95,27 +97,26 @@ static bool GetRegion(const BrRestoreRegionMetaTest& br_restore_region_meta_test
9597 EXPECT_EQ (region->definition ().index_id (), response.region ().definition ().index_id ());
9698 EXPECT_EQ (region->definition ().part_id (), response.region ().definition ().part_id ());
9799 EXPECT_EQ (region->definition ().tenant_id (), response.region ().definition ().tenant_id ());
98- if (region->definition ().has_index_parameter () && response.region ().definition ().index_parameter ().index_type () !=
99- dingodb::pb::common::IndexType::INDEX_TYPE_NONE) {
100+ if (region->definition ().has_index_parameter ()) {
100101 EXPECT_EQ (region->definition ().index_parameter ().index_type (),
101102 response.region ().definition ().index_parameter ().index_type ());
102103
103104 if (region->definition ().index_parameter ().has_vector_index_parameter ()) {
104- google::protobuf::util::MessageDifferencer::Equals (
105+ EXPECT_TRUE ( google::protobuf::util::MessageDifferencer::Equals (
105106 region->definition ().index_parameter ().vector_index_parameter (),
106- response.region ().definition ().index_parameter ().vector_index_parameter ());
107+ response.region ().definition ().index_parameter ().vector_index_parameter ())) ;
107108 }
108109
109110 if (region->definition ().index_parameter ().has_scalar_index_parameter ()) {
110- google::protobuf::util::MessageDifferencer::Equals (
111+ EXPECT_TRUE ( google::protobuf::util::MessageDifferencer::Equals (
111112 region->definition ().index_parameter ().scalar_index_parameter (),
112- response.region ().definition ().index_parameter ().scalar_index_parameter ());
113+ response.region ().definition ().index_parameter ().scalar_index_parameter ())) ;
113114 }
114115
115116 if (region->definition ().index_parameter ().has_document_index_parameter ()) {
116- google::protobuf::util::MessageDifferencer::Equals (
117+ EXPECT_TRUE ( google::protobuf::util::MessageDifferencer::Equals (
117118 region->definition ().index_parameter ().document_index_parameter (),
118- response.region ().definition ().index_parameter ().document_index_parameter ());
119+ response.region ().definition ().index_parameter ().document_index_parameter ())) ;
119120 }
120121
121122 EXPECT_EQ (region->definition ().index_parameter ().origin_keys_size (),
@@ -138,59 +139,28 @@ static bool GetRegion(const BrRestoreRegionMetaTest& br_restore_region_meta_test
138139 return true ;
139140}
140141
141- TEST_F (BrRestoreRegionMetaTest, TestIndexRegionSdkData) {
142- const std::string file_name = " index_region_sdk_data.sst" ;
143- const std::string file_path = base_dir + file_name;
144- backup_meta_region_name = file_name;
142+ static void TestCreateRegion (const BrRestoreRegionMetaTest& br_restore_region_meta_test, const std::string& file_name) {
143+ const std::string file_path = br_restore_region_meta_test.base_dir + file_name;
144+ br_restore_region_meta_test.backup_meta_region_name = file_name;
145145
146146 std::shared_ptr<br::SstFileReader> reader_sst = std::make_shared<br::SstFileReader>();
147147
148148 std::map<std::string, std::string> kvs;
149149 auto status = reader_sst->ReadFile (file_path, kvs);
150150 EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
151151
152- for (const auto & [region_id, region_ptr] : kvs) {
153- region = std::make_shared<dingodb::pb::common::Region>();
154- auto ret = region->ParseFromString (region_ptr);
155- EXPECT_TRUE (ret);
156-
157- LOG (INFO) << region->DebugString ();
158-
159- restore_region_meta = std::make_shared<br::RestoreRegionMeta>(coordinator_interaction, region, replica_num,
160- backup_meta_region_name, create_region_timeout_s);
152+ br_restore_region_meta_test.statics_regions += " \n " + file_name + " : [" ;
161153
162- status = restore_region_meta->Init ();
163- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
164- status = restore_region_meta->Run ();
165- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
166- status = restore_region_meta->Finish ();
167- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
168-
169- bool is_true = GetRegion (*this , region);
170- EXPECT_TRUE (is_true);
171- }
172- }
173-
174- TEST_F (BrRestoreRegionMetaTest, TestIndexRegionSqlData) {
175- const std::string file_name = " index_region_sql_data.sst" ;
176- const std::string file_path = base_dir + file_name;
177- backup_meta_region_name = file_name;
178-
179- std::shared_ptr<br::SstFileReader> reader_sst = std::make_shared<br::SstFileReader>();
180-
181- std::map<std::string, std::string> kvs;
182- auto status = reader_sst->ReadFile (file_path, kvs);
183- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
154+ int i = 0 ;
184155
185156 for (const auto & [region_id, region_ptr] : kvs) {
186- region = std::make_shared<dingodb::pb::common::Region>();
157+ auto region = std::make_shared<dingodb::pb::common::Region>();
187158 auto ret = region->ParseFromString (region_ptr);
188159 EXPECT_TRUE (ret);
189160
190- LOG (INFO) << region->DebugString ();
191-
192- restore_region_meta = std::make_shared<br::RestoreRegionMeta>(coordinator_interaction, region, replica_num,
193- backup_meta_region_name, create_region_timeout_s);
161+ auto restore_region_meta = std::make_shared<br::RestoreRegionMeta>(
162+ br_restore_region_meta_test.coordinator_interaction , region, br_restore_region_meta_test.replica_num ,
163+ br_restore_region_meta_test.backup_meta_region_name , br_restore_region_meta_test.create_region_timeout_s );
194164
195165 status = restore_region_meta->Init ();
196166 EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
@@ -199,110 +169,59 @@ TEST_F(BrRestoreRegionMetaTest, TestIndexRegionSqlData) {
199169 status = restore_region_meta->Finish ();
200170 EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
201171
202- bool is_true = GetRegion (* this , region);
172+ bool is_true = GetRegion (br_restore_region_meta_test , region);
203173 EXPECT_TRUE (is_true);
174+ if (0 == i) {
175+ br_restore_region_meta_test.statics_regions += fmt::format (" {}" , region->id ());
176+ } else {
177+ if (i % 16 == 0 ) {
178+ br_restore_region_meta_test.statics_regions += fmt::format (" \n {}" , region->id ());
179+ } else {
180+ br_restore_region_meta_test.statics_regions += fmt::format (" {}" , region->id ());
181+ }
182+ }
183+ i++;
204184 }
185+ br_restore_region_meta_test.statics_regions += " ]" ;
205186}
206187
207- TEST_F (BrRestoreRegionMetaTest, TestStoreRegionSdkData) {
208- const std::string file_name = " store_region_sdk_data.sst" ;
209- const std::string file_path = base_dir + file_name;
210- backup_meta_region_name = file_name;
211-
212- std::shared_ptr<br::SstFileReader> reader_sst = std::make_shared<br::SstFileReader>();
213-
214- std::map<std::string, std::string> kvs;
215- auto status = reader_sst->ReadFile (file_path, kvs);
216- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
217-
218- for (const auto & [region_id, region_ptr] : kvs) {
219- region = std::make_shared<dingodb::pb::common::Region>();
220- auto ret = region->ParseFromString (region_ptr);
221- EXPECT_TRUE (ret);
188+ TEST_F (BrRestoreRegionMetaTest, TestDocumentRegionSdkData) {
189+ const std::string& file_name = " document_region_sdk_data.sst" ;
190+ TestCreateRegion (*this , file_name);
191+ }
222192
223- LOG (INFO) << region->DebugString ();
193+ TEST_F (BrRestoreRegionMetaTest, TestDocumentRegionSqlData) {
194+ const std::string& file_name = " document_region_sql_data.sst" ;
195+ TestCreateRegion (*this , file_name);
196+ }
224197
225- restore_region_meta = std::make_shared<br::RestoreRegionMeta>(coordinator_interaction, region, replica_num,
226- backup_meta_region_name, create_region_timeout_s);
198+ TEST_F (BrRestoreRegionMetaTest, TestIndexRegionSdkData) {
199+ const std::string& file_name = " index_region_sdk_data.sst" ;
200+ TestCreateRegion (*this , file_name);
201+ }
227202
228- status = restore_region_meta->Init ();
229- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
230- status = restore_region_meta->Run ();
231- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
232- status = restore_region_meta->Finish ();
233- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
203+ TEST_F (BrRestoreRegionMetaTest, TestIndexRegionSqlData) {
204+ const std::string& file_name = " index_region_sql_data.sst" ;
205+ TestCreateRegion (*this , file_name);
206+ }
234207
235- bool is_true = GetRegion (* this , region);
236- EXPECT_TRUE (is_true) ;
237- }
208+ TEST_F (BrRestoreRegionMetaTest, TestStoreRegionSdkData) {
209+ const std::string& file_name = " store_region_sdk_data.sst " ;
210+ TestCreateRegion (* this , file_name);
238211}
239212
240213TEST_F (BrRestoreRegionMetaTest, TestStoreRegionSqlData) {
241- const std::string file_name = " store_region_sql_data.sst" ;
242- const std::string file_path = base_dir + file_name;
243- backup_meta_region_name = file_name;
244-
245- std::shared_ptr<br::SstFileReader> reader_sst = std::make_shared<br::SstFileReader>();
246-
247- std::map<std::string, std::string> kvs;
248- auto status = reader_sst->ReadFile (file_path, kvs);
249- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
250-
251- for (const auto & [region_id, region_ptr] : kvs) {
252- region = std::make_shared<dingodb::pb::common::Region>();
253- auto ret = region->ParseFromString (region_ptr);
254- EXPECT_TRUE (ret);
255-
256- LOG (INFO) << region->DebugString ();
257-
258- restore_region_meta = std::make_shared<br::RestoreRegionMeta>(coordinator_interaction, region, replica_num,
259- backup_meta_region_name, create_region_timeout_s);
260-
261- status = restore_region_meta->Init ();
262- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
263- status = restore_region_meta->Run ();
264- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
265- status = restore_region_meta->Finish ();
266- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
267-
268- bool is_true = GetRegion (*this , region);
269- EXPECT_TRUE (is_true);
270- }
214+ const std::string& file_name = " store_region_sql_data.sst" ;
215+ TestCreateRegion (*this , file_name);
271216}
272217
273218TEST_F (BrRestoreRegionMetaTest, TestStoreRegionSqlMeta) {
274- const std::string file_name = " store_region_sql_meta.sst" ;
275- const std::string file_path = base_dir + file_name;
276- backup_meta_region_name = file_name;
277-
278- std::shared_ptr<br::SstFileReader> reader_sst = std::make_shared<br::SstFileReader>();
279-
280- std::map<std::string, std::string> kvs;
281- auto status = reader_sst->ReadFile (file_path, kvs);
282- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
283-
284- for (const auto & [region_id, region_ptr] : kvs) {
285- region = std::make_shared<dingodb::pb::common::Region>();
286- auto ret = region->ParseFromString (region_ptr);
287- EXPECT_TRUE (ret);
288-
289- LOG (INFO) << region->DebugString ();
290-
291- restore_region_meta = std::make_shared<br::RestoreRegionMeta>(coordinator_interaction, region, replica_num,
292- backup_meta_region_name, create_region_timeout_s);
293-
294- status = restore_region_meta->Init ();
295- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
296- status = restore_region_meta->Run ();
297- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
298- status = restore_region_meta->Finish ();
299- EXPECT_EQ (status.error_code (), dingodb::pb::error::OK);
300-
301- bool is_true = GetRegion (*this , region);
302- EXPECT_TRUE (is_true);
303- }
219+ const std::string& file_name = " store_region_sql_meta.sst" ;
220+ TestCreateRegion (*this , file_name);
304221}
305222
223+ TEST_F (BrRestoreRegionMetaTest, StaticsCreateRegion) { LOG (INFO) << statics_regions; }
224+
306225TEST_F (BrRestoreRegionMetaTest, TestHasValue) {
307226 dingodb::pb::common::Region region;
308227 region.set_id (10 );
0 commit comments