@@ -3297,3 +3297,60 @@ static int s_mqtt5_client_options_defaults_set_fn(struct aws_allocator *allocato
32973297}
32983298
32993299AWS_TEST_CASE (mqtt5_client_options_defaults_set , s_mqtt5_client_options_defaults_set_fn )
3300+
3301+ /* Regression test for a case when proxy options set to unsupported type. */
3302+ static int s_mqtt5_client_options_set_invalid_proxy_fn (struct aws_allocator * allocator , void * ctx ) {
3303+ (void )ctx ;
3304+
3305+ aws_mqtt_library_init (allocator );
3306+
3307+ struct aws_event_loop_group * elg = aws_event_loop_group_new_default (allocator , 1 , NULL );
3308+
3309+ struct aws_host_resolver_default_options hr_options = {
3310+ .el_group = elg ,
3311+ .max_entries = 1 ,
3312+ };
3313+ struct aws_host_resolver * hr = aws_host_resolver_new_default (allocator , & hr_options );
3314+
3315+ struct aws_client_bootstrap_options bootstrap_options = {
3316+ .event_loop_group = elg ,
3317+ .host_resolver = hr ,
3318+ };
3319+ struct aws_client_bootstrap * bootstrap = aws_client_bootstrap_new (allocator , & bootstrap_options );
3320+
3321+ struct aws_mqtt5_packet_connect_view connect_options ;
3322+ AWS_ZERO_STRUCT (connect_options );
3323+
3324+ struct aws_http_proxy_options http_proxy_options ;
3325+ AWS_ZERO_STRUCT (http_proxy_options );
3326+ http_proxy_options .host = aws_byte_cursor_from_string (s_host_name );
3327+ http_proxy_options .port = 1234 ;
3328+ /* This connection type is not supported anymore, aws_mqtt5_client_options_storage_new should properly handle it */
3329+ http_proxy_options .connection_type = AWS_HPCT_HTTP_LEGACY ;
3330+
3331+ struct aws_mqtt5_client_options client_options = {
3332+ .host_name = aws_byte_cursor_from_string (s_host_name ),
3333+ .port = 1883 ,
3334+ .bootstrap = bootstrap ,
3335+ .lifecycle_event_handler = s_dummy_lifecycle_handler ,
3336+ .publish_received_handler = s_dummy_publish_received_ ,
3337+ .connect_options = & connect_options ,
3338+ .http_proxy_options = & http_proxy_options };
3339+
3340+ struct aws_mqtt5_client_options_storage * client_options_storage =
3341+ aws_mqtt5_client_options_storage_new (allocator , & client_options );
3342+
3343+ ASSERT_NULL (client_options_storage );
3344+
3345+ aws_mqtt5_client_options_storage_destroy (client_options_storage );
3346+ aws_client_bootstrap_release (bootstrap );
3347+ aws_host_resolver_release (hr );
3348+ aws_event_loop_group_release (elg );
3349+
3350+ aws_thread_join_all_managed ();
3351+ aws_mqtt_library_clean_up ();
3352+
3353+ return AWS_OP_SUCCESS ;
3354+ }
3355+
3356+ AWS_TEST_CASE (mqtt5_client_options_set_invalid_proxy , s_mqtt5_client_options_set_invalid_proxy_fn )
0 commit comments