From 3ee5cf32b64806c491322535697d39ddabb07f07 Mon Sep 17 00:00:00 2001 From: Sara Dickinson Date: Sat, 25 Jun 2016 15:57:14 +0100 Subject: [PATCH 1/2] Split the recursive transport test 6 into 3 and add a shorter timeout to the fail case to stop the overall test timing out. --- .../check_getdns_context_set_dns_transport.h | 72 +++++++++++++++---- 1 file changed, 59 insertions(+), 13 deletions(-) diff --git a/src/test/check_getdns_context_set_dns_transport.h b/src/test/check_getdns_context_set_dns_transport.h index 1985eac6..ea9f82c6 100644 --- a/src/test/check_getdns_context_set_dns_transport.h +++ b/src/test/check_getdns_context_set_dns_transport.h @@ -203,10 +203,6 @@ * Request answer larger then 512 bytes but set UDP payload to that * Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_UDP_ONLY * expect: No response returned - * Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_TCP_ONLY - * expect: Response returned - * Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_UDP_FIRST_AND_FALL_BACK_TO_TCP - * expect: Response returned */ struct getdns_context *context = NULL; struct getdns_dict *response = NULL; @@ -229,19 +225,43 @@ ASSERT_RC(getdns_context_set_dns_transport(context, GETDNS_TRANSPORT_UDP_ONLY), GETDNS_RETURN_GOOD, "Return code from getdns_context_set_dns_transport()"); ASSERT_RC(getdns_context_set_edns_maximum_udp_payload_size(context, 512), - GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()"); - + GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()"); + ASSERT_RC(getdns_context_set_timeout(context, 2000), + GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()"); ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response), GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()"); ASSERT_RC(getdns_dict_get_int(response, "status", &status), GETDNS_RETURN_GOOD, "Failed to extract \"status\""); - + /* TODO: INVESTIGATE THIS AS IT SHOULDN'T BE A TIMEOUT...*/ ASSERT_RC(status, GETDNS_RESPSTATUS_ALL_TIMEOUT, "Status not as expected"); + } - CONTEXT_DESTROY; - CONTEXT_CREATE(TRUE); + CONTEXT_DESTROY; + + } + END_TEST + + START_TEST (getdns_context_set_dns_transport_recursing_7) + { + /* + * Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_TCP_ONLY + * expect: Response returned + */ + struct getdns_context *context = NULL; + struct getdns_dict *response = NULL; + struct getdns_dict *extensions = getdns_dict_create(); + uint32_t status; + uint32_t mode; + uint32_t tc; + + CONTEXT_CREATE(TRUE); + /* Need to explicit check as we may be compiled stub-only*/ + getdns_resolution_t resolution_type; + ASSERT_RC(getdns_context_get_resolution_type(context, &resolution_type), + GETDNS_RETURN_GOOD, "Return code from getdns_context_get_resolution_type()"); + if (resolution_type == GETDNS_RESOLUTION_RECURSING) { /* Re-do over TCP */ ASSERT_RC(getdns_dict_set_int(extensions,"return_call_reporting", GETDNS_EXTENSION_TRUE), @@ -259,9 +279,32 @@ ASSERT_RC(getdns_dict_get_int(response, "/replies_tree/0/header/tc", &tc), GETDNS_RETURN_GOOD, "Failed to extract \"tc\""); ASSERT_RC(tc, 0, "Packet trucated - not as expected"); + } - CONTEXT_DESTROY; - CONTEXT_CREATE(TRUE); + CONTEXT_DESTROY; + + } + END_TEST + + START_TEST (getdns_context_set_dns_transport_recursing_8) + { + /* + * Call getdns_context_set_dns_transport() with value = GETDNS_TRANSPORT_UDP_FIRST_AND_FALL_BACK_TO_TCP + * expect: Response returned + */ + struct getdns_context *context = NULL; + struct getdns_dict *response = NULL; + struct getdns_dict *extensions = getdns_dict_create(); + uint32_t status; + uint32_t mode; + uint32_t tc; + + CONTEXT_CREATE(TRUE); + /* Need to explicit check as we may be compiled stub-only*/ + getdns_resolution_t resolution_type; + ASSERT_RC(getdns_context_get_resolution_type(context, &resolution_type), + GETDNS_RETURN_GOOD, "Return code from getdns_context_get_resolution_type()"); + if (resolution_type == GETDNS_RESOLUTION_RECURSING) { /* Now let it fall back to TCP */ ASSERT_RC(getdns_context_set_dns_transport(context, GETDNS_TRANSPORT_UDP_FIRST_AND_FALL_BACK_TO_TCP), @@ -270,7 +313,7 @@ GETDNS_RETURN_GOOD, "Return code from getdns_context_set_edns_maximum_udp_payload_size()"); ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response), GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()"); - + ASSERT_RC(getdns_dict_get_int(response, "/replies_tree/0/header/tc", &tc), GETDNS_RETURN_GOOD, "Failed to extract \"tc\""); ASSERT_RC(tc, 0, "Packet trucated - not as expected"); @@ -282,6 +325,7 @@ END_TEST + Suite * getdns_context_set_dns_transport_suite (void) { @@ -300,7 +344,9 @@ TCase *tc_pos = tcase_create("Positive"); /* TODO: Test which specific lists are supported */ tcase_add_test(tc_pos, getdns_context_set_dns_transport_stub_5); - tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_6); + tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_6); + tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_7); + tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_8); /* TODO: TLS... */ suite_add_tcase(s, tc_pos); From b277aef435a8ab161d3cfadce96ad3ee289a74dd Mon Sep 17 00:00:00 2001 From: Sara Dickinson Date: Mon, 27 Jun 2016 11:53:39 +0100 Subject: [PATCH 2/2] Remove build warnings --- .../check_getdns_context_set_dns_transport.h | 27 +++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/src/test/check_getdns_context_set_dns_transport.h b/src/test/check_getdns_context_set_dns_transport.h index ea9f82c6..bcad502d 100644 --- a/src/test/check_getdns_context_set_dns_transport.h +++ b/src/test/check_getdns_context_set_dns_transport.h @@ -131,7 +131,7 @@ struct getdns_dict *extensions = getdns_dict_create(); uint32_t tc; uint32_t transport; - uint32_t mode; + uint32_t type; /* Note that stricly this test just establishes that the requested transport and the reported transport are consistent, it does not guarentee which @@ -158,9 +158,9 @@ ASSERT_RC(getdns_dict_get_int(response, "/call_reporting/0/transport", &transport), GETDNS_RETURN_GOOD, "Failed to extract \"transport\""); ASSERT_RC(transport, GETDNS_TRANSPORT_UDP, "Query did not go over UDP"); - ASSERT_RC(getdns_dict_get_int(response, "/call_reporting/0/resolution_type", &mode), + ASSERT_RC(getdns_dict_get_int(response, "/call_reporting/0/resolution_type", &type), GETDNS_RETURN_GOOD, "Failed to extract \"resolution_type\""); - ASSERT_RC(mode, GETDNS_RESOLUTION_STUB, "Query did not use stub mode"); + ASSERT_RC(type, GETDNS_RESOLUTION_STUB, "Query did not use stub mode"); ASSERT_RC(getdns_dict_get_int(response, "/replies_tree/0/header/tc", &tc), GETDNS_RETURN_GOOD, "Failed to extract \"tc\""); ASSERT_RC(tc, 1, "Packet not trucated as expected"); @@ -208,8 +208,6 @@ struct getdns_dict *response = NULL; struct getdns_dict *extensions = getdns_dict_create(); uint32_t status; - uint32_t mode; - uint32_t tc; /* Recursive mode does not report the transport used and does not answer if the response is trucated. Also, transport can't be changed on a ub ctx.*/ @@ -233,7 +231,7 @@ ASSERT_RC(getdns_dict_get_int(response, "status", &status), GETDNS_RETURN_GOOD, "Failed to extract \"status\""); - + /* TODO: INVESTIGATE THIS AS IT SHOULDN'T BE A TIMEOUT...*/ ASSERT_RC(status, GETDNS_RESPSTATUS_ALL_TIMEOUT, "Status not as expected"); } @@ -253,7 +251,7 @@ struct getdns_dict *response = NULL; struct getdns_dict *extensions = getdns_dict_create(); uint32_t status; - uint32_t mode; + uint32_t type; uint32_t tc; CONTEXT_CREATE(TRUE); @@ -273,9 +271,12 @@ ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response), GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()"); - ASSERT_RC(getdns_dict_get_int(response, "/call_reporting/0/resolution_type", &mode), + ASSERT_RC(getdns_dict_get_int(response, "status", &status), + GETDNS_RETURN_GOOD, "Failed to extract \"status\""); + ASSERT_RC(status, GETDNS_RESPSTATUS_GOOD, "Status not as expected"); + ASSERT_RC(getdns_dict_get_int(response, "/call_reporting/0/resolution_type", &type), GETDNS_RETURN_GOOD, "Failed to extract \"resolution_type\""); - ASSERT_RC(mode, GETDNS_RESOLUTION_RECURSING, "Query did not use Recursive mode"); + ASSERT_RC(type, GETDNS_RESOLUTION_RECURSING, "Query did not use Recursive mode"); ASSERT_RC(getdns_dict_get_int(response, "/replies_tree/0/header/tc", &tc), GETDNS_RETURN_GOOD, "Failed to extract \"tc\""); ASSERT_RC(tc, 0, "Packet trucated - not as expected"); @@ -296,7 +297,6 @@ struct getdns_dict *response = NULL; struct getdns_dict *extensions = getdns_dict_create(); uint32_t status; - uint32_t mode; uint32_t tc; CONTEXT_CREATE(TRUE); @@ -314,6 +314,10 @@ ASSERT_RC(getdns_general_sync(context, "getdnsapi.net", 48, extensions, &response), GETDNS_RETURN_GOOD, "Return code from getdns_general_sync()"); + ASSERT_RC(getdns_dict_get_int(response, "status", &status), + GETDNS_RETURN_GOOD, "Failed to extract \"status\""); + ASSERT_RC(status, GETDNS_RESPSTATUS_GOOD, "Status not as expected"); + ASSERT_RC(getdns_dict_get_int(response, "/replies_tree/0/header/tc", &tc), GETDNS_RETURN_GOOD, "Failed to extract \"tc\""); ASSERT_RC(tc, 0, "Packet trucated - not as expected"); @@ -326,6 +330,7 @@ + Suite * getdns_context_set_dns_transport_suite (void) { @@ -344,7 +349,7 @@ TCase *tc_pos = tcase_create("Positive"); /* TODO: Test which specific lists are supported */ tcase_add_test(tc_pos, getdns_context_set_dns_transport_stub_5); - tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_6); + tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_6); tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_7); tcase_add_test(tc_pos, getdns_context_set_dns_transport_recursing_8); /* TODO: TLS... */