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

harishgokul01 pushed a commit to branch release-bugs
in repository https://gitbox.apache.org/repos/asf/incubator-resilientdb.git


The following commit(s) were added to refs/heads/release-bugs by this push:
     new 1d150c47 Test cases to check ReadFromConfigFile
1d150c47 is described below

commit 1d150c4747ccab157dcba0c3d7f952ec2ac36c98
Author: harish876 <[email protected]>
AuthorDate: Mon Nov 10 18:56:12 2025 +0000

    Test cases to check ReadFromConfigFile
---
 platform/config/BUILD                     |   2 +
 platform/config/resdb_config_test.cpp     | 230 ++++++++++++++++--------------
 platform/config/resdb_config_utils.h      |  50 +++----
 service/tools/config/client.config        |   1 +
 service/tools/config/generate_config.sh   |   7 +-
 service/tools/config/server.config        |   4 -
 service/tools/config/server/server.config | 120 +++++-----------
 7 files changed, 188 insertions(+), 226 deletions(-)

diff --git a/platform/config/BUILD b/platform/config/BUILD
index cef76ade..0955ada7 100644
--- a/platform/config/BUILD
+++ b/platform/config/BUILD
@@ -31,8 +31,10 @@ cc_library(
 cc_test(
     name = "resdb_config_test",
     srcs = ["resdb_config_test.cpp"],
+    timeout = "short",
     deps = [
         ":resdb_config",
+        ":resdb_config_utils",
         "//common/test:test_main",
     ],
 )
diff --git a/platform/config/resdb_config_test.cpp 
b/platform/config/resdb_config_test.cpp
index f480b11f..089f24ac 100644
--- a/platform/config/resdb_config_test.cpp
+++ b/platform/config/resdb_config_test.cpp
@@ -17,110 +17,126 @@
  * under the License.
  */
 
-#include "platform/config/resdb_config.h"
-
-#include <google/protobuf/util/message_differencer.h>
-#include <gtest/gtest.h>
-
-#include <thread>
-
-#include "common/test/test_macros.h"
-#include "gmock/gmock.h"
-
-namespace resdb {
-namespace {
-
-using ::google::protobuf::util::MessageDifferencer;
-using ::resdb::testing::EqualsProto;
-
-MATCHER_P(EqualsReplicas, replicas, "") {
-  if (arg.size() != replicas.size()) {
-    return false;
-  }
-  for (size_t i = 0; i < replicas.size(); ++i) {
-    if (!MessageDifferencer::Equals(replicas[i], arg[i])) {
-      return false;
-    }
-  }
-  return true;
-}
-
-ReplicaInfo GenerateReplicaInfo(const std::string& ip, int port) {
-  ReplicaInfo info;
-  info.set_ip(ip);
-  info.set_port(port);
-  return info;
-}
-
-TEST(TcpSocket, ResDBConfig) {
-  ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
-
-  std::vector<ReplicaInfo> replicas;
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
-
-  ResDBConfig config(replicas, self_info);
-
-  EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
-  EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
-  EXPECT_EQ(config.GetReplicaNum(), replicas.size());
-  EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
-}
-
-TEST(TcpSocket, ResDBConfigWith5Replicas) {
-  ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
-
-  std::vector<ReplicaInfo> replicas;
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1239));
-
-  ResDBConfig config(replicas, self_info);
-
-  EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
-  EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
-  EXPECT_EQ(config.GetReplicaNum(), replicas.size());
-  EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
-}
-
-TEST(TcpSocket, ResDBConfigWith6Replicas) {
-  ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
-
-  std::vector<ReplicaInfo> replicas;
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1239));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1240));
-
-  ResDBConfig config(replicas, self_info);
-
-  EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
-  EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
-  EXPECT_EQ(config.GetReplicaNum(), replicas.size());
-  EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
-}
-
-TEST(TcpSocket, ResDBConfigWith2Replicas) {
-  ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
-
-  std::vector<ReplicaInfo> replicas;
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
-  replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
-
-  ResDBConfig config(replicas, self_info);
-
-  EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
-  EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
-  EXPECT_EQ(config.GetReplicaNum(), replicas.size());
-  EXPECT_EQ(config.GetMinDataReceiveNum(), 1);
-}
-
-}  // namespace
-
-}  // namespace resdb
+ #include "platform/config/resdb_config.h"
+ #include "platform/config/resdb_config_utils.h"
+ #include <filesystem>
+ 
+ #include <google/protobuf/util/message_differencer.h>
+ #include <gtest/gtest.h>
+ 
+ 
+ #include "common/test/test_macros.h"
+ #include "gmock/gmock.h"
+ 
+ namespace resdb {
+ namespace {
+ 
+ using ::google::protobuf::util::MessageDifferencer;
+ using ::resdb::testing::EqualsProto;
+ using ::resdb::ReadConfig;
+ using ::resdb::ReadConfigFromFile;
+ 
+ MATCHER_P(EqualsReplicas, replicas, "") {
+   if (arg.size() != replicas.size()) {
+     return false;
+   }
+   for (size_t i = 0; i < replicas.size(); ++i) {
+     if (!MessageDifferencer::Equals(replicas[i], arg[i])) {
+       return false;
+     }
+   }
+   return true;
+ }
+ 
+ ReplicaInfo GenerateReplicaInfo(const std::string& ip, int port) {
+   ReplicaInfo info;
+   info.set_ip(ip);
+   info.set_port(port);
+   return info;
+ }
+ 
+ TEST(TcpSocket, ResDBConfig) {
+   ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
+ 
+   std::vector<ReplicaInfo> replicas;
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
+ 
+   ResDBConfig config(replicas, self_info);
+ 
+   EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
+   EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
+   EXPECT_EQ(config.GetReplicaNum(), replicas.size());
+   EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
+ }
+ 
+ TEST(TcpSocket, ResDBConfigWith5Replicas) {
+   ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
+ 
+   std::vector<ReplicaInfo> replicas;
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1239));
+ 
+   ResDBConfig config(replicas, self_info);
+ 
+   EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
+   EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
+   EXPECT_EQ(config.GetReplicaNum(), replicas.size());
+   EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
+ }
+ 
+ TEST(TcpSocket, ResDBConfigWith6Replicas) {
+   ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
+ 
+   std::vector<ReplicaInfo> replicas;
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1237));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1238));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1239));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1240));
+ 
+   ResDBConfig config(replicas, self_info);
+ 
+   EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
+   EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
+   EXPECT_EQ(config.GetReplicaNum(), replicas.size());
+   EXPECT_EQ(config.GetMinDataReceiveNum(), 3);
+ }
+ 
+ TEST(TcpSocket, ResDBConfigWith2Replicas) {
+   ReplicaInfo self_info = GenerateReplicaInfo("127.0.0.1", 1234);
+ 
+   std::vector<ReplicaInfo> replicas;
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1235));
+   replicas.push_back(GenerateReplicaInfo("127.0.0,1", 1236));
+ 
+   ResDBConfig config(replicas, self_info);
+ 
+   EXPECT_THAT(config.GetReplicaInfos(), EqualsReplicas(replicas));
+   EXPECT_THAT(config.GetSelfInfo(), EqualsProto(self_info));
+   EXPECT_EQ(config.GetReplicaNum(), replicas.size());
+   EXPECT_EQ(config.GetMinDataReceiveNum(), 1);
+ }
+ 
+ TEST(TcpSocket, ReadConfigFromFile) {
+   std::string config_file = 
"/home/ubuntu/harish_work/incubator-resilientdb/service/tools/config/server/server.config";
 //TODO: make dynamic
+ 
+   ResConfigData config_data = ReadConfigFromFile(config_file);
+   ResDBConfig config = ResDBConfig(config_data, ReplicaInfo(), KeyInfo(), 
CertificateInfo());
+ 
+   EXPECT_EQ(config_data.region(0).replica_info_size(), 4) 
+       << "Should have 4 replicas as per server.config";
+   EXPECT_EQ(config_data.region(0).replica_info(0).id(), 1);
+   EXPECT_EQ(config_data.region(0).replica_info(0).ip(), "127.0.0.1");
+ }
+ 
+ }  // namespace
+ 
+ }  // namespace resdb
+ 
\ No newline at end of file
diff --git a/platform/config/resdb_config_utils.h 
b/platform/config/resdb_config_utils.h
index 15d77a4b..8746d06c 100644
--- a/platform/config/resdb_config_utils.h
+++ b/platform/config/resdb_config_utils.h
@@ -17,27 +17,29 @@
  * under the License.
  */
 
