diff options
author | Håvard Pettersen <havardpe@oath.com> | 2018-09-03 09:54:06 +0000 |
---|---|---|
committer | Håvard Pettersen <havardpe@oath.com> | 2018-09-03 09:54:06 +0000 |
commit | a67d62b619af8a01bff2dffcdcf089368cf5401a (patch) | |
tree | 71e28eb0724317bd3280b38cd3a7f74366b63fdf /fnet | |
parent | 494d1479c6ca7ff618b4aab059a11383d1d98807 (diff) |
also run invoke/session tests with xor crypto engine
bonus: wire crypto engine through supervisor
Diffstat (limited to 'fnet')
-rw-r--r-- | fnet/src/tests/frt/rpc/CMakeLists.txt | 2 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/invoke.cpp | 14 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/my_crypto_engine.hpp | 16 | ||||
-rw-r--r-- | fnet/src/tests/frt/rpc/session.cpp | 13 | ||||
-rw-r--r-- | fnet/src/vespa/fnet/frt/supervisor.cpp | 5 | ||||
-rw-r--r-- | fnet/src/vespa/fnet/frt/supervisor.h | 9 |
6 files changed, 48 insertions, 11 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(); +} diff --git a/fnet/src/vespa/fnet/frt/supervisor.cpp b/fnet/src/vespa/fnet/frt/supervisor.cpp index 0d2a9b68f17..927e2e84b94 100644 --- a/fnet/src/vespa/fnet/frt/supervisor.cpp +++ b/fnet/src/vespa/fnet/frt/supervisor.cpp @@ -26,7 +26,8 @@ FRT_Supervisor::FRT_Supervisor(FNET_Transport *transport, } -FRT_Supervisor::FRT_Supervisor(uint32_t threadStackSize, +FRT_Supervisor::FRT_Supervisor(vespalib::CryptoEngine::SP crypto, + uint32_t threadStackSize, uint32_t maxThreads) : _transport(nullptr), _threadPool(nullptr), @@ -39,7 +40,7 @@ FRT_Supervisor::FRT_Supervisor(uint32_t threadStackSize, _connHooks(*this), _methodMismatchHook(nullptr) { - _transport = new FNET_Transport(); + _transport = new FNET_Transport(std::move(crypto), 1); assert(_transport != nullptr); if (threadStackSize > 0) { _threadPool = new FastOS_ThreadPool(threadStackSize, maxThreads); diff --git a/fnet/src/vespa/fnet/frt/supervisor.h b/fnet/src/vespa/fnet/frt/supervisor.h index e818e506186..051c1caceeb 100644 --- a/fnet/src/vespa/fnet/frt/supervisor.h +++ b/fnet/src/vespa/fnet/frt/supervisor.h @@ -9,6 +9,7 @@ #include <vespa/fnet/ipackethandler.h> #include <vespa/fnet/connection.h> #include <vespa/fnet/simplepacketstreamer.h> +#include <vespa/vespalib/net/crypto_engine.h> class FNET_Transport; class FRT_Target; @@ -82,10 +83,10 @@ private: FRT_Supervisor &operator=(const FRT_Supervisor &); public: - FRT_Supervisor(FNET_Transport *transport, - FastOS_ThreadPool *threadPool); - FRT_Supervisor(uint32_t threadStackSize = 65000, - uint32_t maxThreads = 0); + FRT_Supervisor(FNET_Transport *transport, FastOS_ThreadPool *threadPool); + FRT_Supervisor(vespalib::CryptoEngine::SP crypto, uint32_t threadStackSize = 65000, uint32_t maxThreads = 0); + FRT_Supervisor(uint32_t threadStackSize = 65000, uint32_t maxThreads = 0) + : FRT_Supervisor(vespalib::CryptoEngine::get_default(), threadStackSize, maxThreads) {} virtual ~FRT_Supervisor(); bool StandAlone() { return _standAlone; } |