X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=test%2Fsocket_test.cc;h=6021d5172971dde1bd526f35601c0f686e057119;hb=af85c3bb844599895eda780083fb9466cdfc8e76;hp=5024272abce3eb99cb6805b8fcbadc9a92e24d60;hpb=e3c7656f9dc0acbaf518c051b847ee2e4eb7ba23;p=dcpomatic.git diff --git a/test/socket_test.cc b/test/socket_test.cc index 5024272ab..6021d5172 100644 --- a/test/socket_test.cc +++ b/test/socket_test.cc @@ -1,5 +1,5 @@ /* - Copyright (C) 2020 Carl Hetherington + Copyright (C) 2020-2021 Carl Hetherington This file is part of DCP-o-matic. @@ -18,17 +18,22 @@ */ -#include "lib/server.h" + #include "lib/dcpomatic_socket.h" -#include +#include "lib/server.h" +#include #include -#include +#include #include #include -using boost::shared_ptr; + +using std::make_shared; +using std::shared_ptr; +using std::string; using boost::bind; + #define TEST_SERVER_PORT 9142 #define TEST_SERVER_BUFFER_LENGTH 1024 @@ -79,7 +84,7 @@ public: } private: - void handle (boost::shared_ptr socket) + void handle (std::shared_ptr socket) override { boost::mutex::scoped_lock lm (_mutex); BOOST_REQUIRE (_size); @@ -112,14 +117,22 @@ send (shared_ptr socket, char const* message) socket->write (reinterpret_cast(message), strlen(message) + 1); } + /** Basic test to see if Socket can send and receive data */ BOOST_AUTO_TEST_CASE (socket_basic_test) { + using boost::asio::ip::tcp; + TestServer server(false); server.expect (13); - shared_ptr socket (new Socket); - socket->connect (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), TEST_SERVER_PORT)); + boost::asio::io_service io_service; + tcp::resolver resolver (io_service); + tcp::resolver::query query ("127.0.0.1", dcp::raw_convert(TEST_SERVER_PORT)); + tcp::resolver::iterator endpoint_iterator = resolver.resolve (query); + + auto socket = make_shared(); + socket->connect (*endpoint_iterator); send (socket, "Hello world!"); server.await (); @@ -130,11 +143,18 @@ BOOST_AUTO_TEST_CASE (socket_basic_test) /** Check that the socket "auto-digest" creation works */ BOOST_AUTO_TEST_CASE (socket_digest_test1) { + using boost::asio::ip::tcp; + TestServer server(false); server.expect (13 + 16); + boost::asio::io_service io_service; + tcp::resolver resolver (io_service); + tcp::resolver::query query ("127.0.0.1", dcp::raw_convert(TEST_SERVER_PORT)); + tcp::resolver::iterator endpoint_iterator = resolver.resolve (query); + shared_ptr socket(new Socket); - socket->connect (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), TEST_SERVER_PORT)); + socket->connect (*endpoint_iterator); { Socket::WriteDigestScope ds(socket); send (socket, "Hello world!"); @@ -152,11 +172,18 @@ BOOST_AUTO_TEST_CASE (socket_digest_test1) /** Check that the socket "auto-digest" round-trip works */ BOOST_AUTO_TEST_CASE (socket_digest_test2) { + using boost::asio::ip::tcp; + TestServer server(true); server.expect (13); + boost::asio::io_service io_service; + tcp::resolver resolver (io_service); + tcp::resolver::query query ("127.0.0.1", dcp::raw_convert(TEST_SERVER_PORT)); + tcp::resolver::iterator endpoint_iterator = resolver.resolve (query); + shared_ptr socket(new Socket); - socket->connect (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), TEST_SERVER_PORT)); + socket->connect (*endpoint_iterator); { Socket::WriteDigestScope ds(socket); send (socket, "Hello world!");