Skip to content

Commit 651fb89

Browse files
committed
CDRIVER-742 disable mock server tests on Solaris
get_port() in mock_server.c often fails on Solaris (tested on Solaris 11 specifically in Evergreen), logging "Failed to get listening port number: Socket operation on non-socket". This leads to test failures so I've disabled the mock server tests on Solaris. It would be nice to determine what's wrong with the mock server test framework on Solaris and reënable the tests.
1 parent 0758fb3 commit 651fb89

9 files changed

+163
-68
lines changed

tests/TestSuite.c

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,13 @@ TestSuite_CheckDummy (void)
262262
return 1;
263263
}
264264

265+
static int
266+
TestSuite_Skip (void)
267+
{
268+
return 0;
269+
}
270+
271+
265272
static void
266273
TestSuite_AddHelper (void *cb_)
267274
{
@@ -279,6 +286,41 @@ TestSuite_Add (TestSuite *suite, /* IN */
279286
}
280287

281288

289+
void
290+
TestSuite_AddOrSkip (TestSuite *suite, /* IN */
291+
const char *name, /* IN */
292+
TestFunc func, /* IN */
293+
bool skip) /* IN */
294+
{
295+
if (skip) {
296+
TestSuite_AddFull (suite, name, TestSuite_AddHelper, NULL, func,
297+
TestSuite_Skip);
298+
} else {
299+
TestSuite_AddFull (suite, name, TestSuite_AddHelper, NULL, func,
300+
NULL);
301+
}
302+
}
303+
304+
305+
void
306+
TestSuite_AddMockServerTest (TestSuite *suite, /* IN */
307+
const char *name, /* IN */
308+
TestFunc func) /* IN */
309+
{
310+
/* skip mock server tests on SunOS / Solaris,
311+
* mongoc_socket_getsockname doesn't work there for some reason */
312+
bool is_sun;
313+
314+
#if defined(__sun)
315+
is_sun = true;
316+
#else
317+
is_sun = false;
318+
#endif
319+
320+
TestSuite_AddOrSkip (suite, name, func, is_sun);
321+
}
322+
323+
282324
void
283325
TestSuite_AddWC (TestSuite *suite, /* IN */
284326
const char *name, /* IN */

tests/TestSuite.h

Lines changed: 28 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
#include <stdio.h>
2323

24+
#include <bson.h>
2425

2526
#ifdef __cplusplus
2627
extern "C" {
@@ -105,26 +106,33 @@ struct _TestSuite
105106
};
106107

107108

108-
void TestSuite_Init (TestSuite *suite,
109-
const char *name,
110-
int argc,
111-
char **argv);
112-
void TestSuite_Add (TestSuite *suite,
113-
const char *name,
114-
TestFunc func);
115-
void TestSuite_AddWC (TestSuite *suite,
116-
const char *name,
117-
TestFuncWC func,
118-
TestFuncDtor dtor,
119-
void *ctx);
120-
void TestSuite_AddFull (TestSuite *suite,
121-
const char *name,
122-
TestFuncWC func,
123-
TestFuncDtor dtor,
124-
void *ctx,
125-
int (*check) (void));
126-
int TestSuite_Run (TestSuite *suite);
127-
void TestSuite_Destroy (TestSuite *suite);
109+
void TestSuite_Init (TestSuite *suite,
110+
const char *name,
111+
int argc,
112+
char **argv);
113+
void TestSuite_Add (TestSuite *suite,
114+
const char *name,
115+
TestFunc func);
116+
void TestSuite_AddOrSkip (TestSuite *suite,
117+
const char *name,
118+
TestFunc func,
119+
bool skip);
120+
void TestSuite_AddMockServerTest (TestSuite *suite,
121+
const char *name,
122+
TestFunc func);
123+
void TestSuite_AddWC (TestSuite *suite,
124+
const char *name,
125+
TestFuncWC func,
126+
TestFuncDtor dtor,
127+
void *ctx);
128+
void TestSuite_AddFull (TestSuite *suite,
129+
const char *name,
130+
TestFuncWC func,
131+
TestFuncDtor dtor,
132+
void *ctx,
133+
int (*check) (void));
134+
int TestSuite_Run (TestSuite *suite);
135+
void TestSuite_Destroy (TestSuite *suite);
128136

129137
#ifdef __cplusplus
130138
}

tests/test-bulk.c

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2251,15 +2251,23 @@ test_bulk_install (TestSuite *suite)
22512251
TestSuite_Add (suite, "/BulkOperation/single_error_unordered_bulk",
22522252
test_single_error_unordered_bulk);
22532253
/* TODO: CDRIVER-707.
2254-
TestSuite_Add (suite, "/BulkOperation/write_concern/legacy/ordered",
2255-
test_write_concern_legacy_ordered);
2256-
TestSuite_Add (suite, "/BulkOperation/write_concern/legacy/unordered",
2257-
test_write_concern_legacy_unordered);
2254+
TestSuite_AddMockServerTest (suite,
2255+
"/BulkOperation/write_concern/legacy/ordered",
2256+
test_write_concern_legacy_ordered);
2257+
TestSuite_AddMockServerTest (suite,
2258+
"/BulkOperation/write_concern/legacy/unordered",
2259+
test_write_concern_legacy_unordered);
22582260
*/
2259-
TestSuite_Add (suite, "/BulkOperation/write_concern/write_command/ordered",
2260-
test_write_concern_write_command_ordered);
2261-
TestSuite_Add (suite, "/BulkOperation/write_concern/write_command/unordered",
2262-
test_write_concern_write_command_unordered);
2261+
TestSuite_AddMockServerTest (
2262+
suite,
2263+
"/BulkOperation/write_concern/write_command/ordered",
2264+
test_write_concern_write_command_ordered);
2265+
2266+
TestSuite_AddMockServerTest (
2267+
suite,
2268+
"/BulkOperation/write_concern/write_command/unordered",
2269+
test_write_concern_write_command_unordered);
2270+
22632271
TestSuite_Add (suite, "/BulkOperation/multiple_error_unordered_bulk",
22642272
test_multiple_error_unordered_bulk);
22652273
TestSuite_Add (suite, "/BulkOperation/large_inserts_ordered",

tests/test-mongoc-async.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,8 +169,12 @@ test_ismaster_ssl (void)
169169
void
170170
test_async_install (TestSuite *suite)
171171
{
172-
TestSuite_Add (suite, "/Async/ismaster", test_ismaster);
172+
TestSuite_AddMockServerTest (suite,
173+
"/Async/ismaster",
174+
test_ismaster);
173175
#ifdef MONGOC_ENABLE_SSL
174-
TestSuite_Add (suite, "/Async/ismaster_ssl", test_ismaster_ssl);
176+
TestSuite_AddMockServerTest (suite,
177+
"/Async/ismaster_ssl",
178+
test_ismaster_ssl);
175179
#endif
176180
}

tests/test-mongoc-client.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -689,16 +689,24 @@ test_client_install (TestSuite *suite)
689689
TestSuite_Add (suite, "/Client/ipv6", test_mongoc_client_ipv6);
690690
}
691691

692-
TestSuite_Add (suite, "/Client/read_prefs", test_mongoc_client_read_prefs);
693692
TestSuite_AddFull (suite, "/Client/authenticate", test_mongoc_client_authenticate, NULL, NULL, should_run_auth_tests);
694693
TestSuite_AddFull (suite, "/Client/authenticate_failure", test_mongoc_client_authenticate_failure, NULL, NULL, should_run_auth_tests);
695694
TestSuite_Add (suite, "/Client/command", test_mongoc_client_command);
696695
TestSuite_Add (suite, "/Client/command_secondary", test_mongoc_client_command_secondary);
697696
TestSuite_Add (suite, "/Client/preselect", test_mongoc_client_preselect);
698697
TestSuite_Add (suite, "/Client/exhaust_cursor", test_exhaust_cursor);
699698
TestSuite_Add (suite, "/Client/server_status", test_server_status);
700-
TestSuite_Add (suite, "/Client/database_names", test_get_database_names);
699+
TestSuite_AddMockServerTest (suite,
700+
"/Client/read_prefs",
701+
test_mongoc_client_read_prefs);
702+
TestSuite_AddMockServerTest (suite,
703+
"/Client/database_names",
704+
test_get_database_names);
701705

702706
/* TODO: CDRIVER-689 */
703-
/*TestSuite_Add (suite, "/Client/wire_version", test_wire_version);*/
707+
/*
708+
TestSuite_AddMockServerTest (suite,
709+
"/Client/wire_version",
710+
test_wire_version);
711+
*/
704712
}

