diff options
author | Billy Donahue <billy.donahue@mongodb.com> | 2023-04-13 00:06:51 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-04-13 00:41:18 +0000 |
commit | dc74aa4451556377e83d4f645cf5c2f8c61ab38c (patch) | |
tree | df24bc2c4fa53d06c7fdc8f8c111a7fba7f875b5 /src/mongo/transport/asio/asio_transport_layer_test.cpp | |
parent | 7b9a7f3853a3e1b1b6530b05ecdfa175730dae7f (diff) | |
download | mongo-dc74aa4451556377e83d4f645cf5c2f8c61ab38c.tar.gz |
SERVER-76024 transport_test fail test if TLS cert cannot load
Diffstat (limited to 'src/mongo/transport/asio/asio_transport_layer_test.cpp')
-rw-r--r-- | src/mongo/transport/asio/asio_transport_layer_test.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/src/mongo/transport/asio/asio_transport_layer_test.cpp b/src/mongo/transport/asio/asio_transport_layer_test.cpp index 71fbdc5a455..192bf6ab97a 100644 --- a/src/mongo/transport/asio/asio_transport_layer_test.cpp +++ b/src/mongo/transport/asio/asio_transport_layer_test.cpp @@ -79,6 +79,17 @@ using SetsockoptPtr = char*; using SetsockoptPtr = void*; #endif +std::string loadFile(std::string filename) try { + std::ifstream f; + f.exceptions(f.exceptions() | std::ios::failbit); + f.open(filename); + return {std::istreambuf_iterator<char>{f}, std::istreambuf_iterator<char>{}}; +} catch (const std::ifstream::failure& ex) { + auto ec = lastSystemError(); + FAIL("Failed to load file: \"{}\": {}: {}"_format(filename, ex.what(), errorMessage(ec))); + MONGO_UNREACHABLE; +} + class JoinThread : public stdx::thread { public: using stdx::thread::thread; @@ -836,11 +847,7 @@ TEST_F(AsioTransportLayerWithServiceContextTest, ShutdownDuringSSLHandshake) { conn.setSoTimeout(1); // 1 second timeout TransientSSLParams params; - params.sslClusterPEMPayload = [] { - std::ifstream input("jstests/libs/client.pem"); - std::string str((std::istreambuf_iterator<char>(input)), std::istreambuf_iterator<char>()); - return str; - }(); + params.sslClusterPEMPayload = loadFile("jstests/libs/client.pem"); params.targetedClusterConnectionString = ConnectionString::forLocal(); auto status = conn.connectSocketOnly({"localhost", port}, std::move(params)); |