Skip to content

Commit 9e58464

Browse files
committed
forward-port CDRIVER-721 tests to 1.2.0-dev
Discovered CDRIVER-789 from these tests.
1 parent 3bdd8bc commit 9e58464

File tree

3 files changed

+331
-109
lines changed

3 files changed

+331
-109
lines changed

tests/mock_server/mock-server.c

Lines changed: 46 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,43 @@ mock_server_with_autoismaster (int32_t max_wire_version)
158158
}
159159

160160

161+
static bool
162+
hangup (request_t *request,
163+
void *ctx)
164+
{
165+
mock_server_hangs_up (request);
166+
request_destroy (request);
167+
return true;
168+
}
169+
170+
171+
/*--------------------------------------------------------------------------
172+
*
173+
* mock_server_down --
174+
*
175+
* A new mock_server_t hangs up. Call mock_server_run to start it,
176+
* then mock_server_get_uri to connect.
177+
*
178+
* Returns:
179+
* A server you must mock_server_destroy.
180+
*
181+
* Side effects:
182+
* None.
183+
*
184+
*--------------------------------------------------------------------------
185+
*/
186+
187+
mock_server_t *
188+
mock_server_down (void)
189+
{
190+
mock_server_t *server = mock_server_new ();
191+
192+
mock_server_autoresponds (server, hangup, NULL, NULL);
193+
194+
return server;
195+
}
196+
197+
161198
#ifdef MONGOC_ENABLE_SSL
162199

163200
/*--------------------------------------------------------------------------
@@ -416,13 +453,19 @@ auto_ismaster (request_t *request,
416453

417454
int
418455
mock_server_auto_ismaster (mock_server_t *server,
419-
const char *response_json)
456+
const char *response_json,
457+
...)
420458
{
421-
char *copy = bson_strdup (response_json);
459+
char *formatted_response_json;
460+
va_list args;
461+
462+
va_start (args, response_json);
463+
formatted_response_json = bson_strdupv_printf (response_json, args);
464+
va_end (args);
422465

423466
return mock_server_autoresponds (server,
424467
auto_ismaster,
425-
(void *) copy,
468+
(void *) formatted_response_json,
426469
bson_free);
427470
}
428471

tests/mock_server/mock-server.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ mock_server_t *mock_server_new ();
4040

4141
mock_server_t *mock_server_with_autoismaster (int32_t max_wire_version);
4242

43+
mock_server_t *mock_server_down (void);
44+
4345
int mock_server_autoresponds (mock_server_t *server,
4446
autoresponder_t responder,
4547
void *data,
@@ -49,8 +51,8 @@ void mock_server_remove_autoresponder (mock_server_t *server,
4951
int id);
5052

5153
int mock_server_auto_ismaster (mock_server_t *server,
52-
const char *response_json);
53-
54+
const char *response_json,
55+
...);
5456

5557
#ifdef MONGOC_ENABLE_SSL
5658

0 commit comments

Comments
 (0)