Merge "ari: Implement 'debug all' and request/response logging"
[asterisk/asterisk.git] / tests / test_cel.c
index cd39a62..c9ceaf9 100644 (file)
@@ -31,8 +31,6 @@
 
 #include "asterisk.h"
 
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
-
 #include <math.h>
 #include "asterisk/module.h"
 #include "asterisk/test.h"
@@ -310,7 +308,9 @@ static int append_expected_event_snapshot(
        struct ast_json *extra,
        const char *peer);
 
+#ifdef RACEY_TESTS
 static int append_dummy_event(void);
+#endif
 
 static struct ast_str *__test_cel_generate_peer_str(struct ast_channel_snapshot *chan, struct ast_bridge_snapshot *bridge)
 {
@@ -428,7 +428,7 @@ AST_TEST_DEFINE(test_cel_unanswered_inbound_call)
                info->description =
                        "Test CEL records for a call that is\n"
                        "inbound to Asterisk, executes some dialplan, but\n"
-                       "is never answered.\n";
+                       "is never answered.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -459,7 +459,7 @@ AST_TEST_DEFINE(test_cel_unanswered_outbound_call)
                info->summary = "Test outbound unanswered calls";
                info->description =
                        "Test CEL records for a call that is\n"
-                       "outbound to Asterisk but is never answered.\n";
+                       "outbound to Asterisk but is never answered.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -488,7 +488,7 @@ AST_TEST_DEFINE(test_cel_single_party)
                info->summary = "Test CEL for a single party";
                info->description =
                        "Test CEL records for a call that is\n"
-                       "answered, but only involves a single channel\n";
+                       "answered, but only involves a single channel";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -517,7 +517,7 @@ AST_TEST_DEFINE(test_cel_single_bridge)
                info->summary = "Test CEL for a single party entering/leaving a bridge";
                info->description =
                        "Test CEL records for a call that is\n"
-                       "answered, enters a bridge, and leaves it.\n";
+                       "answered, enters a bridge, and leaves it.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -555,7 +555,7 @@ AST_TEST_DEFINE(test_cel_single_bridge_continue)
                info->summary = "Test CEL for a single party entering/leaving a bridge";
                info->description =
                        "Test CEL records for a call that is\n"
-                       "answered, enters a bridge, and leaves it.\n";
+                       "answered, enters a bridge, and leaves it.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -599,7 +599,7 @@ AST_TEST_DEFINE(test_cel_single_twoparty_bridge_a)
                info->description =
                        "Test CEL records for a call that is\n"
                        "answered, enters a bridge, and leaves it. In this scenario, the\n"
-                       "Party A should answer the bridge first.\n";
+                       "Party A should answer the bridge first.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -647,7 +647,7 @@ AST_TEST_DEFINE(test_cel_single_twoparty_bridge_b)
                info->description =
                        "Test CEL records for a call that is\n"
                        "answered, enters a bridge, and leaves it. In this scenario, the\n"
-                       "Party B should answer the bridge first.\n";
+                       "Party B should answer the bridge first.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -701,7 +701,7 @@ AST_TEST_DEFINE(test_cel_single_multiparty_bridge)
                info->description =
                        "Test CEL records for a call that is\n"
                        "answered, enters a bridge, and leaves it. A total of three\n"
-                       "parties perform this action.\n";
+                       "parties perform this action.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -778,7 +778,7 @@ AST_TEST_DEFINE(test_cel_dial_unanswered)
                info->summary = "Test CEL for a dial that isn't answered";
                info->description =
                        "Test CEL records for a channel that\n"
-                       "performs a dial operation that isn't answered\n";
+                       "performs a dial operation that isn't answered";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -812,7 +812,7 @@ AST_TEST_DEFINE(test_cel_dial_unanswered_filter)
                info->summary = "Test CEL for a dial that isn't answered";
                info->description =
                        "Test CEL records for a channel that\n"
-                       "performs a dial operation that isn't answered\n";
+                       "performs a dial operation that isn't answered";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -847,7 +847,7 @@ AST_TEST_DEFINE(test_cel_dial_busy)
                info->summary = "Test CEL for a dial that results in a busy";
                info->description =
                        "Test CEL records for a channel that\n"
-                       "performs a dial operation to an endpoint that's busy\n";
+                       "performs a dial operation to an endpoint that's busy";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -881,7 +881,7 @@ AST_TEST_DEFINE(test_cel_dial_congestion)
                info->summary = "Test CEL for a dial that results in congestion";
                info->description =
                        "Test CEL records for a channel that\n"
-                       "performs a dial operation to an endpoint that's congested\n";
+                       "performs a dial operation to an endpoint that's congested";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -915,7 +915,7 @@ AST_TEST_DEFINE(test_cel_dial_unavailable)
                info->summary = "Test CEL for a dial that results in unavailable";
                info->description =
                        "Test CEL records for a channel that\n"
-                       "performs a dial operation to an endpoint that's unavailable\n";
+                       "performs a dial operation to an endpoint that's unavailable";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -950,7 +950,7 @@ AST_TEST_DEFINE(test_cel_dial_caller_cancel)
                info->description =
                        "Test CEL records for a channel that\n"
                        "performs a dial operation to an endpoint but then decides\n"
-                       "to hang up, cancelling the dial\n";
+                       "to hang up, cancelling the dial";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -987,7 +987,7 @@ AST_TEST_DEFINE(test_cel_dial_parallel_failed)
                info->description =
                        "This tests dialing three parties: Bob, Charlie, David. Charlie\n"
                        "returns BUSY; David returns CONGESTION; Bob fails to answer and\n"
-                       "Alice hangs up. Three records are created for Alice as a result.\n";
+                       "Alice hangs up. Three records are created for Alice as a result.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1040,7 +1040,7 @@ AST_TEST_DEFINE(test_cel_dial_answer_no_bridge)
                        "a dial, then bounce both channels to different priorities and\n"
                        "never have them enter a bridge together. Ew. This makes sure that\n"
                        "when we answer, we get a CEL, it gets ended at that point, and\n"
-                       "that it gets finalized appropriately.\n";
+                       "that it gets finalized appropriately.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1081,7 +1081,7 @@ AST_TEST_DEFINE(test_cel_dial_answer_twoparty_bridge_a)
                info->category = TEST_CATEGORY;
                info->summary = "Test dialing, answering, and going into a 2-party bridge";
                info->description =
-                       "The most 'basic' of scenarios\n";
+                       "The most 'basic' of scenarios";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1128,7 +1128,7 @@ AST_TEST_DEFINE(test_cel_dial_answer_twoparty_bridge_b)
                info->category = TEST_CATEGORY;
                info->summary = "Test dialing, answering, and going into a 2-party bridge";
                info->description =
-                       "The most 'basic' of scenarios\n";
+                       "The most 'basic' of scenarios";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1178,7 +1178,7 @@ AST_TEST_DEFINE(test_cel_dial_answer_multiparty)
                info->category = TEST_CATEGORY;
                info->summary = "Test dialing, answering, and going into a multi-party bridge";
                info->description =
-                       "A little tricky to get to do, but possible with some redirects.\n";
+                       "A little tricky to get to do, but possible with some redirects.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1254,7 +1254,7 @@ AST_TEST_DEFINE(test_cel_blind_transfer)
                info->summary = "Test blind transfers to an extension";
                info->description =
                        "This test creates two channels, bridges them, and then"
-                       " blind transfers the bridge to an extension.\n";
+                       " blind transfers the bridge to an extension.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1325,7 +1325,7 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_swap)
                info->description =
                        "This test creates four channels, places each pair in"
                        " a bridge, and then attended transfers the bridges"
-                       " together.\n";
+                       " together.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1407,7 +1407,7 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_merge)
                info->description =
                        "This test creates four channels, places each pair"
                        " in a bridge, and then attended transfers the bridges"
-                       " together causing a bridge merge.\n";
+                       " together causing a bridge merge.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1469,6 +1469,10 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_merge)
        return AST_TEST_PASS;
 }
 
