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