[DNSAPI_APITEST]

- Add a test for DnsQuery. Patch by Víctor Martínez Calvo, with additional tests and fixes by me.
ROSTESTS-226 #resolve

svn path=/trunk/; revision=71709
This commit is contained in:
Thomas Faber 2016-07-01 14:44:55 +00:00
parent e82d66cfa5
commit 2d22483bef
4 changed files with 133 additions and 0 deletions

View file

@ -8,6 +8,7 @@ add_subdirectory(browseui)
add_subdirectory(com)
add_subdirectory(crt)
add_subdirectory(dciman32)
add_subdirectory(dnsapi)
add_subdirectory(gdi32)
add_subdirectory(gditools)
add_subdirectory(iphlpapi)

View file

@ -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)

View file

@ -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;
}

View file

@ -0,0 +1,10 @@
#define STANDALONE
#include <apitest.h>
extern void func_DnsQuery(void);
const struct test winetest_testlist[] =
{
{ "DnsQuery", func_DnsQuery },
{ 0, 0 }
};