projects
/
dcpomatic.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add test for #1857.
[dcpomatic.git]
/
test
/
socket_test.cc
diff --git
a/test/socket_test.cc
b/test/socket_test.cc
index 562d106396bb193ff8beec53b6280938a4b9c973..872136a7196c02f2beaed2b4962425e6bee3475a 100644
(file)
--- a/
test/socket_test.cc
+++ b/
test/socket_test.cc
@@
-20,15
+20,19
@@
#include "lib/server.h"
#include "lib/dcpomatic_socket.h"
#include "lib/server.h"
#include "lib/dcpomatic_socket.h"
+#include <dcp/raw_convert.h>
#include <boost/thread.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/shared_ptr.hpp>
#include <cstring>
#include <iostream>
#include <boost/thread.hpp>
#include <boost/test/unit_test.hpp>
#include <boost/shared_ptr.hpp>
#include <cstring>
#include <iostream>
+
+using std::string;
using boost::shared_ptr;
using boost::bind;
using boost::shared_ptr;
using boost::bind;
+
#define TEST_SERVER_PORT 9142
#define TEST_SERVER_BUFFER_LENGTH 1024
#define TEST_SERVER_PORT 9142
#define TEST_SERVER_BUFFER_LENGTH 1024
@@
-48,8
+52,11
@@
public:
~TestServer ()
{
~TestServer ()
{
+ boost::this_thread::disable_interruption dis;
stop ();
stop ();
- _thread.join ();
+ try {
+ _thread.join ();
+ } catch (...) {}
delete[] _buffer;
}
delete[] _buffer;
}
@@
-112,11
+119,18
@@
send (shared_ptr<Socket> socket, char const* message)
/** Basic test to see if Socket can send and receive data */
BOOST_AUTO_TEST_CASE (socket_basic_test)
{
/** 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);
TestServer server(false);
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);
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
);
send (socket, "Hello world!");
server.await ();
send (socket, "Hello world!");
server.await ();
@@
-127,11
+141,18
@@
BOOST_AUTO_TEST_CASE (socket_basic_test)
/** Check that the socket "auto-digest" creation works */
BOOST_AUTO_TEST_CASE (socket_digest_test1)
{
/** 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);
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);
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!");
{
Socket::WriteDigestScope ds(socket);
send (socket, "Hello world!");
@@
-149,11
+170,18
@@
BOOST_AUTO_TEST_CASE (socket_digest_test1)
/** Check that the socket "auto-digest" round-trip works */
BOOST_AUTO_TEST_CASE (socket_digest_test2)
{
/** 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);
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);
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!");
{
Socket::WriteDigestScope ds(socket);
send (socket, "Hello world!");