Author: tfaber Date: Fri Jul 1 14:44:55 2016 New Revision: 71709
URL: http://svn.reactos.org/svn/reactos?rev=71709&view=rev Log: [DNSAPI_APITEST] - Add a test for DnsQuery. Patch by Víctor Martínez Calvo, with additional tests and fixes by me. ROSTESTS-226 #resolve
Added: trunk/rostests/apitests/dnsapi/ trunk/rostests/apitests/dnsapi/CMakeLists.txt (with props) trunk/rostests/apitests/dnsapi/DnsQuery.c (with props) trunk/rostests/apitests/dnsapi/testlist.c (with props) Modified: trunk/rostests/apitests/CMakeLists.txt
Modified: trunk/rostests/apitests/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/CMakeLists.txt?re... ============================================================================== --- trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] (original) +++ trunk/rostests/apitests/CMakeLists.txt [iso-8859-1] Fri Jul 1 14:44:55 2016 @@ -8,6 +8,7 @@ add_subdirectory(com) add_subdirectory(crt) add_subdirectory(dciman32) +add_subdirectory(dnsapi) add_subdirectory(gdi32) add_subdirectory(gditools) add_subdirectory(iphlpapi)
Added: trunk/rostests/apitests/dnsapi/CMakeLists.txt URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/dnsapi/CMakeLists... ============================================================================== --- trunk/rostests/apitests/dnsapi/CMakeLists.txt (added) +++ trunk/rostests/apitests/dnsapi/CMakeLists.txt [iso-8859-1] Fri Jul 1 14:44:55 2016 @@ -0,0 +1,10 @@ + +list(APPEND SOURCE + DnsQuery.c + testlist.c) + +add_executable(dnsapi_apitest ${SOURCE}) +target_link_libraries(dnsapi_apitest wine) +set_module_type(dnsapi_apitest win32cui) +add_importlibs(dnsapi_apitest ws2_32 dnsapi msvcrt kernel32 ntdll) +add_cd_file(TARGET dnsapi_apitest DESTINATION reactos/bin FOR all)
Propchange: trunk/rostests/apitests/dnsapi/CMakeLists.txt ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rostests/apitests/dnsapi/DnsQuery.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/dnsapi/DnsQuery.c... ============================================================================== --- trunk/rostests/apitests/dnsapi/DnsQuery.c (added) +++ trunk/rostests/apitests/dnsapi/DnsQuery.c [iso-8859-1] Fri Jul 1 14:44:55 2016 @@ -0,0 +1,112 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPLv2+ - See COPYING in the top level directory + * PURPOSE: Test for DnsQuery_A + * PROGRAMMER: Victor Martinez Calvo victor.martinez@reactos.org + */ + +#include <winsock2.h> +#include <ws2tcpip.h> +#include <stdio.h> +#include <WinDNS.h> +#include <apitest.h> + + +void TestHostName(void) +{ + + DNS_STATUS dns_status = NO_ERROR; + char host_name[255]; + PDNS_RECORD dp = NULL; + WCHAR host_nameW[255]; + + gethostname(host_name, sizeof(host_name)); + mbstowcs(host_nameW, host_name, 255); + + //DnsQuery_A: + //NULL + dp = InvalidPointer; + dns_status = DnsQuery_A(NULL, DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == ERROR_INVALID_PARAMETER, "DnsQuery_A failed with error %lu\n", dns_status); + ok(dp == InvalidPointer, "dp = %p\n", dp); + + //Testing HostName + dns_status = DnsQuery_A(host_name, DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_A failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + //127.0.0.1 + dns_status = DnsQuery_A("127.0.0.1", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_A failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + //Localhost strings + dns_status = DnsQuery_A("LocalHost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_A failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + dns_status = DnsQuery_A("Localhost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_A failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + dns_status = DnsQuery_A("localhost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_A failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + //DnsQuery_W: + //NULL + dp = InvalidPointer; + dns_status = DnsQuery_W(NULL, DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + if (dns_status == NO_ERROR) + { + /* Win2003 */ + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + ok(dp != NULL && dp != InvalidPointer, "dp = %p\n", dp); + } + else + { + /* Win7 */ + ok(dns_status == ERROR_INVALID_PARAMETER, "DnsQuery_W failed with error %lu\n", dns_status); + ok(dp == InvalidPointer, "dp = %p\n", dp); + } + if (dp != InvalidPointer) DnsRecordListFree(dp, DnsFreeRecordList); + + //Testing HostName + dns_status = DnsQuery_W(host_nameW, DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + //127.0.0.1 + dns_status = DnsQuery_W(L"127.0.0.1", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + //Localhost strings + dns_status = DnsQuery_W(L"LocalHost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + dns_status = DnsQuery_W(L"Localhost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); + + dns_status = DnsQuery_W(L"localhost", DNS_TYPE_A, DNS_QUERY_STANDARD, 0, &dp, 0); + ok(dns_status == NO_ERROR, "DnsQuery_W failed with error %lu\n", dns_status); + DnsRecordListFree(dp, DnsFreeRecordList); +} + +START_TEST(DnsQuery) +{ + WSADATA wsaData; + int iResult; + + // Initialize Winsock + iResult = WSAStartup(MAKEWORD(2, 2), &wsaData); + ok(iResult == 0, "WSAStartup failed: %d\n", iResult); + if (iResult != 0) return; + + // Tests + TestHostName(); + + return; +}
Propchange: trunk/rostests/apitests/dnsapi/DnsQuery.c ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/rostests/apitests/dnsapi/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/dnsapi/testlist.c... ============================================================================== --- trunk/rostests/apitests/dnsapi/testlist.c (added) +++ trunk/rostests/apitests/dnsapi/testlist.c [iso-8859-1] Fri Jul 1 14:44:55 2016 @@ -0,0 +1,10 @@ +#define STANDALONE +#include <apitest.h> + +extern void func_DnsQuery(void); + +const struct test winetest_testlist[] = +{ + { "DnsQuery", func_DnsQuery }, + { 0, 0 } +};
Propchange: trunk/rostests/apitests/dnsapi/testlist.c ------------------------------------------------------------------------------ svn:eol-style = native