mirror of
https://github.com/reactos/reactos.git
synced 2024-10-01 06:57:08 +00:00
[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:
parent
e82d66cfa5
commit
2d22483bef
|
@ -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)
|
||||
|
|
10
rostests/apitests/dnsapi/CMakeLists.txt
Normal file
10
rostests/apitests/dnsapi/CMakeLists.txt
Normal 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)
|
112
rostests/apitests/dnsapi/DnsQuery.c
Normal file
112
rostests/apitests/dnsapi/DnsQuery.c
Normal 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;
|
||||
}
|
10
rostests/apitests/dnsapi/testlist.c
Normal file
10
rostests/apitests/dnsapi/testlist.c
Normal 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 }
|
||||
};
|
Loading…
Reference in a new issue