+/* XXX Validation needs to take into account the BRIDGE_EXIT for David and the
+ * ATTENDEDTRANSFER message are not guaranteed to be ordered
+ */
+#ifdef RACEY_TESTS
 AST_TEST_DEFINE(test_cel_attended_transfer_bridges_link)
 {
        RAII_VAR(struct ast_channel *, chan_alice, NULL, safe_channel_release);
@@ -1491,7 +1495,7 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_link)
                info->description =
                        "This test creates four channels, places each pair"
                        " in a bridge, and then attended transfers the bridges"
-                       " together causing a bridge link.\n";
+                       " together causing a bridge link.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1553,6 +1557,7 @@ AST_TEST_DEFINE(test_cel_attended_transfer_bridges_link)
 
        return AST_TEST_PASS;
 }
+#endif
 
 AST_TEST_DEFINE(test_cel_dial_pickup)
 {
@@ -1570,7 +1575,7 @@ AST_TEST_DEFINE(test_cel_dial_pickup)
                info->description =
                        "Test CEL records for a call that is\n"
                        "inbound to Asterisk, executes some dialplan, and\n"
-                       "is picked up.\n";
+                       "is picked up.";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1603,7 +1608,7 @@ AST_TEST_DEFINE(test_cel_dial_pickup)
 
        ast_channel_publish_dial(chan_caller, chan_callee, NULL, "ANSWER");
 
-       HANGUP_CHANNEL(chan_caller, AST_CAUSE_NORMAL, "CANCEL");
+       HANGUP_CHANNEL(chan_caller, AST_CAUSE_NORMAL, "ANSWER");
        HANGUP_CHANNEL(chan_callee, AST_CAUSE_NORMAL, "");
 
        return AST_TEST_PASS;
@@ -1630,7 +1635,7 @@ AST_TEST_DEFINE(test_cel_local_optimize)
                info->description =
                        "Test CEL records for two local channels being optimized\n"
                        "out by sending a messages indicating local optimization\n"
-                       "begin and end\n";
+                       "begin and end";
                return AST_TEST_NOT_RUN;
        case TEST_EXECUTE:
                break;
@@ -1734,6 +1739,7 @@ static int append_event(struct ast_event *ev)
        return 0;
 }
 
