diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2019-05-10 11:25:48 +0000 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2019-05-10 12:25:38 +0000 |
commit | 4412aace869986be3a1060f78f367841353d3384 (patch) | |
tree | f4b5e1f6da5eaf1563f3b2fd64779800acfd5796 /fnet/src/tests/frt | |
parent | 840d4e0578dc627b75bcd0050f1b253e84cc30ed (diff) |
Simplify the supervisor responsibility
Diffstat (limited to 'fnet/src/tests/frt')
-rw-r--r-- | fnet/src/tests/frt/method_pt/method_pt.cpp | 10 | ||||
-rw-r--r-- | fnet/src/tests/frt/parallel_rpc/parallel_rpc_test.cpp | 2 | ||||
-rw-r--r-- | fnet/src/tests/frt/parallel_rpc/tls_rpc_bench.cpp | 15 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/detach_return_invoke.cpp | 15 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/invoke.cpp | 24 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/session.cpp | 12 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/sharedblob.cpp | 8 |
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(); } |