Module: wine Branch: refs/heads/master Commit: 12ae5d4e4bf76bb417cbc2ad5a0ebafcb78fbcb5 URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=12ae5d4e4bf76bb417cbc2ad...
Author: Hans Leidekker hans@it.vu.nl Date: Mon May 1 16:29:05 2006 +0200
dnsapi: Add tests for DnsRecordCompare.
---
dlls/dnsapi/tests/.gitignore | 1 dlls/dnsapi/tests/Makefile.in | 3 + dlls/dnsapi/tests/record.c | 91 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 94 insertions(+), 1 deletions(-) create mode 100644 dlls/dnsapi/tests/record.c
diff --git a/dlls/dnsapi/tests/.gitignore b/dlls/dnsapi/tests/.gitignore index df9e5c3..3c27a53 100644 --- a/dlls/dnsapi/tests/.gitignore +++ b/dlls/dnsapi/tests/.gitignore @@ -1,3 +1,4 @@ Makefile name.ok +record.ok testlist.c diff --git a/dlls/dnsapi/tests/Makefile.in b/dlls/dnsapi/tests/Makefile.in index f4e8b9a..0057a9c 100644 --- a/dlls/dnsapi/tests/Makefile.in +++ b/dlls/dnsapi/tests/Makefile.in @@ -6,7 +6,8 @@ TESTDLL = dnsapi.dll IMPORTS = dnsapi kernel32
CTESTS = \ - name.c + name.c \ + record.c
@MAKE_TEST_RULES@
diff --git a/dlls/dnsapi/tests/record.c b/dlls/dnsapi/tests/record.c new file mode 100644 index 0000000..307ecaa --- /dev/null +++ b/dlls/dnsapi/tests/record.c @@ -0,0 +1,91 @@ +/* + * Tests for record handling functions + * + * Copyright 2006 Hans Leidekker + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + */ + +#include <stdarg.h> + +#include "windef.h" +#include "winbase.h" +#include "winnls.h" +#include "windns.h" + +#include "wine/test.h" + +static HMODULE dnsapi; + +static BOOL (WINAPI *pDnsRecordCompare)(PDNS_RECORD,PDNS_RECORD); + +#define GETFUNCPTR(func) p##func = (void *)GetProcAddress( dnsapi, #func ); \ + if (!p##func) return FALSE; + +static BOOL init_function_ptrs( void ) +{ + GETFUNCPTR( DnsRecordCompare ) + return TRUE; +} + +static void test_DnsRecordCompare( void ) +{ + char name1[] = "localhost"; + char name2[] = "LOCALHOST"; + static DNS_RECORDA r1, r2; + + r1.pName = name1; + r1.wType = DNS_TYPE_A; + r1.wDataLength = sizeof(DNS_A_DATA); + r1.Data.A.IpAddress = 0xffffffff; + + r2.pName = name1; + r2.wType = DNS_TYPE_A; + r2.wDataLength = sizeof(DNS_A_DATA); + r2.Data.A.IpAddress = 0xffffffff; + + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r1 ) == TRUE, "failed unexpectedly\n" ); + + r2.pName = name2; + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r2 ) == TRUE, "failed unexpectedly\n" ); + + r2.Flags.S.CharSet = DnsCharSetUnicode; + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r2 ) == FALSE, "succeeded unexpectedly\n" ); + + r2.Flags.S.CharSet = DnsCharSetAnsi; + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r2 ) == FALSE, "succeeded unexpectedly\n" ); + + r1.Flags.S.CharSet = DnsCharSetAnsi; + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r2 ) == TRUE, "failed unexpectedly\n" ); + + r2.Data.A.IpAddress = 0; + ok( pDnsRecordCompare( (PDNS_RECORD)&r1, (PDNS_RECORD)&r2 ) == FALSE, "succeeded unexpectedly\n" ); +} + +START_TEST(record) +{ + dnsapi = LoadLibraryA( "dnsapi.dll" ); + if (!dnsapi) return; + + if (!init_function_ptrs()) + { + FreeLibrary( dnsapi ); + return; + } + + test_DnsRecordCompare(); + + FreeLibrary( dnsapi ); +}