summaryrefslogtreecommitdiffstats
path: root/slobrok/src/tests/oldapi/old.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'slobrok/src/tests/oldapi/old.cpp')
-rw-r--r--slobrok/src/tests/oldapi/old.cpp221
1 files changed, 0 insertions, 221 deletions
diff --git a/slobrok/src/tests/oldapi/old.cpp b/slobrok/src/tests/oldapi/old.cpp
deleted file mode 100644
index fc380acfb9d..00000000000
--- a/slobrok/src/tests/oldapi/old.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
-#include <vespa/vespalib/testkit/testapp.h>
-#include "mirror.h"
-#include <vespa/config-slobroks.h>
-#include <vespa/slobrok/server/slobrokserver.h>
-#include <vespa/fnet/frt/supervisor.h>
-#include <vespa/fnet/frt/target.h>
-#include <vespa/fnet/transport.h>
-
-#include <vespa/log/log.h>
-LOG_SETUP("mirrorapi_test");
-
-using slobrok::api::MirrorOld;
-using slobrok::SlobrokServer;
-
-TEST_SETUP(Test);
-
-//-----------------------------------------------------------------------------
-
-class Server : public FRT_Invokable
-{
-private:
- fnet::frt::StandaloneFRT _server;
- std::string _name;
- std::string _slobrokSpec;
-
-public:
- Server(std::string name, int port, std::string slobrokSpec);
- ~Server();
- void rpc_listNamesServed(FRT_RPCRequest *req);
- void reg();
-};
-
-
-Server::Server(std::string name, int port, std::string slobrokSpec)
- : _server(),
- _name(name),
- _slobrokSpec(slobrokSpec)
-{
- {
- FRT_ReflectionBuilder rb(&_server.supervisor());
- //---------------------------------------------------------------------
- rb.DefineMethod("slobrok.callback.listNamesServed", "", "S",
- FRT_METHOD(Server::rpc_listNamesServed), this);
- rb.MethodDesc("Look up a rpcserver");
- rb.ReturnDesc("names", "The rpcserver names on this server");
- //---------------------------------------------------------------------
- }
- _server.supervisor().Listen(port);
-}
-
-
-void
-Server::reg()
-{
- char spec[64];
- sprintf(spec, "tcp/localhost:%d", _server.supervisor().GetListenPort());
-
- FRT_RPCRequest *req = _server.supervisor().AllocRPCRequest();
- req->SetMethodName("slobrok.registerRpcServer");
- req->GetParams()->AddString(_name.c_str());
- req->GetParams()->AddString(spec);
-
- FRT_Target *sb = _server.supervisor().GetTarget(_slobrokSpec.c_str());
- sb->InvokeSync(req, 5.0);
- sb->SubRef();
- req->SubRef();
-}
-
-
-void
-Server::rpc_listNamesServed(FRT_RPCRequest *req)
-{
- FRT_Values &dst = *req->GetReturn();
- FRT_StringValue *names = dst.AddStringArray(1);
- dst.SetString(&names[0], _name.c_str());
-}
-
-
-Server::~Server() = default;
-
-//-----------------------------------------------------------------------------
-
-struct SpecList
-{
- MirrorOld::SpecList _specList;
- SpecList() : _specList() {}
- SpecList(MirrorOld::SpecList input) : _specList(input) {}
- SpecList &add(const char *name, const char *spec) {
- _specList.push_back(make_pair(std::string(name),
- std::string(spec)));
- return *this;
- }
- void sort() {
- std::sort(_specList.begin(), _specList.end());
- }
- bool operator==(SpecList &rhs) { // NB: MUTATE!
- sort();
- rhs.sort();
- return _specList == rhs._specList;
- }
-};
-
-
-bool
-compare(MirrorOld &api, const char *pattern, SpecList expect)
-{
- for (int i = 0; i < 250; ++i) {
- SpecList actual(api.lookup(pattern));
- if (actual == expect) {
- return true;
- }
- FastOS_Thread::Sleep(100);
- }
- return false;
-}
-
-
-int
-Test::Main()
-{
- TEST_INIT("mirrorapi_test");
-
- SlobrokServer mock(18531);
- FastOS_Thread::Sleep(300);
-
- Server a("A/x/w", 18532, "tcp/localhost:18531");
- Server b("B/x", 18533, "tcp/localhost:18531");
- Server c("C/x/z", 18534, "tcp/localhost:18531");
- Server d("D/y/z", 18535, "tcp/localhost:18531");
- Server e("E/y", 18536, "tcp/localhost:18531");
- Server f("F/y/w", 18537, "tcp/localhost:18531");
-
- std::vector<std::string> slobrokSpecs;
- slobrokSpecs.push_back("tcp/localhost:18531");
- FastOS_ThreadPool threadPool(0x10000);
- FNET_Transport transport;
- FRT_Supervisor supervisor(&transport);
- MirrorOld mirror(supervisor, slobrokSpecs);
- EXPECT_TRUE(!mirror.ready());
- transport.Start(&threadPool);
- FastOS_Thread::Sleep(1000);
-
- a.reg();
- EXPECT_TRUE(compare(mirror, "A/x/w", SpecList().add("A/x/w", "tcp/localhost:18532")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList()));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList().add("A/x/w", "tcp/localhost:18532")));
- EXPECT_TRUE(mirror.ready());
-
- TEST_FLUSH();
- b.reg();
- EXPECT_TRUE(compare(mirror, "B/x", SpecList().add("B/x", "tcp/localhost:18533")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList().add("B/x", "tcp/localhost:18533")));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList().add("A/x/w", "tcp/localhost:18532")));
-
- TEST_FLUSH();
- c.reg();
- EXPECT_TRUE(compare(mirror, "C/x/z", SpecList().add("C/x/z", "tcp/localhost:18534")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList().add("B/x", "tcp/localhost:18533")));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList()
- .add("A/x/w", "tcp/localhost:18532")
- .add("C/x/z", "tcp/localhost:18534")));
-
- TEST_FLUSH();
- d.reg();
- EXPECT_TRUE(compare(mirror, "D/y/z", SpecList().add("D/y/z", "tcp/localhost:18535")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList().add("B/x", "tcp/localhost:18533")));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList()
- .add("A/x/w", "tcp/localhost:18532")
- .add("C/x/z", "tcp/localhost:18534")
- .add("D/y/z", "tcp/localhost:18535")));
-
- TEST_FLUSH();
- e.reg();
- EXPECT_TRUE(compare(mirror, "E/y", SpecList().add("E/y", "tcp/localhost:18536")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList()
- .add("B/x", "tcp/localhost:18533")
- .add("E/y", "tcp/localhost:18536")));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList()
- .add("A/x/w", "tcp/localhost:18532")
- .add("C/x/z", "tcp/localhost:18534")
- .add("D/y/z", "tcp/localhost:18535")));
-
- TEST_FLUSH();
- f.reg();
- EXPECT_TRUE(compare(mirror, "F/y/w", SpecList().add("F/y/w", "tcp/localhost:18537")));
- EXPECT_TRUE(compare(mirror, "*/*", SpecList()
- .add("B/x", "tcp/localhost:18533")
- .add("E/y", "tcp/localhost:18536")));
- EXPECT_TRUE(compare(mirror, "*/*/*", SpecList()
- .add("A/x/w", "tcp/localhost:18532")
- .add("C/x/z", "tcp/localhost:18534")
- .add("D/y/z", "tcp/localhost:18535")
- .add("F/y/w", "tcp/localhost:18537")));
-
-
- EXPECT_TRUE(compare(mirror, "*", SpecList()));
-
- EXPECT_TRUE(compare(mirror, "B/*", SpecList()
- .add("B/x", "tcp/localhost:18533")));
-
- EXPECT_TRUE(compare(mirror, "*/y", SpecList()
- .add("E/y", "tcp/localhost:18536")));
-
- EXPECT_TRUE(compare(mirror, "*/x/*", SpecList()
- .add("A/x/w", "tcp/localhost:18532")
- .add("C/x/z", "tcp/localhost:18534")));
-
- EXPECT_TRUE(compare(mirror, "*/*/z", SpecList()
- .add("C/x/z", "tcp/localhost:18534")
- .add("D/y/z", "tcp/localhost:18535")));
-
- EXPECT_TRUE(compare(mirror, "A/*/z", SpecList()));
-
- EXPECT_TRUE(compare(mirror, "A/*/w", SpecList()
- .add("A/x/w", "tcp/localhost:18532")));
-
- mock.stop();
- transport.ShutDown(true);
- TEST_DONE();
-}