summaryrefslogtreecommitdiffstats
path: root/fnet/src/tests/frt
diff options
context:
space:
mode:
authorHåvard Pettersen <havardpe@oath.com>2018-09-03 09:54:06 +0000
committerHåvard Pettersen <havardpe@oath.com>2018-09-03 09:54:06 +0000
commita67d62b619af8a01bff2dffcdcf089368cf5401a (patch)
tree71e28eb0724317bd3280b38cd3a7f74366b63fdf /fnet/src/tests/frt
parent494d1479c6ca7ff618b4aab059a11383d1d98807 (diff)
also run invoke/session tests with xor crypto engine
bonus: wire crypto engine through supervisor
Diffstat (limited to 'fnet/src/tests/frt')
-rw-r--r--fnet/src/tests/frt/rpc/CMakeLists.txt2
-rw-r--r--fnet/src/tests/frt/rpc/invoke.cpp14
-rw-r--r--fnet/src/tests/frt/rpc/my_crypto_engine.hpp16
-rw-r--r--fnet/src/tests/frt/rpc/session.cpp13
4 files changed, 40 insertions, 5 deletions
diff --git a/fnet/src/tests/frt/rpc/CMakeLists.txt b/fnet/src/tests/frt/rpc/CMakeLists.txt
index b426ed42397..f935590ee77 100644
--- a/fnet/src/tests/frt/rpc/CMakeLists.txt
+++ b/fnet/src/tests/frt/rpc/CMakeLists.txt
@@ -6,6 +6,7 @@ vespa_add_executable(fnet_invoke_test_app TEST
fnet
)
vespa_add_test(NAME fnet_invoke_test_app COMMAND fnet_invoke_test_app)
+vespa_add_test(NAME fnet_invoke_test_app_xor COMMAND fnet_invoke_test_app ENVIRONMENT "CRYPTOENGINE=xor")
vespa_add_executable(fnet_detach_return_invoke_test_app TEST
SOURCES
detach_return_invoke.cpp
@@ -20,6 +21,7 @@ vespa_add_executable(fnet_session_test_app TEST
fnet
)
vespa_add_test(NAME fnet_session_test_app COMMAND fnet_session_test_app)
+vespa_add_test(NAME fnet_session_test_app_xor COMMAND fnet_session_test_app ENVIRONMENT "CRYPTOENGINE=xor")
vespa_add_executable(fnet_sharedblob_test_app TEST
SOURCES
sharedblob.cpp
diff --git a/fnet/src/tests/frt/rpc/invoke.cpp b/fnet/src/tests/frt/rpc/invoke.cpp
index f44a58dd8b3..787adb227f9 100644
--- a/fnet/src/tests/frt/rpc/invoke.cpp
+++ b/fnet/src/tests/frt/rpc/invoke.cpp
@@ -6,6 +6,11 @@
//-------------------------------------------------------------
+#include "my_crypto_engine.hpp"
+vespalib::CryptoEngine::SP crypto;
+
+//-------------------------------------------------------------
+
std::mutex _delayedReturnCntLock;
uint32_t _delayedReturnCnt = 0;
@@ -400,8 +405,8 @@ struct State {
FRT_RPCRequest *_req;
State()
- : _client(),
- _server(),
+ : _client(crypto),
+ _server(crypto),
_rpc(&_server, _client.GetScheduler()),
_echo(),
_peerSpec(),
@@ -929,4 +934,7 @@ TEST_F("invoke test", State()) {
EXPECT_TRUE(_phase_echo_cnt == 1);
}
-TEST_MAIN() { TEST_RUN_ALL(); }
+TEST_MAIN() {
+ crypto = my_crypto_engine();
+ TEST_RUN_ALL();
+}
diff --git a/fnet/src/tests/frt/rpc/my_crypto_engine.hpp b/fnet/src/tests/frt/rpc/my_crypto_engine.hpp
new file mode 100644
index 00000000000..6f573e5695a
--- /dev/null
+++ b/fnet/src/tests/frt/rpc/my_crypto_engine.hpp
@@ -0,0 +1,16 @@
+// Copyright 2018 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+
+vespalib::CryptoEngine::SP my_crypto_engine() {
+ const char *env_str = getenv("CRYPTOENGINE");
+ if (!env_str) {
+ fprintf(stderr, "crypto engine: default\n");
+ return vespalib::CryptoEngine::get_default();
+ }
+ std::string engine(env_str);
+ if (engine == "xor") {
+ fprintf(stderr, "crypto engine: xor\n");
+ return std::make_shared<vespalib::XorCryptoEngine>();
+ }
+ TEST_FATAL(("invalid crypto engine: " + engine).c_str());
+ abort();
+}
diff --git a/fnet/src/tests/frt/rpc/session.cpp b/fnet/src/tests/frt/rpc/session.cpp
index 2e920ac9f98..b84db9b4e88 100644
--- a/fnet/src/tests/frt/rpc/session.cpp
+++ b/fnet/src/tests/frt/rpc/session.cpp
@@ -4,6 +4,12 @@
#include <vespa/fnet/frt/frt.h>
#include <mutex>
+//-------------------------------------------------------------
+
+#include "my_crypto_engine.hpp"
+vespalib::CryptoEngine::SP crypto;
+
+//-------------------------------------------------------------
class Session
{
@@ -82,7 +88,7 @@ struct RPC : public FRT_Invokable
TEST("session") {
RPC rpc;
- FRT_Supervisor orb;
+ FRT_Supervisor orb(crypto);
char spec[64];
rpc.Init(&orb);
ASSERT_TRUE(orb.Listen("tcp/0"));
@@ -121,4 +127,7 @@ TEST("session") {
EXPECT_TRUE(!rpc.bogusFini);
};
-TEST_MAIN() { TEST_RUN_ALL(); }
+TEST_MAIN() {
+ crypto = my_crypto_engine();
+ TEST_RUN_ALL();
+}