Make `sockets.test' more robust.
authorLudovic Courtès <ludo@gnu.org>
Tue, 19 Jan 2010 17:49:06 +0000 (18:49 +0100)
committerLudovic Courtès <ludo@gnu.org>
Tue, 19 Jan 2010 17:49:06 +0000 (18:49 +0100)
* test-suite/tests/socket.test ("AF_INET6/SOCK_STREAM"): Gracefully
  handle cases where this combination is not supported.

test-suite/tests/socket.test

index cc512bf..7389cee 100644 (file)
@@ -1,6 +1,6 @@
 ;;;; socket.test --- test socket functions     -*- scheme -*-
 ;;;;
-;;;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc.
+;;;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
 ;;;;
 ;;;; This library is free software; you can redistribute it and/or
 ;;;; modify it under the terms of the GNU Lesser General Public
 
       ;; testing `bind', `listen' and `connect' on stream-oriented sockets
 
-      (let ((server-socket (socket AF_INET6 SOCK_STREAM 0))
+      (let ((server-socket
+             ;; Some platforms don't support this protocol/family combination.
+             (false-if-exception (socket AF_INET6 SOCK_STREAM 0)))
            (server-bound? #f)
            (server-listening? #f)
            (server-pid #f)
            (client-port 9998))
 
        (pass-if "bind"
+          (if (not server-socket)
+              (throw 'unresolved))
          (catch 'system-error
            (lambda ()
              (bind server-socket AF_INET6 ipv6-addr server-port)
                      (else (apply throw args)))))))
 
        (pass-if "bind/sockaddr"
-         (let* ((sock (socket AF_INET6 SOCK_STREAM 0))
+         (let* ((sock (false-if-exception (socket AF_INET6 SOCK_STREAM 0)))
                 (sockaddr (make-socket-address AF_INET6 ipv6-addr client-port)))
+            (if (not sock)
+                (throw 'unresolved))
            (catch 'system-error
              (lambda ()
                (bind sock sockaddr)