summaryrefslogtreecommitdiffstats
path: root/messagebus/src/tests/sendadapter/sendadapter.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'messagebus/src/tests/sendadapter/sendadapter.cpp')
-rw-r--r--messagebus/src/tests/sendadapter/sendadapter.cpp101
1 files changed, 37 insertions, 64 deletions
diff --git a/messagebus/src/tests/sendadapter/sendadapter.cpp b/messagebus/src/tests/sendadapter/sendadapter.cpp
index e3fa3278300..1daf84a6ce8 100644
--- a/messagebus/src/tests/sendadapter/sendadapter.cpp
+++ b/messagebus/src/tests/sendadapter/sendadapter.cpp
@@ -1,11 +1,12 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
#include <vespa/messagebus/testlib/receptor.h>
-#include <vespa/messagebus/testlib/simplemessage.h>
#include <vespa/messagebus/testlib/simpleprotocol.h>
#include <vespa/messagebus/testlib/simplereply.h>
#include <vespa/messagebus/testlib/slobrok.h>
#include <vespa/messagebus/testlib/testserver.h>
+#include <vespa/messagebus/network/rpcsendv1.h>
+#include <vespa/messagebus/network/rpcsendv2.h>
#include <vespa/vespalib/testkit/testapp.h>
#include <vespa/log/log.h>
@@ -58,21 +59,7 @@ public:
bool start();
};
-class Test : public vespalib::TestApp {
-private:
- static const int TIMEOUT_SECS = 60;
-
- bool testVersionedSend(TestData &data,
- const vespalib::Version &srcVersion,
- const vespalib::Version &itrVersion,
- const vespalib::Version &dstVersion);
- void testSendAdapters(TestData &data);
-
-public:
- int Main() override;
-};
-
-TEST_APPHOOK(Test);
+static const int TIMEOUT_SECS = 6;
TestData::TestData() :
_slobrok(),
@@ -116,55 +103,8 @@ TestData::start()
return true;
}
-int
-Test::Main()
-{
- TEST_INIT("sendadapter_test");
-
- TestData data;
- ASSERT_TRUE(data.start());
-
- testSendAdapters(data); TEST_FLUSH();
-
- TEST_DONE();
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Tests
-//
-////////////////////////////////////////////////////////////////////////////////
-
-void
-Test::testSendAdapters(TestData &data)
-{
- std::vector<vespalib::Version> versions;
- versions.push_back(vespalib::Version(5, 0));
- versions.push_back(vespalib::Version(5, 1));
-
- for (std::vector<vespalib::Version>::const_iterator srcVersion = versions.begin();
- srcVersion != versions.end(); ++srcVersion)
- {
- for (std::vector<vespalib::Version>::const_iterator itrVersion = versions.begin();
- itrVersion != versions.end(); ++itrVersion)
- {
- for (std::vector<vespalib::Version>::const_iterator dstVersion = versions.begin();
- dstVersion != versions.end(); ++dstVersion)
- {
- EXPECT_TRUE(testVersionedSend(data, *srcVersion, *itrVersion, *dstVersion));
- }
- }
- }
-}
-
-////////////////////////////////////////////////////////////////////////////////
-//
-// Utilities
-//
-////////////////////////////////////////////////////////////////////////////////
-
bool
-Test::testVersionedSend(TestData &data,
+testVersionedSend(TestData &data,
const vespalib::Version &srcVersion,
const vespalib::Version &itrVersion,
const vespalib::Version &dstVersion)
@@ -250,3 +190,36 @@ Test::testVersionedSend(TestData &data,
}
return true;
}
+
+
+void
+testSendAdapters(TestData &data, const std::vector<vespalib::Version> & versions)
+{
+ for (vespalib::Version src : versions) {
+ for (vespalib::Version intermediate : versions) {
+ for (vespalib::Version dst : versions) {
+ EXPECT_TRUE(testVersionedSend(data, src, intermediate, dst));
+ }
+ }
+ }
+}
+
+TEST("test that all known versions are present") {
+ TestData data;
+ ASSERT_TRUE(data.start());
+ EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(5, 0)) != nullptr);
+ EXPECT_TRUE(dynamic_cast<mbus::RPCSendV1 *>(data._srcServer.net.getSendAdapter(vespalib::Version(5, 0))) != nullptr);
+ EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(6, 147)) != nullptr);
+ EXPECT_TRUE(dynamic_cast<mbus::RPCSendV1 *>(data._srcServer.net.getSendAdapter(vespalib::Version(6, 147))) != nullptr);
+ EXPECT_TRUE(data._srcServer.net.getSendAdapter(vespalib::Version(6, 148)) != nullptr);
+ EXPECT_TRUE(dynamic_cast<mbus::RPCSendV2 *>(data._srcServer.net.getSendAdapter(vespalib::Version(6, 148))) != nullptr);
+
+}
+
+TEST("test that ee can send between multiple versions") {
+ TestData data;
+ ASSERT_TRUE(data.start());
+ TEST_DO(testSendAdapters(data, {vespalib::Version(5, 0), vespalib::Version(6, 147), vespalib::Version(6, 148)}));
+}
+
+TEST_MAIN() { TEST_RUN_ALL(); }