diff options
Diffstat (limited to 'config/src/tests')
-rw-r--r-- | config/src/tests/failover/failover.cpp | 19 | ||||
-rw-r--r-- | config/src/tests/file_acquirer/file_acquirer_test.cpp | 16 | ||||
-rw-r--r-- | config/src/tests/frt/frt.cpp | 14 |
3 files changed, 27 insertions, 22 deletions
diff --git a/config/src/tests/failover/failover.cpp b/config/src/tests/failover/failover.cpp index 990ca761e7e..7e7017ff057 100644 --- a/config/src/tests/failover/failover.cpp +++ b/config/src/tests/failover/failover.cpp @@ -34,7 +34,7 @@ struct RPCServer : public FRT_Invokable { vespalib::Barrier barrier; int64_t gen; - RPCServer() : supervisor(NULL), barrier(2), gen(1) { } + RPCServer() : supervisor(nullptr), barrier(2), gen(1) { } void init(FRT_Supervisor * s) { FRT_ReflectionBuilder rb(s); @@ -81,18 +81,20 @@ struct RPCServer : public FRT_Invokable { void verifyConfig(std::unique_ptr<MyConfig> config) { - ASSERT_TRUE(config.get() != NULL); + ASSERT_TRUE(config); ASSERT_EQUAL("myval", config->myField); } struct ServerFixture { using UP = std::unique_ptr<ServerFixture>; + std::unique_ptr<fnet::frt::StandaloneFRT> frtServer; FRT_Supervisor * supervisor; RPCServer server; Barrier b; const vespalib::string listenSpec; ServerFixture(const vespalib::string & ls) - : supervisor(NULL), + : frtServer(), + supervisor(nullptr), server(), b(2), listenSpec(ls) @@ -106,22 +108,21 @@ struct ServerFixture { void start() { - supervisor = new FRT_Supervisor(); + frtServer = std::make_unique<fnet::frt::StandaloneFRT>(); + supervisor = & frtServer->supervisor(); server.init(supervisor); supervisor->Listen(get_port(listenSpec)); wait(); // Wait until test runner signals we can start - supervisor->Main(); wait(); // Signalling that we have shut down wait(); // Wait for signal saying that supervisor is deleted } void stop() { - if (supervisor != NULL) { - supervisor->ShutDown(true); + if (frtServer) { wait(); // Wait for supervisor to shut down - delete supervisor; - supervisor = NULL; + frtServer.reset(); + supervisor = nullptr; wait(); // Signal that we are done and start can return. } } diff --git a/config/src/tests/file_acquirer/file_acquirer_test.cpp b/config/src/tests/file_acquirer/file_acquirer_test.cpp index 0453c6ddbd0..33bb8f47e09 100644 --- a/config/src/tests/file_acquirer/file_acquirer_test.cpp +++ b/config/src/tests/file_acquirer/file_acquirer_test.cpp @@ -7,8 +7,10 @@ using namespace config; struct ServerFixture : FRT_Invokable { - FRT_Supervisor orb; + fnet::frt::StandaloneFRT server; + FRT_Supervisor &orb; vespalib::string spec; + void init_rpc() { FRT_ReflectionBuilder rb(&orb); rb.DefineMethod("waitFor", "s", "s", FRT_METHOD(ServerFixture::RPC_waitFor), this); @@ -16,24 +18,24 @@ struct ServerFixture : FRT_Invokable { rb.ParamDesc("file_ref", "file reference to wait for and resolve"); rb.ReturnDesc("file_path", "actual path to the requested file"); } - ServerFixture() : orb() { + + ServerFixture() : server(), orb(server.supervisor()) { init_rpc(); orb.Listen(0); spec = vespalib::make_string("tcp/localhost:%d", orb.GetListenPort()); - orb.Start(); } + void RPC_waitFor(FRT_RPCRequest *req) { FRT_Values ¶ms = *req->GetParams(); - FRT_Values &ret = *req->GetReturn(); + FRT_Values &ret = *req->GetReturn(); if (strcmp(params[0]._string._str, "my_ref") == 0) { ret.AddString("my_path"); } else { req->SetError(FRTE_RPC_METHOD_FAILED, "invalid file reference"); } } - ~ServerFixture() { - orb.ShutDown(true); - } + + ~ServerFixture() = default; }; TEST_FF("require that files can be acquired over rpc", ServerFixture(), RpcFileAcquirer(f1.spec)) { diff --git a/config/src/tests/frt/frt.cpp b/config/src/tests/frt/frt.cpp index c225dd9dcf3..f489ca4c7d9 100644 --- a/config/src/tests/frt/frt.cpp +++ b/config/src/tests/frt/frt.cpp @@ -119,17 +119,18 @@ namespace { int errorCode; int timeout; FRT_RPCRequest * ans; - FRT_Supervisor supervisor; + fnet::frt::StandaloneFRT server; + FRT_Supervisor & supervisor; FNET_Scheduler scheduler; vespalib::string address; - ConnectionMock(FRT_RPCRequest * answer = NULL); + ConnectionMock(FRT_RPCRequest * answer = nullptr); ~ConnectionMock(); FRT_RPCRequest * allocRPCRequest() override { return supervisor.AllocRPCRequest(); } void setError(int ec) override { errorCode = ec; } void invoke(FRT_RPCRequest * req, double t, FRT_IRequestWait * waiter) override { timeout = static_cast<int>(t); - if (ans != NULL) + if (ans != nullptr) waiter->RequestDone(ans); else waiter->RequestDone(req); @@ -142,10 +143,11 @@ namespace { : errorCode(0), timeout(0), ans(answer), - supervisor(), + server(), + supervisor(server.supervisor()), address() { } - ConnectionMock::~ConnectionMock() { } + ConnectionMock::~ConnectionMock() = default; struct FactoryMock : public ConnectionFactory { ConnectionMock * current; @@ -284,7 +286,7 @@ TEST("require that v3 request is correctly initialized") { ConfigDefinition origDef(MyConfig::CONFIG_DEF_SCHEMA); FRT_RPCRequest * req = v3req.getRequest(); - ASSERT_TRUE(req != NULL); + ASSERT_TRUE(req != nullptr); FRT_Values & params(*req->GetParams()); std::string json(params[0]._string._str); Slime slime; |