@@ -1075,13 +1075,12 @@ test_bson_json_read_legacy_regex (void)
1075
1075
bson_destroy (& b );
1076
1076
1077
1077
r = bson_init_from_json (& b , "{\"a\": {\"$regex\": \"abc\"}}" , -1 , & error );
1078
- BSON_ASSERT (!r );
1079
- ASSERT_ERROR_CONTAINS (error ,
1080
- BSON_ERROR_JSON ,
1081
- BSON_JSON_ERROR_READ_INVALID_PARAM ,
1082
- "Missing \"$options\" after \"$regex\"" );
1078
+ ASSERT_OR_PRINT (r , error );
1079
+ BCON_EXTRACT (& b , "a" , BCONE_REGEX (pattern , flags ));
1080
+ ASSERT_CMPSTR (pattern , "abc" );
1081
+ ASSERT_CMPSTR (flags , "" );
1083
1082
1084
- memset (& error , 0 , sizeof error );
1083
+ bson_destroy (& b );
1085
1084
1086
1085
r = bson_init_from_json (& b , "{\"a\": {\"$options\": \"ix\"}}" , -1 , & error );
1087
1086
BSON_ASSERT (!r );
@@ -1091,6 +1090,24 @@ test_bson_json_read_legacy_regex (void)
1091
1090
"Missing \"$regex\" after \"$options\"" );
1092
1091
}
1093
1092
1093
+ static void
1094
+ test_bson_json_read_regex_no_options (void )
1095
+ {
1096
+ bson_t b ;
1097
+ bson_error_t error ;
1098
+ bool r ;
1099
+ const char * pattern ;
1100
+ const char * flags ;
1101
+
1102
+ r = bson_init_from_json (
1103
+ & b , "{\"a\": {\"$regularExpression\": { \"pattern\": \"abc\"}}}" , -1 , & error );
1104
+ ASSERT_OR_PRINT (r , error );
1105
+ BCON_EXTRACT (& b , "a" , BCONE_REGEX (pattern , flags ));
1106
+ ASSERT_CMPSTR (pattern , "abc" );
1107
+ ASSERT_CMPSTR (flags , "" );
1108
+
1109
+ bson_destroy (& b );
1110
+ }
1094
1111
1095
1112
static void
1096
1113
test_bson_json_read_regex_options_order (void )
@@ -3451,6 +3468,8 @@ test_json_install (TestSuite *suite)
3451
3468
suite , "/bson/json/read/dbpointer" , test_bson_json_read_dbpointer );
3452
3469
TestSuite_Add (
3453
3470
suite , "/bson/json/read/legacy_regex" , test_bson_json_read_legacy_regex );
3471
+ TestSuite_Add (
3472
+ suite , "/bson/json/read/regex_no_options" , test_bson_json_read_regex_no_options );
3454
3473
TestSuite_Add (suite ,
3455
3474
"/bson/json/read/regex_options_order" ,
3456
3475
test_bson_json_read_regex_options_order );
0 commit comments