Fix `getaddrinfo' tests.
authorLudovic Courtès <ludo@gnu.org>
Mon, 15 Feb 2010 15:10:01 +0000 (16:10 +0100)
committerLudovic Courtès <ludo@gnu.org>
Mon, 15 Feb 2010 15:10:01 +0000 (16:10 +0100)
Thanks to Ken Raeburn.

* test-suite/tests/net-db.test ("getaddrinfo")["port 80"]: Fix bogus
  check of `addrinfo:flags' (POSIX says that the "contents of the
  ai_flags field of the returned structures are undefined.").
  ("wrong service name"): Accept `EAI_NONAME' as a valid error code.

test-suite/tests/net-db.test

index 23a534d..7364d82 100644 (file)
@@ -50,7 +50,6 @@
                (fold (lambda (ai ok?)
                        (let ((sa (addrinfo:addr ai)))
                          (and ok?
-                              (> (logand (addrinfo:flags ai) AI_ADDRCONFIG) 0)
                               (= (sockaddr:port sa) 80))))
                      #t
                      ai))))
@@ -73,5 +72,8 @@
             (getaddrinfo "127.0.0.1" "does-not-exist" AI_NUMERICHOST)
             #f)
           (lambda (key errcode)
-            (and (= errcode EAI_SERVICE)
+            ;; According to POSIX, both error codes are valid (glibc 2.11
+            ;; chooses `EAI_SERVICE'; Darwin chooses `EAI_NONAME'.)
+            (and (or (= errcode EAI_SERVICE)
+                     (= errcode EAI_NONAME))
                  (string? (gai-strerror errcode))))))))