-#pragma once
-
-#include <optional>
-
-#include "platform/config/resdb_config.h"
-
-namespace resdb {
-
-std::vector<ReplicaInfo> ReadConfig(const std::string& file_name);
-ReplicaInfo GenerateReplicaInfo(int id, const std::string& ip, int port);
-
-typedef std::function<std::unique_ptr<ResDBConfig>(
-    const ResConfigData& config_data, const ReplicaInfo& self_info,
-    const KeyInfo& private_key, const CertificateInfo& public_key_cert_info)>
-    ConfigGenFunc;
-
-std::unique_ptr<ResDBConfig> GenerateResDBConfig(
-    const std::string& config_file, const std::string& private_key_file,
-    const std::string& cert_file,
-    std::optional<ReplicaInfo> self_info = std::nullopt,
-    std::optional<ConfigGenFunc> = std::nullopt);
-
-ResDBConfig GenerateResDBConfig(const std::string& config_file);
-}  // namespace resdb
+ #pragma once
+
+ #include <optional>
+ 
+ #include "platform/config/resdb_config.h"
+ 
+ namespace resdb {
+ 
+ std::vector<ReplicaInfo> ReadConfig(const std::string& file_name);
+ ResConfigData ReadConfigFromFile(const std::string& file_name);
+ ReplicaInfo GenerateReplicaInfo(int id, const std::string& ip, int port);
+ 
+ typedef std::function<std::unique_ptr<ResDBConfig>(
+     const ResConfigData& config_data, const ReplicaInfo& self_info,
+     const KeyInfo& private_key, const CertificateInfo& public_key_cert_info)>
+     ConfigGenFunc;
+ 
+ std::unique_ptr<ResDBConfig> GenerateResDBConfig(
+     const std::string& config_file, const std::string& private_key_file,
+     const std::string& cert_file,
+     std::optional<ReplicaInfo> self_info = std::nullopt,
+     std::optional<ConfigGenFunc> = std::nullopt);
+ 
+ ResDBConfig GenerateResDBConfig(const std::string& config_file);
+ }  // namespace resdb
+ 
\ No newline at end of file
diff --git a/service/tools/config/client.config 
b/service/tools/config/client.config
new file mode 100644
index 00000000..8b137891
--- /dev/null
+++ b/service/tools/config/client.config
@@ -0,0 +1 @@
+
diff --git a/service/tools/config/generate_config.sh 
b/service/tools/config/generate_config.sh
index d0baa7f5..8d9c29a7 100755
--- a/service/tools/config/generate_config.sh
+++ b/service/tools/config/generate_config.sh
@@ -40,7 +40,7 @@ ADMIN_PRIVATE_KEY=${admin_key_path}/admin.key.pri
 ADMIN_PUBLIC_KEY=${admin_key_path}/admin.key.pub
 
 CERT_TOOLS_BIN=${base_path}/bazel-bin/tools/certificate_tools
