Hans Leidekker : dnsapi: Add tests for DnsRecordCompare.

Alexandre Julliard julliard at wine.codeweavers.com
Sun May 7 03:36:35 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 12ae5d4e4bf76bb417cbc2ad5a0ebafcb78fbcb5
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=12ae5d4e4bf76bb417cbc2ad5a0ebafcb78fbcb5

Author: Hans Leidekker <hans at 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 );
+}




More information about the wine-cvs mailing list