Bruno Jesus : ws2_32/tests: Update hostent struct tests.

Alexandre Julliard julliard at winehq.org
Wed Apr 11 12:56:48 CDT 2012


Module: wine
Branch: master
Commit: d209697073958137a1ab578718b14677f84bb9ae
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=d209697073958137a1ab578718b14677f84bb9ae

Author: Bruno Jesus <00cpxxx at gmail.com>
Date:   Tue Apr 10 23:13:31 2012 -0300

ws2_32/tests: Update hostent struct tests.

---

 dlls/ws2_32/tests/sock.c |   39 ++++++++++++++++++++-------------------
 1 files changed, 20 insertions(+), 19 deletions(-)

diff --git a/dlls/ws2_32/tests/sock.c b/dlls/ws2_32/tests/sock.c
index 53cf2c8..9fd6abb 100644
--- a/dlls/ws2_32/tests/sock.c
+++ b/dlls/ws2_32/tests/sock.c
@@ -2730,7 +2730,7 @@ static void test_getsockname(void)
 
 static void test_dns(void)
 {
-    struct hostent *h, *he, host;
+    struct hostent *h;
     union memaddress
     {
         char *chr;
@@ -2738,20 +2738,13 @@ static void test_dns(void)
     } addr;
     char **ptr;
     int acount;
-    void *ip_addr, *alias_addr;
 
     h = gethostbyname("");
     ok(h != NULL, "gethostbyname(\"\") failed with %d\n", h_errno);
 
-    if(h) host = *h;
-
     /* Use an address with valid alias names if possible */
-    he = gethostbyname("source.winehq.org");
-    if(he)
-        h = he;
-    else if (h)
-        h = &host;
-    else
+    h = gethostbyname("source.winehq.org");
+    if(!h)
     {
         skip("Can't test the hostent structure because gethostbyname failed\n");
         return;
@@ -2762,18 +2755,26 @@ static void test_dns(void)
      * the struct hostent size. Knowing the amount of aliases we know the exact
      * location of the first IP returned. Rule valid for >= XP, for older OS's
      * it's somewhat the opposite. */
-    for(ptr = h->h_aliases, acount = 1; *ptr; ptr++) acount++;
-
     addr.mem = h + 1;
-    alias_addr = addr.mem;
+    if(h->h_addr_list == addr.mem) /* <= W2K */
+    {
+        skip("Skipping hostent tests since this OS is unsupported\n");
+        return;
+    }
+
+    todo_wine ok(h->h_aliases == addr.mem,
+       "hostent->h_aliases should be in %p, it is in %p\n", addr.mem, h->h_aliases);
+
+    for(ptr = h->h_aliases, acount = 1; *ptr; ptr++) acount++;
+    addr.chr += sizeof(*ptr) * acount;
+    todo_wine ok(h->h_addr_list == addr.mem,
+       "hostent->h_addr_list should be in %p, it is in %p\n", addr.mem, h->h_addr_list);
 
-    todo_wine ok(h->h_aliases == alias_addr || broken(h->h_addr_list == alias_addr /* <= W2K */ ),
-       "hostent->h_aliases should be in %p, it is in %p\n", alias_addr, h->h_aliases);
+    for(ptr = h->h_addr_list, acount = 1; *ptr; ptr++) acount++;
 
-    addr.chr += sizeof(h->h_aliases) * acount;
-    ip_addr = addr.mem;
-    todo_wine ok(h->h_addr_list == ip_addr || broken(h->h_addr_list == alias_addr /* <= W2K */ ),
-       "hostent->h_addr_list should be in %p, it is in %p\n", ip_addr, h->h_addr_list);
+    addr.chr += sizeof(*ptr) * acount;
+    todo_wine ok(h->h_addr_list[0] == addr.mem,
+       "hostent->h_addr_list[0] should be in %p, it is in %p\n", addr.mem, h->h_addr_list[0]);
 }
 
 /* Our winsock headers don't define gethostname because it conflicts with the




More information about the wine-cvs mailing list