-CONFIG_TOOLS_BIN=${base_path}/bazel-bin/tools/generate_region_config_cc
+CONFIG_TOOLS_BIN=${base_path}/bazel-bin/tools/generate_region_config
 KEYGEN_BIN=${base_path}/bazel-bin/tools/key_generator_tools
 
 USERNAME=ubuntu
@@ -99,9 +99,9 @@ done
 TEMPLATE_JSON=${output_path}/server/server.config
 
 if [ -f "$TEMPLATE_JSON" ]; then
-  ${CONFIG_TOOLS_BIN} ./server.config ./server.config.json ${TEMPLATE_JSON}
+  python3 ${CONFIG_TOOLS_BIN} ./server.config ./server.config.json 
${TEMPLATE_JSON}
 else
-  ${CONFIG_TOOLS_BIN} ./server.config ./server.config.json
+  python3 ${CONFIG_TOOLS_BIN} ./server.config ./server.config.json
 fi
 
 mkdir -p ${output_path}/server
@@ -109,4 +109,3 @@ cp server.config.json ${output_path}/server/server.json
 mv server.config.json ${output_path}/server/server.config
 mv client.config ${output_path}/interface/service.config
 echo "config done:" ${output_path}/server/server.config
-
diff --git a/service/tools/config/server.config 
b/service/tools/config/server.config
index a68d1cec..8b137891 100644
--- a/service/tools/config/server.config
+++ b/service/tools/config/server.config
@@ -1,5 +1 @@
 
