From b3789740edfa261301aad360a0284d1da9101c52 Mon Sep 17 00:00:00 2001 From: Tatsuhiro Tsujikawa <tatsuhiro.t@gmail.com> Date: Sat, 30 May 2020 19:17:47 +0900 Subject: [PATCH] Add test for ngtcp2_conn_set_remote_transport_params --- tests/main.c | 2 + tests/ngtcp2_conn_test.c | 100 +++++++++++++++++++++++++++++++++++++++ tests/ngtcp2_conn_test.h | 1 + 3 files changed, 103 insertions(+) diff --git a/tests/main.c b/tests/main.c index 3cf5bfbc..ed326969 100644 --- a/tests/main.c +++ b/tests/main.c @@ -248,6 +248,8 @@ int main() { test_ngtcp2_conn_recv_version_negotiation) || !CU_add_test(pSuite, "conn_send_initial_token", test_ngtcp2_conn_send_initial_token) || + !CU_add_test(pSuite, "conn_set_remote_transport_params", + test_ngtcp2_conn_set_remote_transport_params) || !CU_add_test(pSuite, "pkt_write_connection_close", test_ngtcp2_pkt_write_connection_close) || !CU_add_test(pSuite, "map", test_ngtcp2_map) || diff --git a/tests/ngtcp2_conn_test.c b/tests/ngtcp2_conn_test.c index 8b64f385..39e39c1c 100644 --- a/tests/ngtcp2_conn_test.c +++ b/tests/ngtcp2_conn_test.c @@ -5128,6 +5128,106 @@ void test_ngtcp2_conn_send_initial_token(void) { ngtcp2_conn_del(conn); } +void test_ngtcp2_conn_set_remote_transport_params(void) { + ngtcp2_conn *conn; + ngtcp2_transport_params params; + int rv; + ngtcp2_cid dcid; + + dcid_init(&dcid); + + /* client: Successful case */ + setup_handshake_client(&conn); + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.initial_scid = conn->dcid.current.cid; + params.original_dcid = conn->rcid; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(0 == rv); + + ngtcp2_conn_del(conn); + + /* client: Wrong original_dcid */ + setup_handshake_client(&conn); + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.initial_scid = conn->dcid.current.cid; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(NGTCP2_ERR_PROTO == rv); + + ngtcp2_conn_del(conn); + + /* client: Wrong initial_scid */ + setup_handshake_client(&conn); + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.original_dcid = conn->rcid; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(NGTCP2_ERR_PROTO == rv); + + ngtcp2_conn_del(conn); + + /* client: Receiving retry_scid when retry is not attempted */ + setup_handshake_client(&conn); + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.initial_scid = conn->dcid.current.cid; + params.original_dcid = conn->rcid; + params.retry_scid_present = 1; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(NGTCP2_ERR_PROTO == rv); + + ngtcp2_conn_del(conn); + + /* client: Receiving retry_scid */ + setup_handshake_client(&conn); + + conn->flags |= NGTCP2_CONN_FLAG_RECV_RETRY; + conn->retry_scid = dcid; + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.initial_scid = conn->dcid.current.cid; + params.original_dcid = conn->rcid; + params.retry_scid_present = 1; + params.retry_scid = dcid; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(0 == rv); + + ngtcp2_conn_del(conn); + + /* client: Not receiving retry_scid when retry is attempted */ + setup_handshake_client(&conn); + + conn->flags |= NGTCP2_CONN_FLAG_RECV_RETRY; + conn->retry_scid = dcid; + + memset(¶ms, 0, sizeof(params)); + params.active_connection_id_limit = NGTCP2_DEFAULT_ACTIVE_CONNECTION_ID_LIMIT; + params.initial_scid = conn->dcid.current.cid; + params.original_dcid = conn->rcid; + + rv = ngtcp2_conn_set_remote_transport_params(conn, ¶ms); + + CU_ASSERT(NGTCP2_ERR_PROTO == rv); + + ngtcp2_conn_del(conn); +} + void test_ngtcp2_pkt_write_connection_close(void) { ngtcp2_ssize spktlen; uint8_t buf[1200]; diff --git a/tests/ngtcp2_conn_test.h b/tests/ngtcp2_conn_test.h index cc992245..cb0d134a 100644 --- a/tests/ngtcp2_conn_test.h +++ b/tests/ngtcp2_conn_test.h @@ -71,6 +71,7 @@ void test_ngtcp2_conn_recv_client_initial_token(void); void test_ngtcp2_conn_get_active_dcid(void); void test_ngtcp2_conn_recv_version_negotiation(void); void test_ngtcp2_conn_send_initial_token(void); +void test_ngtcp2_conn_set_remote_transport_params(void); void test_ngtcp2_pkt_write_connection_close(void); #endif /* NGTCP2_CONN_TEST_H */ -- GitLab