tests/test-mongoc-collection.c

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1789,27 +1789,34 @@ test_collection_install (TestSuite *suite)
17891789
{
17901790
TestSuite_Add (suite, "/Collection/insert_bulk", test_insert_bulk);
17911791

1792-
TestSuite_Add (suite,
1793-
"/Collection/bulk_insert/legacy/large",
1794-
test_legacy_bulk_insert_large);
1795-
TestSuite_Add (suite,
1796-
"/Collection/bulk_insert/legacy/oversized_middle",
1797-
test_legacy_bulk_insert_oversized_middle);
1798-
TestSuite_Add (suite,
1799-
"/Collection/bulk_insert/legacy/oversized__middle_continue",
1800-
test_legacy_bulk_insert_oversized_continue_middle);
1801-
TestSuite_Add (suite,
1802-
"/Collection/bulk_insert/legacy/oversized_first",
1803-
test_legacy_bulk_insert_oversized_first);
1804-
TestSuite_Add (suite,
1805-
"/Collection/bulk_insert/legacy/oversized_first_continue",
1806-
test_legacy_bulk_insert_oversized_first_continue);
1807-
TestSuite_Add (suite,
1808-
"/Collection/bulk_insert/legacy/oversized_last",
1809-
test_legacy_bulk_insert_oversized_last);
1810-
TestSuite_Add (suite,
1811-
"/Collection/bulk_insert/legacy/oversized_last_continue",
1812-
test_legacy_bulk_insert_oversized_last_continue);
1792+
TestSuite_AddMockServerTest (
1793+
suite,
1794+
"/Collection/bulk_insert/legacy/large",
1795+
test_legacy_bulk_insert_large);
1796+
TestSuite_AddMockServerTest (
1797+
suite,
1798+
"/Collection/bulk_insert/legacy/oversized_middle",
1799+
test_legacy_bulk_insert_oversized_middle);
1800+
TestSuite_AddMockServerTest (
1801+
suite,
1802+
"/Collection/bulk_insert/legacy/oversized__middle_continue",
1803+
test_legacy_bulk_insert_oversized_continue_middle);
1804+
TestSuite_AddMockServerTest (
1805+
suite,
1806+
"/Collection/bulk_insert/legacy/oversized_first",
1807+
test_legacy_bulk_insert_oversized_first);
1808+
TestSuite_AddMockServerTest (
1809+
suite,
1810+
"/Collection/bulk_insert/legacy/oversized_first_continue",
1811+
test_legacy_bulk_insert_oversized_first_continue);
1812+
TestSuite_AddMockServerTest (
1813+
suite,
1814+
"/Collection/bulk_insert/legacy/oversized_last",
1815+
test_legacy_bulk_insert_oversized_last);
1816+
TestSuite_AddMockServerTest (
1817+
suite,
1818+
"/Collection/bulk_insert/legacy/oversized_last_continue",
1819+
test_legacy_bulk_insert_oversized_last_continue);
18131820

18141821
TestSuite_Add (suite, "/Collection/insert", test_insert);
18151822
TestSuite_Add (suite, "/Collection/save", test_save);

tests/test-mongoc-cursor.c

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -336,15 +336,28 @@ test_cursor_install (TestSuite *suite)
336336
TestSuite_Add (suite, "/Cursor/get_host", test_get_host);
337337
TestSuite_Add (suite, "/Cursor/clone", test_clone);
338338
TestSuite_Add (suite, "/Cursor/invalid_query", test_invalid_query);
339-
TestSuite_Add (suite, "/Cursor/kill/single", test_kill_cursors_single);
340-
TestSuite_Add (suite, "/Cursor/kill/pooled", test_kill_cursors_pooled);
339+
TestSuite_AddMockServerTest (suite,
340+
"/Cursor/kill/single",
341+
test_kill_cursors_single);
342+
TestSuite_AddMockServerTest (suite,
343+
"/Cursor/kill/pooled",
344+
test_kill_cursors_pooled);
345+
341346
/* TODO: CDRIVER-679
342-
TestSuite_Add (suite, "/Cursor/getmore_fail/with_primary/pooled",
343-
test_getmore_fail_with_primary_pooled);
344-
TestSuite_Add (suite, "/Cursor/getmore_fail/with_primary/single",
345-
test_getmore_fail_with_primary_single);
346-
TestSuite_Add (suite, "/Cursor/getmore_fail/no_primary/pooled",
347-
test_getmore_fail_no_primary_pooled);
348-
TestSuite_Add (suite, "/Cursor/getmore_fail/no_primary/single",
349-
test_getmore_fail_no_primary_single);*/
347+
TestSuite_AddMockServerTest (
348+
suite,
349+
"/Cursor/getmore_fail/with_primary/pooled",
350+
test_getmore_fail_with_primary_pooled);
351+
TestSuite_AddMockServerTest (
352+
suite,
353+
"/Cursor/getmore_fail/with_primary/single",
354+
test_getmore_fail_with_primary_single);
355+
TestSuite_AddMockServerTest (
356+
suite,
357+
"/Cursor/getmore_fail/no_primary/pooled",
358+
test_getmore_fail_no_primary_pooled);
359+
TestSuite_AddMockServerTest (
360+
suite,
361+
"/Cursor/getmore_fail/no_primary/single",
362+
test_getmore_fail_no_primary_single);*/
350363
}

