Author: mmichelson Date: Fri Mar 6 11:08:39 2015 New Revision: 432521 URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=432521 Log: Add a test for off-nominal synchronous resolution.
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=432521&r1=432520&r2=432521 ============================================================================== --- team/group/dns/tests/test_dns.c (original) +++ team/group/dns/tests/test_dns.c Fri Mar 6 11:08:39 2015 @@ -913,6 +913,53 @@ return res; } +static int fail_resolve(struct ast_dns_query *query) +{ + return -1; +} + +AST_TEST_DEFINE(resolver_resolve_sync_off_nominal) +{ + struct ast_dns_resolver terrible_resolver = { + .name = "Uwe Boll's Filmography", + .priority = 0, + .resolve = fail_resolve, + .cancel = stub_cancel, + }; + + struct ast_dns_result *result = NULL; + + switch (cmd) { + case TEST_INIT: + info->name = "resolver_resolve_sync_off_nominal"; + info->category = "/main/dns/"; + info->summary = "Test off-nominal synchronous DNS resolution"; + info->description = + "This test attempts to call into a resolver that fails to resolve\n"; + return AST_TEST_NOT_RUN; + case TEST_EXECUTE: + break; + } + + if (ast_dns_resolver_register(&terrible_resolver)) { + ast_test_status_update(test, "Failed to register the DNS resolver\n"); + return AST_TEST_FAIL; + } + + if (!ast_dns_resolve("asterisk.org", ns_t_a, ns_c_in, &result)) { + ast_test_status_update(test, "DNS resolution succeeded when we expected it not to\n"); + return AST_TEST_FAIL; + } + + if (result) { + ast_test_status_update(test, "Failed DNS resolution set the result to something non-NULL\n"); + ast_dns_result_free(result); + return AST_TEST_FAIL; + } + + return AST_TEST_PASS; +} + AST_TEST_DEFINE(resolver_resolve_async_cancel) { RAII_VAR(struct async_resolution_data *, async_data, NULL, ao2_cleanup); @@ -1023,6 +1070,7 @@ AST_TEST_UNREGISTER(resolver_add_record); AST_TEST_UNREGISTER(resolver_add_record_off_nominal); AST_TEST_UNREGISTER(resolver_resolve_sync); + AST_TEST_UNREGISTER(resolver_resolve_sync_off_nominal); AST_TEST_UNREGISTER(resolver_resolve_async); AST_TEST_UNREGISTER(resolver_resolve_async_cancel); @@ -1040,6 +1088,7 @@ AST_TEST_REGISTER(resolver_add_record); AST_TEST_REGISTER(resolver_add_record_off_nominal); AST_TEST_REGISTER(resolver_resolve_sync); + AST_TEST_REGISTER(resolver_resolve_sync_off_nominal); AST_TEST_REGISTER(resolver_resolve_async); AST_TEST_REGISTER(resolver_resolve_async_cancel); -- _____________________________________________________________________ -- 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