Skip to content

Commit 84e8b41

Browse files
authored
Some trivial fixup on tests (#503)
- Remove the word "test" from any test name - Add the word "decoder" to decoder tests - Lots of fixup in h1_encoder tests: - Rename some tests to make more sense - Always assert that aws_h1_encoder_message_init_from_request() succeeds or fails. Previously a lot of tests weren't ACTUALLY testing anything!!! Fortunately no actual bugs were uncovered here. - Use the "bad request" helper in more places - Add "Host" header to all requests
1 parent 590c7b5 commit 84e8b41

File tree

9 files changed

+304
-345
lines changed

9 files changed

+304
-345
lines changed

source/h1_encoder.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ static int s_scan_outgoing_headers(
124124
if (encoder_message->has_chunked_encoding_header && has_content_length_header) {
125125
AWS_LOGF_ERROR(
126126
AWS_LS_HTTP_STREAM, "id=static: Both Content-Length and Transfer-Encoding are set. Only one may be used");
127-
return aws_raise_error(AWS_ERROR_HTTP_INVALID_HEADER_VALUE);
127+
return aws_raise_error(AWS_ERROR_HTTP_INVALID_HEADER_FIELD);
128128
}
129129

130130
if (encoder_message->has_chunked_encoding_header && has_body_stream) {

tests/CMakeLists.txt

Lines changed: 99 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -36,35 +36,35 @@ add_test_case(message_response_status)
3636
add_test_case(message_refcounts)
3737
add_test_case(message_with_existing_headers)
3838

39-
add_test_case(h1_test_get_request)
40-
add_test_case(h1_test_request_bad_version)
41-
add_test_case(h1_test_response_unsupported_version)
42-
add_test_case(h1_test_response_1_0)
43-
add_test_case(h1_test_get_status_code)
44-
add_test_case(h1_test_overflow_scratch_space)
45-
add_test_case(h1_test_receive_request_headers)
46-
add_test_case(h1_test_receive_response_headers)
47-
add_test_case(h1_test_get_transfer_encoding_flags)
48-
add_test_case(h1_test_body_unchunked)
49-
add_test_case(h1_test_body_chunked)
50-
add_test_case(h1_decode_trailers)
51-
add_test_case(h1_decode_one_byte_at_a_time)
52-
add_test_case(h1_decode_messages_at_random_intervals)
53-
add_test_case(h1_decode_bad_requests_and_assert_failure)
54-
add_test_case(h1_decode_bad_responses_and_assert_failure)
55-
add_test_case(h1_test_extraneous_buffer_data_ensure_not_processed)
56-
add_test_case(h1_test_ignore_chunk_extensions)
57-
58-
add_test_case(h1_encoder_content_length_put_request_headers)
59-
add_test_case(h1_encoder_transfer_encoding_chunked_put_request_headers)
60-
add_test_case(h1_encoder_transfer_encoding_chunked_put_request_multiple_te_headers)
61-
add_test_case(h1_encoder_transfer_encoding_chunked_put_request_headers_case_insensitivity)
62-
add_test_case(h1_encoder_transfer_encoding_chunked_and_content_length_put_request_headers)
63-
add_test_case(h1_encoder_transfer_encoding_not_chunked_put_request_headers)
64-
add_test_case(h1_encoder_transfer_encoding_set_body_stream_errors)
65-
add_test_case(h1_encoder_transfer_encoding_chunked_multiple_put_request_headers)
66-
add_test_case(h1_encoder_transfer_encoding_chunked_not_final_encoding_put_request_headers)
67-
add_test_case(h1_encoder_transfer_encoding_not_ending_in_chunked_put_request_headers)
39+
add_test_case(h1_decoder_get_request)
40+
add_test_case(h1_decoder_request_bad_version)
41+
add_test_case(h1_decoder_response_unsupported_version)
42+
add_test_case(h1_decoder_response_1_0)
43+
add_test_case(h1_decoder_get_status_code)
44+
add_test_case(h1_decoder_overflow_scratch_space)
45+
add_test_case(h1_decoder_receive_request_headers)
46+
add_test_case(h1_decoder_receive_response_headers)
47+
add_test_case(h1_decoder_get_transfer_encoding_flags)
48+
add_test_case(h1_decoder_body_unchunked)
49+
add_test_case(h1_decoder_body_chunked)
50+
add_test_case(h1_decoder_trailers)
51+
add_test_case(h1_decoder_one_byte_at_a_time)
52+
add_test_case(h1_decoder_messages_at_random_intervals)
53+
add_test_case(h1_decoder_bad_requests_and_assert_failure)
54+
add_test_case(h1_decoder_bad_responses_and_assert_failure)
55+
add_test_case(h1_decoder_extraneous_buffer_data_ensure_not_processed)
56+
add_test_case(h1_decoder_ignore_chunk_extensions)
57+
58+
add_test_case(h1_encoder_content_length_header)
59+
add_test_case(h1_encoder_transfer_encoding_chunked_header)
60+
add_test_case(h1_encoder_transfer_encoding_chunked_across_multiple_headers)
61+
add_test_case(h1_encoder_case_insensitive_header_names)
62+
add_test_case(h1_encoder_rejects_transfer_encoding_chunked_header_combined_with_content_length)
63+
add_test_case(h1_encoder_rejects_transfer_encoding_header_without_chunked)
64+
add_test_case(h1_encoder_rejects_transfer_encoding_chunked_header_combined_with_body_stream)
65+
add_test_case(h1_encoder_transfer_encoding_chunked_header_with_multiple_encodings)
66+
add_test_case(h1_encoder_rejects_transfer_encoding_header_when_chunked_not_final_encoding)
67+
add_test_case(h1_encoder_rejects_transfer_encoding_header_not_ending_in_chunked)
6868
add_test_case(h1_encoder_rejects_bad_method)
6969
add_test_case(h1_encoder_rejects_missing_method)
7070
add_test_case(h1_encoder_rejects_bad_path)
@@ -163,7 +163,7 @@ add_test_case(strutil_is_http_pseudo_header_name)
163163

164164
add_net_test_case(tls_download_medium_file_h1)
165165
add_net_test_case(tls_download_medium_file_h2)
166-
add_net_test_case(test_tls_download_shutdown_with_window_size_0)
166+
add_net_test_case(tls_download_shutdown_with_window_size_0)
167167

168168
add_test_case(websocket_decoder_sanity_check)
169169
add_test_case(websocket_decoder_simplest_frame)
@@ -522,31 +522,31 @@ add_net_test_case(connection_customized_alpn_error_with_unknown_return_string)
522522

523523
# connection manager tests
524524
# unit tests where connections are mocked
525-
add_net_test_case(test_connection_manager_setup_shutdown)
526-
add_net_test_case(test_connection_manager_acquire_release_mix_synchronous)
527-
add_net_test_case(test_connection_manager_acquisition_timeout)
528-
add_net_test_case(test_connection_manager_connect_callback_failure)
529-
add_net_test_case(test_connection_manager_connect_immediate_failure)
530-
add_net_test_case(test_connection_manager_proxy_setup_shutdown)
531-
add_net_test_case(test_connection_manager_idle_culling_single)
532-
add_net_test_case(test_connection_manager_idle_culling_many)
533-
add_net_test_case(test_connection_manager_idle_culling_mixture)
534-
add_net_test_case(test_connection_manager_idle_culling_refcount)
535-
add_net_test_case(test_connection_manager_with_network_interface_list)
525+
add_net_test_case(connection_manager_setup_shutdown)
526+
add_net_test_case(connection_manager_acquire_release_mix_synchronous)
527+
add_net_test_case(connection_manager_acquisition_timeout)
528+
add_net_test_case(connection_manager_connect_callback_failure)
529+
add_net_test_case(connection_manager_connect_immediate_failure)
530+
add_net_test_case(connection_manager_proxy_setup_shutdown)
531+
add_net_test_case(connection_manager_idle_culling_single)
532+
add_net_test_case(connection_manager_idle_culling_many)
533+
add_net_test_case(connection_manager_idle_culling_mixture)
534+
add_net_test_case(connection_manager_idle_culling_refcount)
535+
add_net_test_case(connection_manager_with_network_interface_list)
536536

537537
# tests where we establish real connections
538-
add_net_test_case(test_connection_manager_single_connection)
539-
add_net_test_case(test_connection_manager_proxy_envrionment_empty_string)
540-
add_net_test_case(test_connection_manager_single_http2_connection)
541-
add_net_test_case(test_connection_manager_single_http2_connection_failed)
542-
add_net_test_case(test_connection_manager_single_http2_connection_with_settings)
543-
add_net_test_case(test_connection_manager_many_connections)
544-
add_net_test_case(test_connection_manager_many_http2_connections)
545-
add_net_test_case(test_connection_manager_acquire_release)
546-
add_net_test_case(test_connection_manager_close_and_release)
547-
add_net_test_case(test_connection_manager_acquire_release_mix)
548-
add_net_test_case(test_connection_manager_max_pending_acquisitions)
549-
add_net_test_case(test_connection_manager_max_pending_acquisitions_with_vended_connections)
538+
add_net_test_case(connection_manager_single_connection)
539+
add_net_test_case(connection_manager_proxy_envrionment_empty_string)
540+
add_net_test_case(connection_manager_single_http2_connection)
541+
add_net_test_case(connection_manager_single_http2_connection_failed)
542+
add_net_test_case(connection_manager_single_http2_connection_with_settings)
543+
add_net_test_case(connection_manager_many_connections)
544+
add_net_test_case(connection_manager_many_http2_connections)
545+
add_net_test_case(connection_manager_acquire_release)
546+
add_net_test_case(connection_manager_close_and_release)
547+
add_net_test_case(connection_manager_acquire_release_mix)
548+
add_net_test_case(connection_manager_max_pending_acquisitions)
549+
add_net_test_case(connection_manager_max_pending_acquisitions_with_vended_connections)
550550

551551
# Integration test that requires proxy envrionment in us-east-1 region.
552552
# TODO: test the server name validation properly
@@ -610,46 +610,46 @@ add_test_case(h1_server_error_from_outgoing_body_callback_stops_sending)
610610
add_test_case(h1_server_close_from_off_thread_makes_not_open)
611611
add_test_case(h1_server_close_from_on_thread_makes_not_open)
612612

613-
add_test_case(test_http_forwarding_proxy_connection_proxy_target)
614-
add_test_case(test_http_forwarding_proxy_connection_channel_failure)
615-
add_test_case(test_http_forwarding_proxy_connection_connect_failure)
616-
add_test_case(test_http_forwarding_proxy_request_transform)
617-
add_test_case(test_http_forwarding_proxy_request_transform_basic_auth)
618-
add_test_case(test_http_forwarding_proxy_request_transform_legacy_basic_auth)
619-
add_test_case(test_http_proxy_request_transform_kerberos)
620-
add_test_case(test_http_proxy_kerberos_token_failure)
621-
add_test_case(test_http_proxy_kerberos_connect_failure)
622-
add_test_case(test_http_proxy_adaptive_identity_success)
623-
add_test_case(test_http_proxy_adaptive_kerberos_success)
624-
add_test_case(test_http_proxy_adaptive_ntlm_success)
625-
add_test_case(test_http_proxy_adaptive_failure)
626-
add_test_case(test_http_forwarding_proxy_uri_rewrite)
627-
add_test_case(test_http_forwarding_proxy_uri_rewrite_options_star)
628-
add_test_case(test_http_tunnel_proxy_connection_success)
629-
add_test_case(test_https_tunnel_proxy_connection_success)
630-
add_test_case(test_http_tunnel_proxy_connection_failure_connect)
631-
add_test_case(test_https_tunnel_proxy_connection_failure_connect)
632-
add_test_case(test_https_tunnel_proxy_connection_failure_tls)
633-
634-
add_test_case(test_http_connection_monitor_options_is_valid)
635-
add_test_case(test_http_connection_monitor_rw_above)
636-
add_test_case(test_http_connection_monitor_r_above)
637-
add_test_case(test_http_connection_monitor_w_above)
638-
add_test_case(test_http_connection_monitor_write_then_read_above)
639-
add_test_case(test_http_connection_monitor_below_but_undetectable)
640-
add_test_case(test_http_connection_monitor_rw_below)
641-
add_test_case(test_http_connection_monitor_below_then_above)
642-
add_test_case(test_http_connection_monitor_failure_reset_when_empty)
643-
644-
add_test_case(test_http_connection_monitor_bytes_overflow)
645-
add_test_case(test_http_connection_monitor_time_overflow)
646-
add_test_case(test_http_connection_monitor_shutdown)
647-
648-
add_test_case(test_http_stats_trivial)
649-
add_test_case(test_http_stats_basic_request)
650-
add_test_case(test_http_stats_split_across_gather_boundary)
651-
add_test_case(test_http_stats_pipelined)
652-
add_test_case(test_http_stats_multiple_requests_with_gap)
613+
add_test_case(http_forwarding_proxy_connection_proxy_target)
614+
add_test_case(http_forwarding_proxy_connection_channel_failure)
615+
add_test_case(http_forwarding_proxy_connection_connect_failure)
616+
add_test_case(http_forwarding_proxy_request_transform)
617+
add_test_case(http_forwarding_proxy_request_transform_basic_auth)
618+
add_test_case(http_forwarding_proxy_request_transform_legacy_basic_auth)
619+
add_test_case(http_proxy_request_transform_kerberos)
620+
add_test_case(http_proxy_kerberos_token_failure)
621+
add_test_case(http_proxy_kerberos_connect_failure)
622+
add_test_case(http_proxy_adaptive_identity_success)
623+
add_test_case(http_proxy_adaptive_kerberos_success)
624+
add_test_case(http_proxy_adaptive_ntlm_success)
625+
add_test_case(http_proxy_adaptive_failure)
626+
add_test_case(http_forwarding_proxy_uri_rewrite)
627+
add_test_case(http_forwarding_proxy_uri_rewrite_options_star)
628+
add_test_case(http_tunnel_proxy_connection_success)
629+
add_test_case(https_tunnel_proxy_connection_success)
630+
add_test_case(http_tunnel_proxy_connection_failure_connect)
631+
add_test_case(https_tunnel_proxy_connection_failure_connect)
632+
add_test_case(https_tunnel_proxy_connection_failure_tls)
633+
634+
add_test_case(http_connection_monitor_options_is_valid)
635+
add_test_case(http_connection_monitor_rw_above)
636+
add_test_case(http_connection_monitor_r_above)
637+
add_test_case(http_connection_monitor_w_above)
638+
add_test_case(http_connection_monitor_write_then_read_above)
639+
add_test_case(http_connection_monitor_below_but_undetectable)
640+
add_test_case(http_connection_monitor_rw_below)
641+
add_test_case(http_connection_monitor_below_then_above)
642+
add_test_case(http_connection_monitor_failure_reset_when_empty)
643+
644+
add_test_case(http_connection_monitor_bytes_overflow)
645+
add_test_case(http_connection_monitor_time_overflow)
646+
add_test_case(http_connection_monitor_shutdown)
647+
648+
add_test_case(http_stats_trivial)
649+
add_test_case(http_stats_basic_request)
650+
add_test_case(http_stats_split_across_gather_boundary)
651+
add_test_case(http_stats_pipelined)
652+
add_test_case(http_stats_multiple_requests_with_gap)
653653

654654
# Tests that not make real connection but use TLS. So, still need to be marked as net test
655655
add_net_test_case(h2_sm_sanity_check)
@@ -680,12 +680,12 @@ if(ENABLE_LOCALHOST_INTEGRATION_TESTS)
680680
add_net_test_case(localhost_integ_h2_sm_connection_monitor_kill_slow_connection)
681681
endif()
682682

683-
add_test_case(random_access_set_sanitize_test)
684-
add_test_case(random_access_set_insert_test)
685-
add_test_case(random_access_set_get_random_test)
686-
add_test_case(random_access_set_exist_test)
687-
add_test_case(random_access_set_remove_test)
688-
add_test_case(random_access_set_owns_element_test)
683+
add_test_case(random_access_set_sanitize)
684+
add_test_case(random_access_set_insert)
685+
add_test_case(random_access_set_get_random)
686+
add_test_case(random_access_set_exist)
687+
add_test_case(random_access_set_remove)
688+
add_test_case(random_access_set_owns_element)
689689

690690
set(TEST_BINARY_NAME ${PROJECT_NAME}-tests)
691691

0 commit comments

Comments
 (0)