Add test for canceling PUSH_PROMISE
This commit is contained in:
parent
110ca3131a
commit
d2addbc1ed
|
@ -9564,6 +9564,8 @@ void test_nghttp2_session_cancel_from_before_frame_send(void) {
|
||||||
my_user_data ud;
|
my_user_data ud;
|
||||||
nghttp2_settings_entry iv;
|
nghttp2_settings_entry iv;
|
||||||
nghttp2_data_provider data_prd;
|
nghttp2_data_provider data_prd;
|
||||||
|
int32_t stream_id;
|
||||||
|
nghttp2_stream *stream;
|
||||||
|
|
||||||
memset(&callbacks, 0, sizeof(callbacks));
|
memset(&callbacks, 0, sizeof(callbacks));
|
||||||
|
|
||||||
|
@ -9594,10 +9596,10 @@ void test_nghttp2_session_cancel_from_before_frame_send(void) {
|
||||||
data_prd.source.ptr = NULL;
|
data_prd.source.ptr = NULL;
|
||||||
data_prd.read_callback = temporal_failure_data_source_read_callback;
|
data_prd.read_callback = temporal_failure_data_source_read_callback;
|
||||||
|
|
||||||
rv = nghttp2_submit_request(session, NULL, reqnv, ARRLEN(reqnv), &data_prd,
|
stream_id = nghttp2_submit_request(session, NULL, reqnv, ARRLEN(reqnv),
|
||||||
NULL);
|
&data_prd, NULL);
|
||||||
|
|
||||||
CU_ASSERT(rv > 0);
|
CU_ASSERT(stream_id > 0);
|
||||||
|
|
||||||
ud.frame_send_cb_called = 0;
|
ud.frame_send_cb_called = 0;
|
||||||
ud.before_frame_send_cb_called = 0;
|
ud.before_frame_send_cb_called = 0;
|
||||||
|
@ -9610,6 +9612,36 @@ void test_nghttp2_session_cancel_from_before_frame_send(void) {
|
||||||
CU_ASSERT(1 == ud.before_frame_send_cb_called);
|
CU_ASSERT(1 == ud.before_frame_send_cb_called);
|
||||||
CU_ASSERT(1 == ud.frame_not_send_cb_called);
|
CU_ASSERT(1 == ud.frame_not_send_cb_called);
|
||||||
|
|
||||||
|
stream = nghttp2_session_get_stream_raw(session, stream_id);
|
||||||
|
|
||||||
|
CU_ASSERT(NULL == stream);
|
||||||
|
|
||||||
|
nghttp2_session_del(session);
|
||||||
|
|
||||||
|
nghttp2_session_server_new(&session, &callbacks, &ud);
|
||||||
|
|
||||||
|
open_recv_stream(session, 1);
|
||||||
|
|
||||||
|
stream_id = nghttp2_submit_push_promise(session, NGHTTP2_FLAG_NONE, 1, reqnv,
|
||||||
|
ARRLEN(reqnv), NULL);
|
||||||
|
|
||||||
|
CU_ASSERT(stream_id > 0);
|
||||||
|
|
||||||
|
ud.frame_send_cb_called = 0;
|
||||||
|
ud.before_frame_send_cb_called = 0;
|
||||||
|
ud.frame_not_send_cb_called = 0;
|
||||||
|
|
||||||
|
rv = nghttp2_session_send(session);
|
||||||
|
|
||||||
|
CU_ASSERT(0 == rv);
|
||||||
|
CU_ASSERT(0 == ud.frame_send_cb_called);
|
||||||
|
CU_ASSERT(1 == ud.before_frame_send_cb_called);
|
||||||
|
CU_ASSERT(1 == ud.frame_not_send_cb_called);
|
||||||
|
|
||||||
|
stream = nghttp2_session_get_stream_raw(session, stream_id);
|
||||||
|
|
||||||
|
CU_ASSERT(NULL == stream);
|
||||||
|
|
||||||
nghttp2_session_del(session);
|
nghttp2_session_del(session);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue