add tests for server

This commit is contained in:
qicosmos
2025-10-09 17:47:42 +08:00
parent 2f35aa329f
commit 8b2f4e2b61
2 changed files with 33 additions and 5 deletions
-4
View File
@@ -135,10 +135,6 @@ private:
auto it = endpoints.begin(); auto it = endpoints.begin();
if (it == endpoints.end()) {
return std::make_error_code(std::errc::bad_address);
}
auto endpoint = it->endpoint(); auto endpoint = it->endpoint();
acceptor_.open(endpoint.protocol(), ec); acceptor_.open(endpoint.protocol(), ec);
if (ec) { if (ec) {
+33 -1
View File
@@ -400,6 +400,8 @@ TEST_CASE("test reconnect") {
rpc_server server("127.0.0.1:9004"); rpc_server server("127.0.0.1:9004");
server.async_start(); server.async_start();
rpc_server server1("127.0.0.1:9005"); rpc_server server1("127.0.0.1:9005");
server1.set_check_conn_interval(std::chrono::milliseconds(100));
server1.set_conn_max_age(std::chrono::milliseconds(200));
server1.async_start(); server1.async_start();
rpc_client client{}; rpc_client client{};
@@ -408,7 +410,12 @@ TEST_CASE("test reconnect") {
ec = sync_wait(get_global_executor(), client.connect("127.0.0.1:9005")); ec = sync_wait(get_global_executor(), client.connect("127.0.0.1:9005"));
CHECK(!ec); CHECK(!ec);
ec = sync_wait(get_global_executor(), client.connect("127.0.0.1:9006")); CHECK(server1.connection_count() == 1);
std::this_thread::sleep_for(std::chrono::milliseconds(600));
// expired connection has been removed.
CHECK(server1.connection_count() == 0);
ec = sync_wait(get_global_executor(), client.connect("127.0.0.1:9999"));
CHECK(ec); CHECK(ec);
REST_LOG_INFO << ec.message(); REST_LOG_INFO << ec.message();
ec = sync_wait( ec = sync_wait(
@@ -428,6 +435,31 @@ TEST_CASE("test reconnect") {
REST_LOG_INFO << ec.message(); REST_LOG_INFO << ec.message();
} }
TEST_CASE("test server address") {
rpc_server server("127.0.0.1", "9004");
server.enable_tcp_no_delay(false);
auto ec = server.async_start();
CHECK(!ec);
server.register_handler<add>();
server.remove_handler("add");
CHECK_NOTHROW(server.register_handler<add>());
server.remove_handler<add>();
CHECK_NOTHROW(server.register_handler<add>());
rpc_server server1("127.0.0.x:9004");
ec = server1.async_start();
CHECK(ec);
REST_LOG_INFO << ec.message();
rpc_server server2("127.0.0.1:9005");
std::thread thd([&] { server2.start(); });
std::this_thread::sleep_for(std::chrono::milliseconds(500));
std::thread thd2([&] { server2.stop(); });
thd2.join();
thd.join();
}
// doctest comments // doctest comments
// 'function' : must be 'attribute' - see issue #182 // 'function' : must be 'attribute' - see issue #182
DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4007) DOCTEST_MSVC_SUPPRESS_WARNING_WITH_PUSH(4007)