Skip to content

Commit

Permalink
Add test for mqtt3 websocket failed transform
Browse files Browse the repository at this point in the history
  • Loading branch information
sfodagain committed Feb 19, 2025
1 parent 1bf1224 commit 88b64f9
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
2 changes: 2 additions & 0 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -108,6 +108,8 @@ add_test_case(mqtt_validation_failure_connect_invalid_client_id_utf8)
add_test_case(mqtt_validation_failure_invalid_will_topic_utf8)
add_test_case(mqtt_validation_failure_invalid_username_utf8)

add_test_case(mqtt_websocket_failed_transform)

# Operation statistics tests
add_test_case(mqtt_operation_statistics_simple_publish)
add_test_case(mqtt_operation_statistics_offline_publish)
Expand Down
37 changes: 37 additions & 0 deletions tests/v3/connection_state_test.c
Original file line number Diff line number Diff line change
Expand Up @@ -3968,3 +3968,40 @@ AWS_TEST_CASE_FIXTURE(
s_test_mqtt_validation_failure_invalid_username_utf8_fn,
s_clean_up_mqtt_server_fn,
&test_data)

static void s_mqtt_client_test_websocket_failed_transform(
struct aws_http_message *request,
void *user_data,
aws_mqtt_transform_websocket_handshake_complete_fn *complete_fn,
void *complete_ctx) {

(void)user_data;

(*complete_fn)(request, AWS_ERROR_INVALID_STATE, complete_ctx);
}

static int s_test_mqtt_websocket_failed_transform_fn(struct aws_allocator *allocator, void *ctx) {
(void)allocator;
struct mqtt_connection_state_test *state_test_data = ctx;

struct aws_mqtt_connection_options connection_options = {
.socket_options = &state_test_data->socket_options,
};

aws_mqtt_client_connection_use_websockets(
state_test_data->mqtt_connection, s_mqtt_client_test_websocket_failed_transform, NULL, NULL, NULL);

ASSERT_SUCCESS(aws_mqtt_client_connection_connect(state_test_data->mqtt_connection, &connection_options));
aws_test311_wait_for_connection_to_fail(state_test_data);

ASSERT_INT_EQUALS(AWS_ERROR_INVALID_STATE, state_test_data->error);

return AWS_OP_SUCCESS;
}

AWS_TEST_CASE_FIXTURE(
mqtt_websocket_failed_transform,
s_setup_mqtt_server_fn,
s_test_mqtt_websocket_failed_transform_fn,
s_clean_up_mqtt_server_fn,
&test_data)

0 comments on commit 88b64f9

Please sign in to comment.