/*
- Copyright (C) 2020 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2020-2021 Carl Hetherington <cth@carlh.net>
This file is part of DCP-o-matic.
*/
-#include "lib/server.h"
+
#include "lib/dcpomatic_socket.h"
-#include <boost/thread.hpp>
+#include "lib/server.h"
+#include <dcp/raw_convert.h>
#include <boost/test/unit_test.hpp>
-#include <boost/shared_ptr.hpp>
+#include <boost/thread.hpp>
#include <cstring>
#include <iostream>
-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
}
private:
- void handle (boost::shared_ptr<Socket> socket)
+ void handle (std::shared_ptr<Socket> socket)
{
boost::mutex::scoped_lock lm (_mutex);
BOOST_REQUIRE (_size);
socket->write (reinterpret_cast<uint8_t const *>(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> 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<string>(TEST_SERVER_PORT));
+ tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
+
+ auto socket = make_shared<Socket>();
+ socket->connect (*endpoint_iterator);
send (socket, "Hello world!");
server.await ();
/** 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<string>(TEST_SERVER_PORT));
+ tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
+
shared_ptr<Socket> 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!");
/** 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<string>(TEST_SERVER_PORT));
+ tcp::resolver::iterator endpoint_iterator = resolver.resolve (query);
+
shared_ptr<Socket> 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!");