Commit 0affeae9 authored by Jakob Otto's avatar Jakob Otto

Fix connection test

parent 3cd6dd58
...@@ -106,6 +106,7 @@ private: ...@@ -106,6 +106,7 @@ private:
CAF_RAISE_ERROR("mgr->init() failed"); CAF_RAISE_ERROR("mgr->init() failed");
} }
mpx->register_reading(mgr); mpx->register_reading(mgr);
peers_.emplace(peer_id, std::move(mgr));
return peers_[peer_id]; return peers_[peer_id];
} }
......
...@@ -51,6 +51,8 @@ public: ...@@ -51,6 +51,8 @@ public:
endpoint_manager_ptr peer(const node_id& id) override; endpoint_manager_ptr peer(const node_id& id) override;
endpoint_manager_ptr connect(const uri& locator) override;
void publish(actor handle, const uri& locator) override; void publish(actor handle, const uri& locator) override;
void resolve(const uri& locator, const actor& listener) override; void resolve(const uri& locator, const actor& listener) override;
......
...@@ -54,6 +54,10 @@ endpoint_manager_ptr test::peer(const node_id& id) { ...@@ -54,6 +54,10 @@ endpoint_manager_ptr test::peer(const node_id& id) {
return get_peer(id).second; return get_peer(id).second;
} }
endpoint_manager_ptr test::connect(const uri&) {
return nullptr;
}
void test::publish(actor, const uri&) { void test::publish(actor, const uri&) {
// nop // nop
} }
......
...@@ -86,7 +86,6 @@ void middleman::init(actor_system_config& cfg) { ...@@ -86,7 +86,6 @@ void middleman::init(actor_system_config& cfg) {
CAF_LOG_ERROR("failed to initialize backend: " << err); CAF_LOG_ERROR("failed to initialize backend: " << err);
CAF_RAISE_ERROR("failed to initialize backend"); CAF_RAISE_ERROR("failed to initialize backend");
} }
std::cout << "init" << std::endl;
} }
middleman::module::id_t middleman::id() const { middleman::module::id_t middleman::id() const {
......
...@@ -23,9 +23,12 @@ ...@@ -23,9 +23,12 @@
#include "caf/net/test/host_fixture.hpp" #include "caf/net/test/host_fixture.hpp"
#include "caf/test/dsl.hpp" #include "caf/test/dsl.hpp"
#include <string>
#include "caf/ip_endpoint.hpp" #include "caf/ip_endpoint.hpp"
#include "caf/net/middleman.hpp" #include "caf/net/middleman.hpp"
#include "caf/net/socket_guard.hpp" #include "caf/net/socket_guard.hpp"
#include "caf/net/tcp_accept_socket.hpp"
using namespace caf; using namespace caf;
using namespace caf::net; using namespace caf::net;
...@@ -78,17 +81,27 @@ CAF_TEST(doorman accept) { ...@@ -78,17 +81,27 @@ CAF_TEST(doorman accept) {
} }
CAF_TEST(connect) { CAF_TEST(connect) {
CAF_CHECK_EQUAL(mpx->num_socket_managers(), 2);
ip_endpoint ep; ip_endpoint ep;
if (auto err = detail::parse("[::]:0", ep)) if (auto err = detail::parse("[::]:0", ep))
CAF_FAIL("could not parse endpoint" << err); CAF_FAIL("could not parse endpoint" << err);
auto acceptor = make_tcp_accept_socket(ep); auto acceptor = make_tcp_accept_socket(ep);
CAF_CHECK(!acceptor) if (!acceptor)
CAF_FAIL("could not create acceptor" << CAF_ARG2("err", acceptor.error()));
auto acc_guard = make_socket_guard(*acceptor); auto acc_guard = make_socket_guard(*acceptor);
auto port = local_port(*acc_guard); auto port = local_port(acc_guard.socket());
auto uri_str = std::string("tcp://localhost:") + std::to_string(port); if (!port)
CAF_FAIL("could not read port" << CAF_ARG2("err", port.error()));
auto uri_str = std::string("tcp://localhost:") + std::to_string(*port);
CAF_MESSAGE("connecting to " << CAF_ARG(uri_str)); CAF_MESSAGE("connecting to " << CAF_ARG(uri_str));
auto ptr = mm.backend("tcp"); auto ret = mm.connect(*make_uri(uri_str));
CAF_CHECK(mm->connect(make_uri(ep_string))); if (!ret)
CAF_FAIL("could not connect to " << uri_str);
auto sock = accept(acc_guard.socket());
if (!sock)
CAF_FAIL("accepting failed");
handle_io_event();
CAF_CHECK_EQUAL(mpx->num_socket_managers(), 3);
} }
CAF_TEST_FIXTURE_SCOPE_END() CAF_TEST_FIXTURE_SCOPE_END()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment