summaryrefslogtreecommitdiff
path: root/src/mongo/transport/asio/asio_transport_layer_test.cpp
diff options
context:
space:
mode:
authorBilly Donahue <billy.donahue@mongodb.com>2023-04-13 00:06:51 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-04-13 00:41:18 +0000
commitdc74aa4451556377e83d4f645cf5c2f8c61ab38c (patch)
treedf24bc2c4fa53d06c7fdc8f8c111a7fba7f875b5 /src/mongo/transport/asio/asio_transport_layer_test.cpp
parent7b9a7f3853a3e1b1b6530b05ecdfa175730dae7f (diff)
downloadmongo-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.cpp17
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));