Author: mmichelson
Date: Fri Mar  6 09:57:32 2015
New Revision: 432520

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432520
Log:
Rewrite resolver data test to work with ao2 expecations.


Modified:
    team/group/dns/tests/test_dns.c

Modified: team/group/dns/tests/test_dns.c
URL: 
http://svnview.digium.com/svn/asterisk/team/group/dns/tests/test_dns.c?view=diff&rev=432520&r1=432519&r2=432520
==============================================================================
--- team/group/dns/tests/test_dns.c (original)
+++ team/group/dns/tests/test_dns.c Fri Mar  6 09:57:32 2015
@@ -194,16 +194,9 @@
                int fingers;
                int toes;
        };
-       
-       struct digits average = {
-               .fingers = 10,
-               .toes = 10,
-       };
-
-       struct digits polydactyl = {
-               .fingers = 12,
-               .toes = 10,
-       };
+
+       RAII_VAR(struct digits *, average, NULL, ao2_cleanup);
+       RAII_VAR(struct digits *, polydactyl, NULL, ao2_cleanup);
 
        struct digits *data_ptr;
 
@@ -226,6 +219,14 @@
 
        memset(&some_query, 0, sizeof(some_query));
 
+       average = ao2_alloc(sizeof(*average), NULL);
+       polydactyl = ao2_alloc(sizeof(*average), NULL);
+
+       if (!average || !polydactyl) {
+               ast_test_status_update(test, "Allocation failure during unit 
test\n");
+               return AST_TEST_FAIL;
+       }
+
        /* Ensure that NULL is retrieved if we haven't set anything on the 
query */
        data_ptr = ast_dns_resolver_get_data(&some_query);
        if (data_ptr) {
@@ -233,7 +234,13 @@
                return AST_TEST_FAIL;
        }
 
-       ast_dns_resolver_set_data(&some_query, &average);
+       if (ast_dns_resolver_set_data(&some_query, average)) {
+               ast_test_status_update(test, "Failed to set resolver data on 
query\n");
+               return AST_TEST_FAIL;
+       }
+       
+       /* Go ahead now and remove the query's reference to the resolver data 
to prevent memory leaks */
+       ao2_ref(average, -1);
 
        /* Ensure that data can be set and retrieved */
        data_ptr = ast_dns_resolver_get_data(&some_query);
@@ -242,22 +249,14 @@
                return AST_TEST_FAIL;
        }
 
-       if (data_ptr->fingers != average.fingers || data_ptr->toes != 
average.toes) {
+       if (data_ptr != average) {
                ast_test_status_update(test, "Unexpected resolver data 
retrieved from DNS query\n");
                return AST_TEST_FAIL;
        }
 
-       /* Ensure that we can set new resolver data even if there already is 
resolver data on the query */
-       ast_dns_resolver_set_data(&some_query, &polydactyl);
-
-       data_ptr = ast_dns_resolver_get_data(&some_query);
-       if (!data_ptr) {
-               ast_test_status_update(test, "Unable to retrieve resolver data 
from DNS query\n");
-               return AST_TEST_FAIL;
-       }
-
-       if (data_ptr->fingers != polydactyl.fingers || data_ptr->toes != 
polydactyl.toes) {
-               ast_test_status_update(test, "Unexpected resolver data 
retrieved from DNS query\n");
+       /* Ensure that attempting to set new resolver data on the query fails */
+       if (!ast_dns_resolver_set_data(&some_query, polydactyl)) {
+               ast_test_status_update(test, "Successfully overwrote resolver 
data on a query. We shouldn't be able to do that\n");
                return AST_TEST_FAIL;
        }
 


-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

svn-commits mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/svn-commits

Reply via email to