summary refs log tree commit diff
path: root/tests/syscalls.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2016-03-25 17:29:36 +0100
committerLudovic Courtès <ludo@gnu.org>2016-03-25 17:29:36 +0100
commit7adbe85e60fce61d0082a9c46604a26d651cb87a (patch)
tree43f2295b341a02d05bc1ce34937121bd287b0568 /tests/syscalls.scm
parent001dae0d7431719655f525a94dc900cc078cca99 (diff)
downloadguix-7adbe85e60fce61d0082a9c46604a26d651cb87a.tar.gz
syscalls: 'interface-address' can return #f.
Fixes <http://bugs.gnu.org/22612>.
Reported by Danny Milosavljevic <dannym@scratchpost.org>.

* tests/syscalls.scm ("network-interfaces returns one or more
interfaces"): Accept 'interface-address' value of #f.
Diffstat (limited to 'tests/syscalls.scm')
-rw-r--r--tests/syscalls.scm8
1 files changed, 6 insertions, 2 deletions
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index a57a9ca9f9..feeb74c11b 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2014, 2015 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2014, 2015, 2016 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 David Thompson <davet@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -223,7 +223,11 @@
     ((interfaces ..1)
      (list (every interface? interfaces)
            (every string? (map interface-name interfaces))
-           (every vector? (map interface-address interfaces))))))
+           (every (lambda (sockaddr)
+                    ;; Sometimes interfaces have no associated address.
+                    (or (vector? sockaddr)
+                        (not sockaddr)))
+                  (map interface-address interfaces))))))
 
 (test-equal "network-interfaces returns \"lo\""
   (list #t (make-socket-address AF_INET (inet-pton AF_INET "127.0.0.1") 0))