mgcp_client_test: test long conn_id
Add a full length (32 characters according to spec) conn ID in a CRCX response,
as well as a too long one.
The too long one is currently silently truncated, a subsequent patch will
improve on that (If2a1aab1f13e771a6705c430e3c75bd42477a23b).
Change-Id: I5f2d52f086ea2d330fcce88a176488ace972bf79
diff --git a/tests/mgcp_client/mgcp_client_test.c b/tests/mgcp_client/mgcp_client_test.c
index 74ed53e..e6982e4 100644
--- a/tests/mgcp_client/mgcp_client_test.c
+++ b/tests/mgcp_client/mgcp_client_test.c
@@ -162,6 +162,60 @@
"a=ptime:20\r\n");
}
+void test_crcx_long_conn_id(void)
+{
+ struct msgb *msg;
+ mgcp_trans_id_t trans_id;
+
+ printf("\n===== %s =====\n", __func__);
+
+ if (mgcp)
+ talloc_free(mgcp);
+ mgcp = mgcp_client_init(ctx, &conf);
+
+ msg = mgcp_msg_crcx(mgcp, 23, 42, MGCP_CONN_LOOPBACK);
+ trans_id = dummy_mgcp_send(msg);
+
+ reply_to(trans_id, 200, "OK",
+ "I: 123456789abcdef0123456789ABCDEF0\r\n\r\n"
+ "v=0\r\n"
+ "o=- 1 23 IN IP4 10.9.1.120\r\n"
+ "s=-\r\n"
+ "c=IN IP4 10.9.1.120\r\n"
+ "t=0 0\r\n"
+ "m=audio 16002 RTP/AVP 110 96\r\n"
+ "a=rtpmap:110 AMR/8000\r\n"
+ "a=rtpmap:96 GSM-EFR/8000\r\n"
+ "a=ptime:20\r\n");
+}
+
+void test_crcx_too_long_conn_id(void)
+{
+ struct msgb *msg;
+ mgcp_trans_id_t trans_id;
+
+ printf("\n===== %s =====\n", __func__);
+
+ if (mgcp)
+ talloc_free(mgcp);
+ mgcp = mgcp_client_init(ctx, &conf);
+
+ msg = mgcp_msg_crcx(mgcp, 23, 42, MGCP_CONN_LOOPBACK);
+ trans_id = dummy_mgcp_send(msg);
+
+ reply_to(trans_id, 200, "OK",
+ "I: 123456789abcdef0123456789ABCDEF01001029\r\n\r\n"
+ "v=0\r\n"
+ "o=- 1 23 IN IP4 10.9.1.120\r\n"
+ "s=-\r\n"
+ "c=IN IP4 10.9.1.120\r\n"
+ "t=0 0\r\n"
+ "m=audio 16002 RTP/AVP 110 96\r\n"
+ "a=rtpmap:110 AMR/8000\r\n"
+ "a=rtpmap:96 GSM-EFR/8000\r\n"
+ "a=ptime:20\r\n");
+}
+
void test_mgcp_msg(void)
{
struct msgb *msg;
@@ -570,6 +624,8 @@
test_sdp_section_start();
test_map_codec_to_pt_and_map_pt_to_codec();
test_map_pt_to_codec();
+ test_crcx_long_conn_id();
+ test_crcx_too_long_conn_id();
printf("Done\n");
fprintf(stderr, "Done\n");