22#include <gtest/gtest.h>
31TEST(AsyncReplicaClientTest, SendMessage) {
32 std::promise<bool> bc;
33 std::future<bool> bc_done = bc.get_future();
35 std::thread svr_thead = std::thread([&]() {
37 svr_socket.Listen(
"127.0.0.1", 1234);
38 auto client_socket = svr_socket.Accept();
41 int ret = client_socket->Recv((
void **)&buf, &len);
43 EXPECT_EQ(std::string(buf, len),
"test");
46 client_socket->Close();
50 boost::asio::io_service io_service;
51 std::thread
t([&]() { io_service.run(); });
53 boost::asio::io_service::work *work =
54 new boost::asio::io_service::work(io_service);
55 AsyncReplicaClient client(&io_service,
"127.0.0.1", 1234);
56 EXPECT_EQ(client.SendMessage(
"test"), 0);
64TEST(AsyncReplicaClientTest, SendLargeMessage) {
65 std::promise<bool> bc;
66 std::future<bool> bc_done = bc.get_future();
68 std::thread svr_thead = std::thread([&]() {
70 svr_socket.Listen(
"127.0.0.1", 1234);
71 auto client_socket = svr_socket.Accept();
74 int ret = client_socket->Recv((
void **)&buf, &len);
75 EXPECT_EQ(ret, 1000000);
76 EXPECT_EQ(std::string(buf, len), std::string(1000000,
't'));
79 client_socket->Close();
83 boost::asio::io_service io_service;
84 std::thread
t([&]() { io_service.run(); });
86 boost::asio::io_service::work *work =
87 new boost::asio::io_service::work(io_service);
88 AsyncReplicaClient client(&io_service,
"127.0.0.1", 1234);
89 EXPECT_EQ(client.SendMessage(std::string(1000000,
't')), 0);
97TEST(AsyncReplicaClientTest, MultiSendMessage) {
98 std::promise<bool> bc;
99 std::future<bool> bc_done = bc.get_future();
101 std::thread svr_thead = std::thread([&]() {
102 TcpSocket svr_TcpSocket;
103 svr_TcpSocket.Listen(
"127.0.0.1", 1234);
104 auto client_socket = svr_TcpSocket.Accept();
107 for (
int i = 0; i < 10; ++i) {
108 int ret = client_socket->Recv((
void **)&buf, &len);
110 EXPECT_EQ(std::string(buf, len),
"test");
116 boost::asio::io_service io_service;
117 std::thread
t([&]() { io_service.run(); });
118 boost::asio::io_service::work *work =
119 new boost::asio::io_service::work(io_service);
120 AsyncReplicaClient client(&io_service,
"127.0.0.1", 1234);
121 for (
int i = 0; i < 10; ++i) {
122 EXPECT_EQ(client.SendMessage(
"test"), 0);
131TEST(AsyncReplicaClientTest, Reconnect) {
132 std::promise<bool> bc1, bc2;
133 std::future<bool> bc1_done = bc1.get_future(), bc2_done = bc2.get_future();
135 std::thread svr_thead = std::thread([&]() {
136 TcpSocket svr_TcpSocket;
137 svr_TcpSocket.Listen(
"127.0.0.1", 1234);
138 for (
int j = 0; j < 2; ++j) {
139 auto client_socket = svr_TcpSocket.Accept();
142 int ret = client_socket->Recv((
void **)&buf, &len);
144 EXPECT_EQ(std::string(buf, len),
"test");
145 client_socket->Close();
147 if (j == 0) bc2.set_value(
true);
152 boost::asio::io_service io_service;
153 std::thread
t([&]() { io_service.run(); });
154 boost::asio::io_service::work *work =
155 new boost::asio::io_service::work(io_service);
156 AsyncReplicaClient client(&io_service,
"127.0.0.1", 1234);
157 for (
int i = 0; i < 2; ++i) {
158 EXPECT_EQ(client.SendMessage(
"test"), 0);
159 if (i == 0) bc2_done.get();
TEST(NetworkUtilsTest, GetDNSName)