@@ -1080,6 +1080,41 @@ test_command_with_opts_modern (void)
10801080}
10811081
10821082
1083+ static void
1084+ test_command_no_errmsg (void )
1085+ {
1086+ mock_server_t * server ;
1087+ mongoc_client_t * client ;
1088+ bson_t * cmd ;
1089+ bson_error_t error ;
1090+ future_t * future ;
1091+ request_t * request ;
1092+
1093+ server = mock_server_with_autoismaster (0 );
1094+ mock_server_run (server );
1095+ client = mongoc_client_new_from_uri (mock_server_get_uri (server ));
1096+ mongoc_client_set_error_api (client , 2 );
1097+
1098+ cmd = tmp_bson ("{'command': 1}" );
1099+ future = future_client_command_simple (client , "admin" , cmd , NULL , NULL ,
1100+ & error );
1101+
1102+ request = mock_server_receives_command (server , "admin" ,
1103+ MONGOC_QUERY_SLAVE_OK , NULL );
1104+
1105+ /* auth errors have $err, not errmsg. we'd raised "Unknown command error",
1106+ * see CDRIVER-1928 */
1107+ mock_server_replies_simple (request , "{'ok': 0, 'code': 7, '$err': 'bad!'}" );
1108+ ASSERT (!future_get_bool (future ));
1109+ ASSERT_ERROR_CONTAINS (error , MONGOC_ERROR_SERVER , 7 , "bad!" );
1110+
1111+ future_destroy (future );
1112+ request_destroy (request );
1113+ mongoc_client_destroy (client );
1114+ mock_server_destroy (server );
1115+ }
1116+
1117+
10831118static void
10841119test_unavailable_seeds (void )
10851120{
@@ -2541,6 +2576,7 @@ test_client_install (TestSuite *suite)
25412576 TestSuite_AddLive (suite , "/Client/command_with_opts/read_prefs" , test_command_with_opts_read_prefs );
25422577 TestSuite_AddLive (suite , "/Client/command_with_opts/legacy" , test_command_with_opts_legacy );
25432578 TestSuite_AddLive (suite , "/Client/command_with_opts/modern" , test_command_with_opts_modern );
2579+ TestSuite_AddLive (suite , "/Client/command/no_errmsg" , test_command_no_errmsg );
25442580 TestSuite_Add (suite , "/Client/unavailable_seeds" , test_unavailable_seeds );
25452581 TestSuite_Add (suite , "/Client/rs_seeds_no_connect/single" , test_rs_seeds_no_connect_single );
25462582 TestSuite_Add (suite , "/Client/rs_seeds_no_connect/pooled" , test_rs_seeds_no_connect_pooled );
0 commit comments