+#ifdef RACEY_TESTS
 static int append_dummy_event(void)
 {
        RAII_VAR(struct ast_event *, ev, NULL, ast_free);
@@ -1746,6 +1752,7 @@ static int append_dummy_event(void)
 
        return append_event(ev);
 }
+#endif
 
 static int append_expected_event_snapshot(
        struct ast_channel_snapshot *snapshot,
@@ -2121,11 +2128,11 @@ static int unload_module(void)
 #ifdef RACEY_TESTS
        AST_TEST_UNREGISTER(test_cel_dial_answer_multiparty);
        AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_swap);
+       AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_link);
 #endif
 
        AST_TEST_UNREGISTER(test_cel_blind_transfer);
        AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_merge);
-       AST_TEST_UNREGISTER(test_cel_attended_transfer_bridges_link);
 
        AST_TEST_UNREGISTER(test_cel_dial_pickup);
 
@@ -2196,11 +2203,11 @@ static int load_module(void)
 #ifdef RACEY_TESTS
        AST_TEST_REGISTER(test_cel_dial_answer_multiparty);
        AST_TEST_REGISTER(test_cel_attended_transfer_bridges_swap);
+       AST_TEST_REGISTER(test_cel_attended_transfer_bridges_link);
 #endif
 
        AST_TEST_REGISTER(test_cel_blind_transfer);
        AST_TEST_REGISTER(test_cel_attended_transfer_bridges_merge);
-       AST_TEST_REGISTER(test_cel_attended_transfer_bridges_link);
 
        AST_TEST_REGISTER(test_cel_dial_pickup);