1/*
2 * nghttp2 - HTTP/2 C Library
3 *
4 * Copyright (c) 2012 Tatsuhiro Tsujikawa
5 *
6 * Permission is hereby granted, free of charge, to any person obtaining
7 * a copy of this software and associated documentation files (the
8 * "Software"), to deal in the Software without restriction, including
9 * without limitation the rights to use, copy, modify, merge, publish,
10 * distribute, sublicense, and/or sell copies of the Software, and to
11 * permit persons to whom the Software is furnished to do so, subject to
12 * the following conditions:
13 *
14 * The above copyright notice and this permission notice shall be
15 * included in all copies or substantial portions of the Software.
16 *
17 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
18 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
19 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
20 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
21 * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
22 * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
23 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
24 */
25#ifndef NGHTTP2_SESSION_TEST_H
26#define NGHTTP2_SESSION_TEST_H
27
28#ifdef HAVE_CONFIG_H
29#  include <config.h>
30#endif /* HAVE_CONFIG_H */
31
32void test_nghttp2_session_recv(void);
33void test_nghttp2_session_recv_invalid_stream_id(void);
34void test_nghttp2_session_recv_invalid_frame(void);
35void test_nghttp2_session_recv_eof(void);
36void test_nghttp2_session_recv_data(void);
37void test_nghttp2_session_recv_data_no_auto_flow_control(void);
38void test_nghttp2_session_recv_continuation(void);
39void test_nghttp2_session_recv_headers_with_priority(void);
40void test_nghttp2_session_recv_headers_with_padding(void);
41void test_nghttp2_session_recv_headers_early_response(void);
42void test_nghttp2_session_recv_headers_for_closed_stream(void);
43void test_nghttp2_session_recv_headers_with_extpri(void);
44void test_nghttp2_session_server_recv_push_response(void);
45void test_nghttp2_session_recv_premature_headers(void);
46void test_nghttp2_session_recv_unknown_frame(void);
47void test_nghttp2_session_recv_unexpected_continuation(void);
48void test_nghttp2_session_recv_settings_header_table_size(void);
49void test_nghttp2_session_recv_too_large_frame_length(void);
50void test_nghttp2_session_recv_extension(void);
51void test_nghttp2_session_recv_altsvc(void);
52void test_nghttp2_session_recv_origin(void);
53void test_nghttp2_session_recv_priority_update(void);
54void test_nghttp2_session_continue(void);
55void test_nghttp2_session_add_frame(void);
56void test_nghttp2_session_on_request_headers_received(void);
57void test_nghttp2_session_on_response_headers_received(void);
58void test_nghttp2_session_on_headers_received(void);
59void test_nghttp2_session_on_push_response_headers_received(void);
60void test_nghttp2_session_on_priority_received(void);
61void test_nghttp2_session_on_rst_stream_received(void);
62void test_nghttp2_session_on_settings_received(void);
63void test_nghttp2_session_on_push_promise_received(void);
64void test_nghttp2_session_on_ping_received(void);
65void test_nghttp2_session_on_goaway_received(void);
66void test_nghttp2_session_on_window_update_received(void);
67void test_nghttp2_session_on_data_received(void);
68void test_nghttp2_session_on_data_received_fail_fast(void);
69void test_nghttp2_session_on_altsvc_received(void);
70void test_nghttp2_session_send_headers_start_stream(void);
71void test_nghttp2_session_send_headers_reply(void);
72void test_nghttp2_session_send_headers_frame_size_error(void);
73void test_nghttp2_session_send_headers_push_reply(void);
74void test_nghttp2_session_send_rst_stream(void);
75void test_nghttp2_session_send_push_promise(void);
76void test_nghttp2_session_is_my_stream_id(void);
77void test_nghttp2_session_upgrade2(void);
78void test_nghttp2_session_reprioritize_stream(void);
79void test_nghttp2_session_reprioritize_stream_with_idle_stream_dep(void);
80void test_nghttp2_submit_data(void);
81void test_nghttp2_submit_data_read_length_too_large(void);
82void test_nghttp2_submit_data_read_length_smallest(void);
83void test_nghttp2_submit_data_twice(void);
84void test_nghttp2_submit_request_with_data(void);
85void test_nghttp2_submit_request_without_data(void);
86void test_nghttp2_submit_response_with_data(void);
87void test_nghttp2_submit_response_without_data(void);
88void test_nghttp2_submit_response_push_response(void);
89void test_nghttp2_submit_trailer(void);
90void test_nghttp2_submit_headers_start_stream(void);
91void test_nghttp2_submit_headers_reply(void);
92void test_nghttp2_submit_headers_push_reply(void);
93void test_nghttp2_submit_headers(void);
94void test_nghttp2_submit_headers_continuation(void);
95void test_nghttp2_submit_headers_continuation_extra_large(void);
96void test_nghttp2_submit_priority(void);
97void test_nghttp2_submit_settings(void);
98void test_nghttp2_submit_settings_update_local_window_size(void);
99void test_nghttp2_submit_settings_multiple_times(void);
100void test_nghttp2_submit_push_promise(void);
101void test_nghttp2_submit_window_update(void);
102void test_nghttp2_submit_window_update_local_window_size(void);
103void test_nghttp2_submit_shutdown_notice(void);
104void test_nghttp2_submit_invalid_nv(void);
105void test_nghttp2_submit_extension(void);
106void test_nghttp2_submit_altsvc(void);
107void test_nghttp2_submit_origin(void);
108void test_nghttp2_submit_priority_update(void);
109void test_nghttp2_submit_rst_stream(void);
110void test_nghttp2_session_open_stream(void);
111void test_nghttp2_session_open_stream_with_idle_stream_dep(void);
112void test_nghttp2_session_get_next_ob_item(void);
113void test_nghttp2_session_pop_next_ob_item(void);
114void test_nghttp2_session_reply_fail(void);
115void test_nghttp2_session_max_concurrent_streams(void);
116void test_nghttp2_session_stop_data_with_rst_stream(void);
117void test_nghttp2_session_defer_data(void);
118void test_nghttp2_session_flow_control(void);
119void test_nghttp2_session_flow_control_data_recv(void);
120void test_nghttp2_session_flow_control_data_with_padding_recv(void);
121void test_nghttp2_session_data_read_temporal_failure(void);
122void test_nghttp2_session_on_stream_close(void);
123void test_nghttp2_session_on_ctrl_not_send(void);
124void test_nghttp2_session_get_outbound_queue_size(void);
125void test_nghttp2_session_get_effective_local_window_size(void);
126void test_nghttp2_session_set_option(void);
127void test_nghttp2_session_data_backoff_by_high_pri_frame(void);
128void test_nghttp2_session_pack_data_with_padding(void);
129void test_nghttp2_session_pack_headers_with_padding(void);
130void test_nghttp2_pack_settings_payload(void);
131void test_nghttp2_session_stream_dep_add(void);
132void test_nghttp2_session_stream_dep_remove(void);
133void test_nghttp2_session_stream_dep_add_subtree(void);
134void test_nghttp2_session_stream_dep_remove_subtree(void);
135void test_nghttp2_session_stream_dep_all_your_stream_are_belong_to_us(void);
136void test_nghttp2_session_stream_attach_item(void);
137void test_nghttp2_session_stream_attach_item_subtree(void);
138void test_nghttp2_session_stream_get_state(void);
139void test_nghttp2_session_stream_get_something(void);
140void test_nghttp2_session_find_stream(void);
141void test_nghttp2_session_keep_closed_stream(void);
142void test_nghttp2_session_keep_idle_stream(void);
143void test_nghttp2_session_detach_idle_stream(void);
144void test_nghttp2_session_large_dep_tree(void);
145void test_nghttp2_session_graceful_shutdown(void);
146void test_nghttp2_session_on_header_temporal_failure(void);
147void test_nghttp2_session_recv_client_magic(void);
148void test_nghttp2_session_delete_data_item(void);
149void test_nghttp2_session_open_idle_stream(void);
150void test_nghttp2_session_cancel_reserved_remote(void);
151void test_nghttp2_session_reset_pending_headers(void);
152void test_nghttp2_session_send_data_callback(void);
153void test_nghttp2_session_on_begin_headers_temporal_failure(void);
154void test_nghttp2_session_defer_then_close(void);
155void test_nghttp2_session_detach_item_from_closed_stream(void);
156void test_nghttp2_session_flooding(void);
157void test_nghttp2_session_change_stream_priority(void);
158void test_nghttp2_session_change_extpri_stream_priority(void);
159void test_nghttp2_session_create_idle_stream(void);
160void test_nghttp2_session_repeated_priority_change(void);
161void test_nghttp2_session_repeated_priority_submission(void);
162void test_nghttp2_session_set_local_window_size(void);
163void test_nghttp2_session_cancel_from_before_frame_send(void);
164void test_nghttp2_session_too_many_settings(void);
165void test_nghttp2_session_removed_closed_stream(void);
166void test_nghttp2_session_pause_data(void);
167void test_nghttp2_session_no_closed_streams(void);
168void test_nghttp2_session_set_stream_user_data(void);
169void test_nghttp2_session_no_rfc7540_priorities(void);
170void test_nghttp2_session_server_fallback_rfc7540_priorities(void);
171void test_nghttp2_session_stream_reset_ratelim(void);
172void test_nghttp2_http_mandatory_headers(void);
173void test_nghttp2_http_content_length(void);
174void test_nghttp2_http_content_length_mismatch(void);
175void test_nghttp2_http_non_final_response(void);
176void test_nghttp2_http_trailer_headers(void);
177void test_nghttp2_http_ignore_regular_header(void);
178void test_nghttp2_http_ignore_content_length(void);
179void test_nghttp2_http_record_request_method(void);
180void test_nghttp2_http_push_promise(void);
181void test_nghttp2_http_head_method_upgrade_workaround(void);
182void test_nghttp2_http_no_rfc9113_leading_and_trailing_ws_validation(void);
183
184#endif /* NGHTTP2_SESSION_TEST_H */
185