From 02d53363f13067bfe0a5c5fdd4af7a0e240a45fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Olivier=20Cr=C3=AAte?= Date: Mon, 28 Jan 2019 17:07:12 -0500 Subject: test-drop-invalid: Fix raciness --- tests/test-drop-invalid.c | 47 ++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/tests/test-drop-invalid.c b/tests/test-drop-invalid.c index e8f5206..404d353 100644 --- a/tests/test-drop-invalid.c +++ b/tests/test-drop-invalid.c @@ -257,10 +257,33 @@ static void set_credentials (NiceAgent *lagent, guint lstream, g_free (password); } +static guint16 +get_port (NiceAgent *agent, guint stream_id, guint component_id) +{ + GSList *cands = nice_agent_get_local_candidates (agent, stream_id, + component_id); + GSList *item; + guint16 port = 0; + + g_assert (cands != NULL); + + for (item = cands; item; item = item->next) { + NiceCandidate *cand = item->data; + port = nice_address_get_port (&cand->addr); + break; + } + g_assert (port != 0); + + g_slist_free_full (cands, (GDestroyNotify) nice_candidate_free); + + return port; +} + static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *baseaddr, guint ready, guint failed) { guint ls_id, rs_id; gint ret; + guint16 port; /* XXX: dear compiler, this is for you */ (void)baseaddr; @@ -288,15 +311,17 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas g_assert (rs_id > 0); /* Gather candidates and test nice_agent_set_port_range */ - nice_agent_set_port_range (lagent, ls_id, 1, 10000, 10000); - nice_agent_set_port_range (lagent, ls_id, 2, 10001, 10001); - nice_agent_set_port_range (ragent, rs_id, 1, 12345, 12345); - nice_agent_set_port_range (ragent, rs_id, 2, 10000, 10001); + nice_agent_set_port_range (lagent, ls_id, 1, 10000, 11000); + nice_agent_set_port_range (lagent, ls_id, 2, 11000, 12000); g_assert (nice_agent_gather_candidates (lagent, ls_id) == TRUE); + + port = get_port (lagent, ls_id, 1); + nice_agent_set_port_range (ragent, rs_id, 1, 12000, 13000); + nice_agent_set_port_range (ragent, rs_id, 2, port, port); g_assert (nice_agent_gather_candidates (ragent, rs_id) == FALSE); g_assert (nice_agent_get_local_candidates (ragent, rs_id, 1) == NULL); g_assert (nice_agent_get_local_candidates (ragent, rs_id, 2) == NULL); - nice_agent_set_port_range (ragent, rs_id, 2, 10000, 10002); + nice_agent_set_port_range (ragent, rs_id, 2, 13000, 14000); g_assert (nice_agent_gather_candidates (ragent, rs_id) == TRUE); { @@ -307,7 +332,8 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas g_assert (g_slist_length (cands) == 1); cand = cands->data; g_assert (cand->type == NICE_CANDIDATE_TYPE_HOST); - g_assert (nice_address_get_port (&cand->addr) == 10000); + g_assert (nice_address_get_port (&cand->addr) >= 10000); + g_assert (nice_address_get_port (&cand->addr) <= 11000); for (i = cands; i; i = i->next) nice_candidate_free ((NiceCandidate *) i->data); g_slist_free (cands); @@ -316,7 +342,8 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas g_assert (g_slist_length (cands) == 1); cand = cands->data; g_assert (cand->type == NICE_CANDIDATE_TYPE_HOST); - g_assert (nice_address_get_port (&cand->addr) == 10001); + g_assert (nice_address_get_port (&cand->addr) >= 11000); + g_assert (nice_address_get_port (&cand->addr) <= 12000); for (i = cands; i; i = i->next) nice_candidate_free ((NiceCandidate *) i->data); g_slist_free (cands); @@ -325,7 +352,8 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas g_assert (g_slist_length (cands) == 1); cand = cands->data; g_assert (cand->type == NICE_CANDIDATE_TYPE_HOST); - g_assert (nice_address_get_port (&cand->addr) == 12345); + g_assert (nice_address_get_port (&cand->addr) >= 12000); + g_assert (nice_address_get_port (&cand->addr) <= 13000); for (i = cands; i; i = i->next) nice_candidate_free ((NiceCandidate *) i->data); g_slist_free (cands); @@ -334,7 +362,8 @@ static int run_full_test (NiceAgent *lagent, NiceAgent *ragent, NiceAddress *bas g_assert (g_slist_length (cands) == 1); cand = cands->data; g_assert (cand->type == NICE_CANDIDATE_TYPE_HOST); - g_assert (nice_address_get_port (&cand->addr) == 10002); + g_assert (nice_address_get_port (&cand->addr) >= 13000); + g_assert (nice_address_get_port (&cand->addr) <= 14000); for (i = cands; i; i = i->next) nice_candidate_free ((NiceCandidate *) i->data); g_slist_free (cands); -- cgit v1.2.1