[asterisk-commits] rmudgett: branch 1.8 r323670 - /branches/1.8/tests/test_event.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Wed Jun 15 11:43:37 CDT 2011


Author: rmudgett
Date: Wed Jun 15 11:43:31 2011
New Revision: 323670

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=323670
Log:
Add a test to the event unit tests to catch ASTERISK-18002.

The new tests check to see if there are ANY subscribers to the event type
when ast_event_check_subscriber() is not passed any specific ie values.

(issue ASTERISK-18002)

Modified:
    branches/1.8/tests/test_event.c

Modified: branches/1.8/tests/test_event.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/tests/test_event.c?view=diff&rev=323670&r1=323669&r2=323670
==============================================================================
--- branches/1.8/tests/test_event.c (original)
+++ branches/1.8/tests/test_event.c Wed Jun 15 11:43:31 2011
@@ -312,7 +312,7 @@
 			.expected_count = 2,
 		},
 		[TEST_SUBS_CUSTOM_RAW] = {
-			.expected_count = 1,
+			.expected_count = 2,
 		},
 		[TEST_SUBS_CUSTOM_UINT] = {
 			.expected_count = 1,
@@ -344,6 +344,48 @@
 		break;
 	}
 
+	ast_test_status_update(test, "Check that NO CUSTOM subscribers exist\n");
+	sub_res = ast_event_check_subscriber(AST_EVENT_CUSTOM,
+		AST_EVENT_IE_END);
+	if (sub_res != AST_EVENT_SUB_NONE) {
+		ast_test_status_update(test, "CUSTOM subscriptions should not exist! (%d)\n",
+			sub_res);
+		res = AST_TEST_FAIL;
+	}
+
+	/*
+	 * Subscription TEST_SUBS_CUSTOM_STR:
+	 *  - allocate normally
+	 *  - subscribe to CUSTOM events with a DEVICE STR IE check
+	 */
+	ast_test_status_update(test, "Adding TEST_SUBS_CUSTOM_STR subscription\n");
+	test_subs[TEST_SUBS_CUSTOM_STR].sub = ast_event_subscribe(AST_EVENT_CUSTOM, event_sub_cb,
+		test_subs_class_type_str(TEST_SUBS_CUSTOM_STR), &test_subs[TEST_SUBS_CUSTOM_STR].data,
+		AST_EVENT_IE_DEVICE, AST_EVENT_IE_PLTYPE_STR, "FOO/bar",
+		AST_EVENT_IE_END);
+	if (!test_subs[TEST_SUBS_CUSTOM_STR].sub) {
+		ast_test_status_update(test, "Failed to create TEST_SUBS_CUSTOM_STR subscription\n");
+		res = AST_TEST_FAIL;
+		goto return_cleanup;
+	}
+
+	if (strcmp(ast_event_subscriber_get_description(test_subs[TEST_SUBS_CUSTOM_STR].sub),
+		test_subs_class_type_str(TEST_SUBS_CUSTOM_STR))) {
+		ast_test_status_update(test,
+			"Unexpected subscription description on TEST_SUBS_CUSTOM_STR subscription\n");
+		res = AST_TEST_FAIL;
+		goto return_cleanup;
+	}
+
+	ast_test_status_update(test, "Check that a CUSTOM subscriber exists\n");
+	sub_res = ast_event_check_subscriber(AST_EVENT_CUSTOM,
+		AST_EVENT_IE_END);
+	if (sub_res != AST_EVENT_SUB_EXISTS) {
+		ast_test_status_update(test, "A CUSTOM subscription should exist! (%d)\n",
+			sub_res);
+		res = AST_TEST_FAIL;
+	}
+
 	/*
 	 * Subscription TEST_SUBS_ALL_STR:
 	 *  - allocate normally
@@ -364,30 +406,6 @@
 		test_subs_class_type_str(TEST_SUBS_ALL_STR))) {
 		ast_test_status_update(test,
 			"Unexpected subscription description on TEST_SUBS_ALL_STR subscription\n");
-		res = AST_TEST_FAIL;
-		goto return_cleanup;
-	}
-
-	/*
-	 * Subscription TEST_SUBS_CUSTOM_STR:
-	 *  - allocate normally
-	 *  - subscribe to CUSTOM events with a DEVICE STR IE check
-	 */
-	ast_test_status_update(test, "Adding TEST_SUBS_CUSTOM_STR subscription\n");
-	test_subs[TEST_SUBS_CUSTOM_STR].sub = ast_event_subscribe(AST_EVENT_CUSTOM, event_sub_cb,
-		test_subs_class_type_str(TEST_SUBS_CUSTOM_STR), &test_subs[TEST_SUBS_CUSTOM_STR].data,
-		AST_EVENT_IE_DEVICE, AST_EVENT_IE_PLTYPE_STR, "FOO/bar",
-		AST_EVENT_IE_END);
-	if (!test_subs[TEST_SUBS_CUSTOM_STR].sub) {
-		ast_test_status_update(test, "Failed to create TEST_SUBS_CUSTOM_STR subscription\n");
-		res = AST_TEST_FAIL;
-		goto return_cleanup;
-	}
-
-	if (strcmp(ast_event_subscriber_get_description(test_subs[TEST_SUBS_CUSTOM_STR].sub),
-		test_subs_class_type_str(TEST_SUBS_CUSTOM_STR))) {
-		ast_test_status_update(test,
-			"Unexpected subscription description on TEST_SUBS_CUSTOM_STR subscription\n");
 		res = AST_TEST_FAIL;
 		goto return_cleanup;
 	}
@@ -576,7 +594,7 @@
 	/*
 	 * Exercise the API call to check for existing subscriptions.
 	 */
-	ast_test_status_update(test, "Checking for subscribers to events\n");
+	ast_test_status_update(test, "Checking for subscribers to specific events\n");
 
 	/* Check STR matching. */
 	sub_res = ast_event_check_subscriber(AST_EVENT_CUSTOM,
@@ -676,6 +694,31 @@
 		ast_test_status_update(test, "EXISTS subscription should not exist! (%d)\n",
 			sub_res);
 		res = AST_TEST_FAIL;
+	}
+
+	ast_test_status_update(test, "Special event posting test\n");
+
+	/*
+	 * Event to check if event is even posted.
+	 *
+	 * Matching subscriptions:
+	 * TEST_SUBS_CUSTOM_RAW
+	 */
+	event = ast_event_new(AST_EVENT_CUSTOM,
+		AST_EVENT_IE_DEVICE, AST_EVENT_IE_PLTYPE_STR, "Mula",
+		AST_EVENT_IE_MAILBOX, AST_EVENT_IE_PLTYPE_RAW, "FOO/bar", sizeof("FOO/bar"),
+		AST_EVENT_IE_END);
+	if (!event) {
+		ast_test_status_update(test, "Failed to create event\n");
+		res = AST_TEST_FAIL;
+		goto return_cleanup;
+	}
+	if (ast_event_queue(event)) {
+		ast_event_destroy(event);
+		event = NULL;
+		ast_test_status_update(test, "Failed to queue event\n");
+		res = AST_TEST_FAIL;
+		goto return_cleanup;
 	}
 
 	/*




More information about the asterisk-commits mailing list