aboutsummaryrefslogtreecommitdiffstats
path: root/vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp')
-rw-r--r--vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp22
1 files changed, 14 insertions, 8 deletions
diff --git a/vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp b/vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp
index 245368b6a7b..5dc85bc567f 100644
--- a/vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp
+++ b/vespalib/src/tests/net/tls/auto_reloading_tls_crypto_engine/auto_reloading_tls_crypto_engine_test.cpp
@@ -2,6 +2,7 @@
#include <vespa/vespalib/io/fileutil.h>
#include <vespa/vespalib/net/tls/auto_reloading_tls_crypto_engine.h>
+#include <vespa/vespalib/net/tls/statistics.h>
#include <vespa/vespalib/net/tls/transport_security_options.h>
#include <vespa/vespalib/net/tls/transport_security_options_reading.h>
#include <vespa/vespalib/net/tls/impl/openssl_tls_context_impl.h>
@@ -106,17 +107,11 @@ struct Fixture {
}
vespalib::string current_cert_chain() const {
- auto impl = engine->acquire_current_engine();
- // Leaks implementation details galore, but it's not very likely that we'll use
- // anything but OpenSSL (or compatible APIs) in practice...
- auto& ctx_impl = dynamic_cast<const impl::OpenSslTlsContextImpl&>(*impl->tls_context());
- return ctx_impl.transport_security_options().cert_chain_pem();
+ return engine->acquire_current_engine()->tls_context()->transport_security_options().cert_chain_pem();
}
AuthorizationMode current_authorization_mode() const {
- auto impl = engine->acquire_current_engine();
- auto& ctx_impl = dynamic_cast<const impl::OpenSslTlsContextImpl&>(*impl->tls_context());
- return ctx_impl.authorization_mode();
+ return engine->acquire_current_engine()->tls_context()->authorization_mode();
}
};
@@ -143,4 +138,15 @@ TEST_FF("Authorization mode is propagated to engine", Fixture(50ms, Authorizatio
EXPECT_EQUAL(AuthorizationMode::LogOnly, f1.current_authorization_mode());
}
+TEST_FF("Config reload failure increments failure statistic", Fixture(50ms), TimeBomb(60)) {
+ auto before = ConfigStatistics::get().snapshot();
+
+ write_file("test_cert.pem.tmp", "Broken file oh no :(");
+ rename("test_cert.pem.tmp", "test_cert.pem", false, false);
+
+ while (ConfigStatistics::get().snapshot().subtract(before).failed_config_reloads == 0) {
+ std::this_thread::sleep_for(10ms);
+ }
+}
+
TEST_MAIN() { TEST_RUN_ALL(); }