summaryrefslogtreecommitdiffstats
path: root/config/src/tests
diff options
context:
space:
mode:
Diffstat (limited to 'config/src/tests')
-rw-r--r--config/src/tests/failover/failover.cpp19
-rw-r--r--config/src/tests/file_acquirer/file_acquirer_test.cpp16
-rw-r--r--config/src/tests/frt/frt.cpp14
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 &params = *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;