From 38a6f5e6cfd56320a89319f51aee14d8464727f5 Mon Sep 17 00:00:00 2001 From: winlin Date: Thu, 9 May 2019 08:05:27 +0800 Subject: [PATCH] Support TCP server utest. --- trunk/src/utest/srs_utest_service.cpp | 38 +++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/trunk/src/utest/srs_utest_service.cpp b/trunk/src/utest/srs_utest_service.cpp index b4486cc71..4d2e5268b 100644 --- a/trunk/src/utest/srs_utest_service.cpp +++ b/trunk/src/utest/srs_utest_service.cpp @@ -25,6 +25,8 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. using namespace std; #include +#include +#include // Disable coroutine test for OSX. #if !defined(SRS_OSX) @@ -39,10 +41,46 @@ VOID TEST(ServiceTimeTest, TimeUnit) EXPECT_EQ(3600*1000*1000LL, SRS_UTIME_HOURS); } +#define MOCK_LISTEN_HOST "127.0.0.1" #define MOCK_LISTEN_PORT 11935 +class MockTcpHandler : public ISrsTcpHandler +{ +private: + srs_netfd_t fd; +public: + MockTcpHandler(); + virtual ~MockTcpHandler(); +public: + virtual srs_error_t on_tcp_client(srs_netfd_t stfd); +}; + +MockTcpHandler::MockTcpHandler() +{ + fd = NULL; +} + +MockTcpHandler::~MockTcpHandler() +{ + srs_close_stfd(fd); +} + +srs_error_t MockTcpHandler::on_tcp_client(srs_netfd_t stfd) +{ + fd = stfd; + return srs_success; +} + VOID TEST(TCPServerTest, PingPong) { + srs_error_t err; + if (true) { + MockTcpHandler h; + SrsTcpListener l(&h, MOCK_LISTEN_HOST, MOCK_LISTEN_PORT); + + HELPER_EXPECT_SUCCESS(l.listen()); + EXPECT_TRUE(l.fd() > 0); + } } #endif