tests/test-mongoc-database.c

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -466,8 +466,9 @@ test_database_install (TestSuite *suite)
466466
test_get_collection_info);
467467
TestSuite_Add (suite, "/Database/get_collection_names",
468468
test_get_collection_names);
469-
TestSuite_Add (suite, "/Database/get_collection_names_error",
470-
test_get_collection_names_error);
471469
TestSuite_Add (suite, "/Database/get_default_database",
472470
test_get_default_database);
471+
TestSuite_AddMockServerTest (suite,
472+
"/Database/get_collection_names_error",
473+
test_get_collection_names_error);
473474
}

tests/test-mongoc-topology-scanner.c

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -130,8 +130,12 @@ test_topology_scanner_ssl ()
130130
void
131131
test_topology_scanner_install (TestSuite *suite)
132132
{
133-
TestSuite_Add (suite, "/TOPOLOGY/scanner", test_topology_scanner);
133+
TestSuite_AddMockServerTest (suite,
134+
"/TOPOLOGY/scanner",
135+
test_topology_scanner);
134136
#ifdef MONGOC_ENABLE_SSL
135-
TestSuite_Add (suite, "/TOPOLOGY/scanner_ssl", test_topology_scanner_ssl);
137+
TestSuite_AddMockServerTest (suite,
138+
"/TOPOLOGY/scanner_ssl",
139+
test_topology_scanner_ssl);
136140
#endif
137141
}

0 commit comments

Comments
 (0)