-1 127.0.0.1 10001
-2 127.0.0.1 10002
-3 127.0.0.1 10003
-4 127.0.0.1 10004
diff --git a/service/tools/config/server/server.config 
b/service/tools/config/server/server.config
index e0e6fb30..ce4152d9 100644
--- a/service/tools/config/server/server.config
+++ b/service/tools/config/server/server.config
@@ -1,91 +1,37 @@
 {
- "region": [
-  {
-   "replica_info": [
-    {
-     "id": "1",
-     "ip": "127.0.0.1",
-     "port": 10001
-    },
-    {
-     "id": "2",
-     "ip": "127.0.0.1",
-     "port": 10002
-    },
-    {
-     "id": "3",
-     "ip": "127.0.0.1",
-     "port": 10003
-    },
-    {
-     "id": "4",
-     "ip": "127.0.0.1",
-     "port": 10004
-    }
-   ],
-   "region_id": 0
+  region : {
+    replica_info : {
+      id:1,
+      ip:"127.0.0.1",
+      port: 10001,
+    },
+    replica_info : {
+      id:2,
+      ip:"127.0.0.1",
+      port: 10002,
+    },
+    replica_info : {
+      id:3,
+      ip:"127.0.0.1",
+      port: 10003,
+    },
+    replica_info : {
+      id:4,
+      ip:"127.0.0.1",
+      port: 10004,
+    },
+    region_id: 1,
   },
-  {
-   "replica_info": [
-    {
-     "id": "1",
-     "ip": "127.0.0.1",
-     "port": 10001
-    },
-    {
-     "id": "2",
-     "ip": "127.0.0.1",
-     "port": 10002
-    },
-    {
-     "id": "3",
-     "ip": "127.0.0.1",
-     "port": 10003
-    },
-    {
-     "id": "4",
-     "ip": "127.0.0.1",
-     "port": 10004
-    }
-   ],
-   "region_id": 0
+  self_region_id:1,
+  leveldb_info : {
+    write_buffer_size_mb:128,
+    write_batch_size:1,
+    enable_block_cache: true,
+    block_cache_capacity: 100
   },
-  {
-   "replica_info": [
-    {
-     "id": "1",
-     "ip": "127.0.0.1",
-     "port": 10001
-    },
-    {
-     "id": "2",
-     "ip": "127.0.0.1",
-     "port": 10002
-    },
-    {
-     "id": "3",
-     "ip": "127.0.0.1",
-     "port": 10003
-    },
-    {
-     "id": "4",
-     "ip": "127.0.0.1",
-     "port": 10004
-    }
-   ],
-   "region_id": 1
-  }
- ],
- "self_region_id": 1,
- "leveldb_info": {
-  "write_buffer_size_mb": 128,
-  "write_batch_size": 1,
-  "path": "",
-  "enable_block_cache": true,
-  "block_cache_capacity": 100
- },
- "enable_viewchange": false,
- "require_txn_validation": true,
- "enable_resview": true,
- "enable_faulty_switch": false
+  require_txn_validation:true,
+  enable_viewchange:false,
+  enable_resview:true,
+  enable_faulty_switch:false
 }
+

Reply via email to