Skip to content

Commit 12bbc40

Browse files
committed
Add test
1 parent 5725f91 commit 12bbc40

2 files changed

Lines changed: 58 additions & 0 deletions

File tree

tests/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,7 @@ add_test_case(mqtt5_operation_disconnect_connection_settings_validation_failure_
262262
add_test_case(mqtt5_operation_disconnect_connection_settings_validation_failure_promote_zero_session_expiry)
263263

264264
add_test_case(mqtt5_client_options_defaults_set)
265+
add_test_case(mqtt5_client_options_set_invalid_proxy)
265266

266267
add_test_case(mqtt5_operation_bind_packet_id_empty_table)
267268
add_test_case(mqtt5_operation_bind_packet_id_multiple_with_existing)

tests/v5/mqtt5_operation_and_storage_tests.c

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3297,3 +3297,60 @@ static int s_mqtt5_client_options_defaults_set_fn(struct aws_allocator *allocato
32973297
}
32983298

32993299
AWS_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

Comments
 (0)