summaryrefslogtreecommitdiff
path: root/tests/test_cel.c
diff options
context:
space:
mode:
Diffstat (limited to 'tests/test_cel.c')
-rw-r--r--tests/test_cel.c38
1 files changed, 14 insertions, 24 deletions
diff --git a/tests/test_cel.c b/tests/test_cel.c
index 194bbf311..cd39a6254 100644
--- a/tests/test_cel.c
+++ b/tests/test_cel.c
@@ -1300,6 +1300,10 @@ AST_TEST_DEFINE(test_cel_blind_transfer)
return AST_TEST_PASS;
}
+/* XXX Validation needs to take into account the BRIDGE_EXIT for Alice and the
+ * ATTENDEDTRANSFER message are not guaranteed to be ordered
+ */
+#ifdef RACEY_TESTS
AST_TEST_DEFINE(test_cel_attended_transfer_bridges_swap)
{
RAII_VAR(struct ast_channel *, chan_alice, NULL, safe_channel_release);
@@ -1362,8 +1366,8 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_swap)
BRIDGE_ENTER_EVENT_PEER(chan_bob, bridge2, "CELTestChannel/David,CELTestChannel/Charlie");
BRIDGE_EXIT_EVENT(chan_david, bridge2);
- ATTENDEDTRANSFER_BRIDGE(chan_alice, bridge1, chan_david, bridge2, chan_charlie, chan_bob);
BRIDGE_EXIT_EVENT(chan_alice, bridge1);
+ ATTENDEDTRANSFER_BRIDGE(chan_alice, bridge1, chan_david, bridge2, chan_charlie, chan_bob);
do_sleep();
BRIDGE_EXIT(chan_bob, bridge2);
@@ -1379,6 +1383,7 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_swap)
return AST_TEST_PASS;
}
+#endif
AST_TEST_DEFINE(test_cel_attended_transfer_bridges_merge)
{
@@ -1524,24 +1529,11 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_link)
BRIDGE_ENTER(chan_david, bridge2);
/* Perform attended transfer */
-
- /* The following events can not be matched directly since nothing is known
- * about the linking local channel.
- * ;1 and ;2 CHAN_START and ;2 ANSWER */
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
-
ATTENDEDTRANSFER_BRIDGE(chan_alice, bridge1, chan_david, bridge2, chan_charlie, chan_bob);
ast_bridge_transfer_attended(chan_alice, chan_david);
do_sleep();
- /* ;1 and ;2 BRIDGE_ENTER and ;1 ANSWER */
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
-
/* BRIDGE_EXIT alice and david */
APPEND_DUMMY_EVENT();
APPEND_DUMMY_EVENT();
@@ -1559,14 +1551,6 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_link)
HANGUP_CHANNEL(chan_charlie, AST_CAUSE_NORMAL, "");
do_sleep();
- /* ;1 and ;2 BRIDGE_EXIT, HANGUP, and CHAN_END */
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
- APPEND_DUMMY_EVENT();
-
return AST_TEST_PASS;
}
@@ -1800,12 +1784,18 @@ static int append_expected_event(
static void test_sub(struct ast_event *event)
{
struct ast_event *event_dup = ao2_dup_event(event);
+ const char *chan_name;
SCOPED_MUTEX(mid_test_lock, &mid_test_sync_lock);
if (!event_dup) {
return;
}
+ chan_name = ast_event_get_ie_str(event_dup, AST_EVENT_IE_CEL_CHANNAME);
+ if (chan_name && strncmp(chan_name, CHANNEL_TECH_NAME, 14)) {
+ return;
+ }
+
/* save the event for later processing */
ao2_link(cel_received_events, event_dup);
@@ -2130,10 +2120,10 @@ static int unload_module(void)
AST_TEST_UNREGISTER(test_cel_dial_answer_twoparty_bridge_b);
#ifdef RACEY_TESTS
AST_TEST_UNREGISTER(test_cel_dial_answer_multiparty);
+ AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_swap);
#endif
AST_TEST_UNREGISTER(test_cel_blind_transfer);
- AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_swap);
AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_merge);
AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_link);
@@ -2205,10 +2195,10 @@ static int load_module(void)
AST_TEST_REGISTER(test_cel_dial_answer_twoparty_bridge_b);
#ifdef RACEY_TESTS
AST_TEST_REGISTER(test_cel_dial_answer_multiparty);
+ AST_TEST_REGISTER(test_cel_attended_transfer_bridges_swap);
#endif
AST_TEST_REGISTER(test_cel_blind_transfer);
- AST_TEST_REGISTER(test_cel_attended_transfer_bridges_swap);
AST_TEST_REGISTER(test_cel_attended_transfer_bridges_merge);
AST_TEST_REGISTER(test_cel_attended_transfer_bridges_link);