Skip to content

Commit fd53837

Browse files
committed
CXX-599 call std::abort() if SetUpTestCase fails in read_preference_test
1 parent aea39ce commit fd53837

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

src/mongo/integration/replica_set/read_preference.cpp

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717

1818
#include "mongo/integration/integration_test.h"
1919

20+
#include <cstdlib>
21+
2022
#include <memory>
2123

2224
#include "mongo/client/dbclient.h"
@@ -34,18 +36,27 @@ namespace {
3436
class ReadPreferenceTest : public ReplicaSetTest {
3537
public:
3638
static void SetUpTestCase() {
37-
ReplicaSetTest::SetUpTestCase();
38-
std::string errmsg;
39+
try {
40+
ReplicaSetTest::SetUpTestCase();
41+
std::string errmsg;
3942

40-
ConnectionString cs = ConnectionString::parse(rs().mongodbUri(), errmsg);
41-
replset_conn.reset(static_cast<DBClientReplicaSet*>(cs.connect(errmsg)));
42-
replset_conn->dropCollection(TEST_NS);
43+
ConnectionString cs = ConnectionString::parse(rs().mongodbUri(), errmsg);
44+
replset_conn.reset(static_cast<DBClientReplicaSet*>(cs.connect(errmsg)));
45+
replset_conn->dropCollection(TEST_NS);
4346

44-
primary_conn.reset(new DBClientConnection());
45-
primary_conn->connect(rs().primary().uri());
47+
primary_conn.reset(new DBClientConnection());
48+
primary_conn->connect(rs().primary().uri());
4649

47-
secondary_conn.reset(new DBClientConnection());
48-
secondary_conn->connect(rs().secondaries().front().uri());
50+
secondary_conn.reset(new DBClientConnection());
51+
secondary_conn->connect(rs().secondaries().front().uri());
52+
return;
53+
54+
} catch (const std::exception& ex) {
55+
std::cout << "Got fatal error during test setup: " << ex.what() << std::endl;
56+
} catch (...) {
57+
std::cout << "Got unknown error during test setup" << std::endl;
58+
}
59+
std::abort();
4960
}
5061

5162
static auto_ptr<DBClientReplicaSet> replset_conn;

0 commit comments

Comments
 (0)