From 9243710ca372de26823c2225c7b46b072458c671 Mon Sep 17 00:00:00 2001 From: lichao <lichao@aiotlink.com> Date: 星期五, 28 五月 2021 17:18:33 +0800 Subject: [PATCH] tcp proxy requests, need more test. --- utest/tcp_test.cpp | 61 ++++++++++++++++++++---------- 1 files changed, 41 insertions(+), 20 deletions(-) diff --git a/utest/tcp_test.cpp b/utest/tcp_test.cpp index a838252..86a0897 100644 --- a/utest/tcp_test.cpp +++ b/utest/tcp_test.cpp @@ -19,6 +19,7 @@ #include "defs.h" #include "node_center.h" #include "tcp_connection.h" +#include "tcp_proxy.h" #include "tcp_server.h" #include "util.h" #include <sys/ioctl.h> @@ -33,34 +34,54 @@ BOOST_AUTO_TEST_CASE(TcpTest) { - SharedMemory &shm = TestShm(); - const std::string connect_addr = "127.0.0.1"; const uint16_t port = kBHCenterPort; - boost::asio::io_context io; + IoService io; tcp::endpoint dest(ip::address::from_string(connect_addr), port); - MsgRequestTopic req; - req.set_topic("#center_query_procs"); - req.set_data(""); - auto head = InitMsgHead(GetType(req), "#test_proc", 1000000); - auto route = head.add_route(); - route->set_mq_id(12345); - route->set_abs_addr(67890); - head.mutable_dest()->set_ip(connect_addr); - head.mutable_dest()->set_port(port); - head.mutable_dest()->set_mq_id(1000011); - head.mutable_dest()->set_abs_addr(10296); + auto NewRequest = [&]() { + MsgRequestTopic req; + req.set_topic("#center_query_procs"); + req.set_data(""); + auto head = InitMsgHead(GetType(req), "#test_proc", 1000000); + auto route = head.add_route(); + route->set_mq_id(12345); + route->set_abs_addr(67890); - auto request(MsgI::Serialize(head, req)); - for (int i = 0; i < 1; ++i) { - LOG_DEBUG() << "request size: " << request.size(); - TcpRequest1::Create(io, dest, request, DefaultSender(BHomeShm())); + head.mutable_dest()->set_ip(connect_addr); + head.mutable_dest()->set_port(port); + head.mutable_dest()->set_mq_id(1000011); + head.mutable_dest()->set_abs_addr(10296); + + return (MsgI::Serialize(head, req)); + }; + auto onReply = [](BHMsgHead &head, std::string body_content) { + static int n = 0; + printf("reply %d: ", ++n); + MsgRequestTopicReply reply; + if (reply.ParseFromString(body_content)) { + if (IsSuccess(reply.errmsg().errcode())) { + printf("\ncontent: %s\n", reply.data().c_str()); + } else { + printf("error: %s\n", reply.errmsg().errstring().c_str()); + } + } else { + printf("parse error\n"); + } + }; + for (int i = 0; i < 100; ++i) { + auto request = NewRequest(); + TcpRequest1::Create(io.io(), dest, request, onReply); } - - io.run(); + Sleep(2s); + printf("-------------------------------------------------------\n"); + for (int i = 0; i < 3; ++i) { + auto request = NewRequest(); + TcpRequest1::Create(io.io(), dest, request, onReply); + } + Sleep(2s); printf("TcpTest\n"); } -- Gitblit v1.8.0