Skip to content

Commit be69c67

Browse files
committed
remove interpose in MOCK_POOL_NOSSL
Returning `nullptr` can result in exceptions. Removing the call to `interpose` will have the default behavior call the C driver function. The behavior can be overriden by the test. Use `visit` in test functions that do not need to override the C driver function. `visit` is called in addition to the C driver function.
1 parent 89384b6 commit be69c67

File tree

3 files changed

+6
-13
lines changed

3 files changed

+6
-13
lines changed

src/mongocxx/pool.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ MONGOCXX_INLINE_NAMESPACE_BEGIN
3737
static mongoc_client_pool_t* construct_client_pool(mongoc_uri_t* uri) {
3838
bson_error_t error;
3939
auto pool = libmongoc::client_pool_new_with_error(uri, &error);
40-
if (error.code) {
40+
if (!pool) {
4141
// If constructing a client pool failed, throw an exception from the bson_error_t.
4242
throw_exception<operation_exception>(error);
4343
}

src/mongocxx/test/pool.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,15 @@ TEST_CASE("a pool is created with the correct MongoDB URI", "[pool]") {
3535
instance::current();
3636

3737
bool destroy_called = false;
38-
client_pool_destroy->interpose([&](::mongoc_client_pool_t*) { destroy_called = true; });
38+
client_pool_destroy->visit([&](::mongoc_client_pool_t*) { destroy_called = true; });
3939

4040
std::string expected_uri("mongodb://mongodb.example.com:9999");
4141
uri mongodb_uri{expected_uri};
4242

4343
std::string actual_uri{};
4444
bool new_called = false;
4545

46-
client_pool_new_with_error->interpose([&](const mongoc_uri_t* uri, bson_error_t* error) {
46+
client_pool_new_with_error->visit([&](const mongoc_uri_t* uri, bson_error_t* error) {
4747
new_called = true;
4848
actual_uri = mongoc_uri_get_string(uri);
4949
error->code = 0;
@@ -89,7 +89,7 @@ TEST_CASE(
8989

9090
::mongoc_ssl_opt_t interposed = {};
9191

92-
client_pool_set_ssl_opts->interpose(
92+
client_pool_set_ssl_opts->visit(
9393
[&](::mongoc_client_pool_t*, const ::mongoc_ssl_opt_t* opts) {
9494
set_tls_opts_called = true;
9595
interposed = *opts;
@@ -114,13 +114,13 @@ TEST_CASE("calling acquire on a pool returns an entry that manages its client",
114114
instance::current();
115115

116116
bool pop_called = false;
117-
client_pool_pop->interpose([&](::mongoc_client_pool_t*) {
117+
client_pool_pop->visit([&](::mongoc_client_pool_t*) {
118118
pop_called = true;
119119
return nullptr;
120120
});
121121

122122
bool push_called = false;
123-
client_pool_push->interpose(
123+
client_pool_push->visit(
124124
[&](::mongoc_client_pool_t*, ::mongoc_client_t*) { push_called = true; });
125125

126126
SECTION("entry releases its client at end of scope") {

src/third_party/catch/include/helpers.hpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -57,17 +57,10 @@ MONGOCXX_INLINE_NAMESPACE_END
5757

5858
#define MOCK_POOL_NOSSL \
5959
auto client_pool_new_with_error = libmongoc::client_pool_new_with_error.create_instance(); \
60-
client_pool_new_with_error \
61-
->interpose([](const mongoc_uri_t*, bson_error_t*) { return nullptr; }) \
62-
.forever(); \
6360
auto client_pool_destroy = libmongoc::client_pool_destroy.create_instance(); \
64-
client_pool_destroy->interpose([&](::mongoc_client_pool_t*) {}).forever(); \
6561
auto client_pool_pop = libmongoc::client_pool_pop.create_instance(); \
66-
client_pool_pop->interpose([](::mongoc_client_pool_t*) { return nullptr; }).forever(); \
6762
auto client_pool_push = libmongoc::client_pool_push.create_instance(); \
68-
client_pool_push->interpose([](::mongoc_client_pool_t*, ::mongoc_client_t*) {}).forever(); \
6963
auto client_pool_try_pop = libmongoc::client_pool_try_pop.create_instance(); \
70-
client_pool_try_pop->interpose([](::mongoc_client_pool_t*) { return nullptr; }).forever();
7164

7265
#if defined(MONGOCXX_ENABLE_SSL) && defined(MONGOC_ENABLE_SSL)
7366
#define MOCK_POOL \

0 commit comments

Comments
 (0)