aboutsummaryrefslogtreecommitdiffstats
path: root/fnet/src/tests/frt
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2019-05-10 11:25:48 +0000
committerHenning Baldersheim <balder@yahoo-inc.com>2019-05-10 12:25:38 +0000
commit4412aace869986be3a1060f78f367841353d3384 (patch)
treef4b5e1f6da5eaf1563f3b2fd64779800acfd5796 /fnet/src/tests/frt
parent840d4e0578dc627b75bcd0050f1b253e84cc30ed (diff)
Simplify the supervisor responsibility
Diffstat (limited to 'fnet/src/tests/frt')
-rw-r--r--fnet/src/tests/frt/method_pt/method_pt.cpp10
-rw-r--r--fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp2
-rw-r--r--fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp15
-rw-r--r--fnet/src/tests/frt/rpc/detach_return_invoke.cpp15
-rw-r--r--fnet/src/tests/frt/rpc/invoke.cpp24
-rw-r--r--fnet/src/tests/frt/rpc/session.cpp12
-rw-r--r--fnet/src/tests/frt/rpc/sharedblob.cpp8
7 files changed, 41 insertions, 45 deletions
diff --git a/fnet/src/tests/frt/method_pt/method_pt.cpp b/fnet/src/tests/frt/method_pt/method_pt.cpp
index 5417fddceeb..608a435bd1d 100644
--- a/fnet/src/tests/frt/method_pt/method_pt.cpp
+++ b/fnet/src/tests/frt/method_pt/method_pt.cpp
@@ -18,6 +18,7 @@ class ComplexHandler3;
Test *_test;
+std::unique_ptr<fnet::frt::StandaloneFRT> _server;
FRT_Supervisor *_supervisor;
FRT_Target *_target;
SimpleHandler *_simpleHandler;
@@ -176,7 +177,8 @@ public:
//-------------------------------------------------------------
void initTest() {
- _supervisor = new FRT_Supervisor();
+ _server = std::make_unique<fnet::frt::StandaloneFRT>();
+ _supervisor = &_server->supervisor();
_simpleHandler = new SimpleHandler();
_mediumHandler1 = new MediumHandler1();
_mediumHandler2 = new MediumHandler2();
@@ -200,9 +202,6 @@ void initTest() {
_target = _supervisor->GetTarget(spec.c_str());
ASSERT_TRUE(_target != nullptr);
- bool startOK = _supervisor->Start();
- ASSERT_TRUE(startOK);
-
FRT_ReflectionBuilder rb(_supervisor);
//-------------------------------------------------------------------
@@ -247,7 +246,6 @@ void initTest() {
void finiTest() {
- _supervisor->ShutDown(true);
delete _complexHandler1;
delete _complexHandler2;
delete _complexHandler3;
@@ -256,7 +254,7 @@ void finiTest() {
delete _mediumHandler3;
delete _simpleHandler;
_target->SubRef();
- delete _supervisor;
+ _server.reset();
}
diff --git a/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp b/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp
index 2441ea6eaa0..ed4911175a0 100644
--- a/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp
+++ b/fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp
@@ -15,7 +15,7 @@ struct Rpc : FRT_Invokable {
FNET_Transport transport;
FRT_Supervisor orb;
Rpc(CryptoEngine::SP crypto, size_t num_threads)
- : thread_pool(128 * 1024), transport(crypto, num_threads), orb(&transport, &thread_pool) {}
+ : thread_pool(128 * 1024), transport(crypto, num_threads), orb(&transport) {}
void start() {
ASSERT_TRUE(transport.Start(&thread_pool));
}
diff --git a/fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp b/fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp
index 0e5f4712e61..cdb2636a8c1 100644
--- a/fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp
+++ b/fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp
@@ -21,18 +21,19 @@ CryptoEngine::SP tls_crypto = std::make_shared<vespalib::TlsCryptoEngine>(vespal
TT_Tag req_tag("request");
struct Fixture : FRT_Invokable {
- FRT_Supervisor orb;
- Fixture(CryptoEngine::SP crypto) : orb(std::move(crypto)) {
- ASSERT_TRUE(orb.Listen(0));
+ fnet::frt::StandaloneFRT server;
+ FRT_Supervisor & orb;
+ Fixture(CryptoEngine::SP crypto)
+ : server(std::move(crypto)),
+ orb(server.supervisor())
+ {
+ ASSERT_TRUE(orb.Listen(0));
init_rpc();
- ASSERT_TRUE(orb.Start());
}
FRT_Target *connect() {
return orb.GetTarget(orb.GetListenPort());
}
- ~Fixture() {
- orb.ShutDown(true);
- }
+ ~Fixture() = default;
void init_rpc() {
FRT_ReflectionBuilder rb(&orb);
rb.DefineMethod("inc", "l", "l", FRT_METHOD(Fixture::rpc_inc), this);
diff --git a/fnet/src/tests/frt/rpc/detach_return_invoke.cpp b/fnet/src/tests/frt/rpc/detach_return_invoke.cpp
index ab21c62bb68..43a61cd9bcd 100644
--- a/fnet/src/tests/frt/rpc/detach_return_invoke.cpp
+++ b/fnet/src/tests/frt/rpc/detach_return_invoke.cpp
@@ -39,13 +39,13 @@ struct Server : public FRT_Invokable
TEST("detach return invoke") {
Receptor receptor;
- FRT_Supervisor orb;
- Server server(orb, receptor);
- ASSERT_TRUE(orb.Listen(0));
- ASSERT_TRUE(orb.Start());
- std::string spec = vespalib::make_string("tcp/localhost:%d", orb.GetListenPort());
- FRT_Target *target = orb.Get2WayTarget(spec.c_str());
- FRT_RPCRequest *req = orb.AllocRPCRequest();
+ fnet::frt::StandaloneFRT frtServer;
+ FRT_Supervisor & supervisor = frtServer.supervisor();
+ Server server(supervisor, receptor);
+ ASSERT_TRUE(supervisor.Listen(0));
+ std::string spec = vespalib::make_string("tcp/localhost:%d", supervisor.GetListenPort());
+ FRT_Target *target = supervisor.Get2WayTarget(spec.c_str());
+ FRT_RPCRequest *req = supervisor.AllocRPCRequest();
req->SetMethodName("hook");
target->InvokeSync(req, 5.0);
@@ -58,7 +58,6 @@ TEST("detach return invoke") {
}
req->SubRef();
target->SubRef();
- orb.ShutDown(true);
if (receptor.req != 0) {
EXPECT_TRUE(!receptor.req->IsError());
receptor.req->SubRef();
diff --git a/fnet/src/tests/frt/rpc/invoke.cpp b/fnet/src/tests/frt/rpc/invoke.cpp
index a84e3049704..410a60fa08a 100644
--- a/fnet/src/tests/frt/rpc/invoke.cpp
+++ b/fnet/src/tests/frt/rpc/invoke.cpp
@@ -249,8 +249,8 @@ public:
class Fixture
{
private:
- FRT_Supervisor _client;
- FRT_Supervisor _server;
+ fnet::frt::StandaloneFRT _client;
+ fnet::frt::StandaloneFRT _server;
vespalib::string _peerSpec;
FRT_Target *_target;
TestRPC _testRPC;
@@ -258,7 +258,7 @@ private:
public:
FRT_Target &target() { return *_target; }
- FRT_Target *make_bad_target() { return _client.GetTarget("bogus address"); }
+ FRT_Target *make_bad_target() { return _client.supervisor().GetTarget("bogus address"); }
RequestLatch &detached_req() { return _testRPC.detached_req(); }
EchoTest &echo() { return _echoTest; }
@@ -267,16 +267,14 @@ public:
_server(crypto),
_peerSpec(),
_target(nullptr),
- _testRPC(&_server),
- _echoTest(&_server)
+ _testRPC(&_server.supervisor()),
+ _echoTest(&_server.supervisor())
{
- _client.GetTransport()->SetTCPNoDelay(true);
- _server.GetTransport()->SetTCPNoDelay(true);
- ASSERT_TRUE(_server.Listen("tcp/0"));
- ASSERT_TRUE(_server.Start());
- ASSERT_TRUE(_client.Start());
- _peerSpec = SocketSpec::from_host_port("localhost", _server.GetListenPort()).spec();
- _target = _client.GetTarget(_peerSpec.c_str());
+ _client.supervisor().GetTransport()->SetTCPNoDelay(true);
+ _server.supervisor().GetTransport()->SetTCPNoDelay(true);
+ ASSERT_TRUE(_server.supervisor().Listen("tcp/0"));
+ _peerSpec = SocketSpec::from_host_port("localhost", _server.supervisor().GetListenPort()).spec();
+ _target = _client.supervisor().GetTarget(_peerSpec.c_str());
//---------------------------------------------------------------------
MyReq req("frt.rpc.ping");
target().InvokeSync(req.borrow(), timeout);
@@ -284,8 +282,6 @@ public:
}
~Fixture() {
- _client.ShutDown(true);
- _server.ShutDown(true);
_target->SubRef();
}
};
diff --git a/fnet/src/tests/frt/rpc/session.cpp b/fnet/src/tests/frt/rpc/session.cpp
index 96d20ae9c18..24cbedb3ff7 100644
--- a/fnet/src/tests/frt/rpc/session.cpp
+++ b/fnet/src/tests/frt/rpc/session.cpp
@@ -86,14 +86,13 @@ struct RPC : public FRT_Invokable
}
};
-TEST("session") {
- RPC rpc;
- FRT_Supervisor orb(crypto);
+void testSession(RPC & rpc) {
+ fnet::frt::StandaloneFRT frt(crypto);
+ FRT_Supervisor & orb = frt.supervisor();
char spec[64];
rpc.Init(&orb);
ASSERT_TRUE(orb.Listen("tcp/0"));
sprintf(spec, "tcp/localhost:%d", orb.GetListenPort());
- ASSERT_TRUE(orb.Start());
FRT_Target *target = orb.GetTarget(spec);
FRT_RPCRequest *req = orb.AllocRPCRequest();
@@ -122,7 +121,10 @@ TEST("session") {
req->SubRef();
target->SubRef();
- orb.ShutDown(true);
+}
+TEST("session") {
+ RPC rpc;
+ testSession(rpc);
EXPECT_TRUE(Session::GetCnt() == 0);
EXPECT_TRUE(!rpc.bogusFini);
};
diff --git a/fnet/src/tests/frt/rpc/sharedblob.cpp b/fnet/src/tests/frt/rpc/sharedblob.cpp
index a48ecbb1da7..1c0503454c7 100644
--- a/fnet/src/tests/frt/rpc/sharedblob.cpp
+++ b/fnet/src/tests/frt/rpc/sharedblob.cpp
@@ -118,7 +118,8 @@ struct ServerSampler : public FRT_Invokable
};
TEST("testExplicitShared") {
- FRT_Supervisor orb;
+ fnet::frt::StandaloneFRT frt;
+ FRT_Supervisor & orb = frt.supervisor();
MyBlob blob;
FRT_RPCRequest *req = orb.AllocRPCRequest();
@@ -171,7 +172,8 @@ TEST("testExplicitShared") {
TEST("testImplicitShared") {
DataSet dataSet;
- FRT_Supervisor orb;
+ fnet::frt::StandaloneFRT frt;
+ FRT_Supervisor & orb = frt.supervisor();
FRT_RPCRequest *req = orb.AllocRPCRequest();
ServerSampler serverSampler(dataSet, req);
{
@@ -182,7 +184,6 @@ TEST("testImplicitShared") {
orb.Listen(0);
int port = orb.GetListenPort();
ASSERT_TRUE(port != 0);
- orb.Start();
char tmp[64];
snprintf(tmp, sizeof(tmp), "tcp/localhost:%d", port);
@@ -255,7 +256,6 @@ TEST("testImplicitShared") {
}
req->SubRef();
target->SubRef();
- orb.ShutDown(true);
}
TEST_MAIN() { TEST_RUN_ALL(); }