summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorLeo Famulari <leo@famulari.name>2016-11-23 00:11:30 -0500
committerLeo Famulari <leo@famulari.name>2016-11-23 00:11:30 -0500
commitde76f0a45bad2654cc2561b463e3d6ec4d96c398 (patch)
treee1dcd0a33de2d8dffaa9d4c5068fc1fd0f149734 /tests
parentc70047f12d7e9d5138a1a217d0995882a8c5f459 (diff)
parent08b3e4a97066c9baaf39e3df7c2dd9c39e693ead (diff)
downloadguix-de76f0a45bad2654cc2561b463e3d6ec4d96c398.tar.gz
Merge branch 'master' into core-updates
Diffstat (limited to 'tests')
-rw-r--r--tests/gexp.scm59
-rw-r--r--tests/lint.scm19
-rw-r--r--tests/syscalls.scm45
3 files changed, 93 insertions, 30 deletions
diff --git a/tests/gexp.scm b/tests/gexp.scm
index 214e7a5302..354d28f014 100644
--- a/tests/gexp.scm
+++ b/tests/gexp.scm
@@ -375,7 +375,7 @@
                        (drv    (gexp->file "foo" exp))
                        (out -> (derivation->output-path drv))
                        (done   (built-derivations (list drv)))
-                       (refs   ((store-lift references) out)))
+                       (refs   (references* out)))
     (return (and (equal? sexp (call-with-input-file out read))
                  (equal? (list guile) refs)))))
 
@@ -386,7 +386,7 @@
                        (drv    (gexp->file "foo" exp))
                        (out -> (derivation->output-path drv))
                        (done   (built-derivations (list drv)))
-                       (refs   ((store-lift references) out)))
+                       (refs   (references* out)))
     (return (and (equal? (string-append guile "/bin/guile")
                          (call-with-input-file out read))
                  (equal? (list guile) refs)))))
@@ -407,8 +407,8 @@
                        (out ->  (derivation->output-path drv))
                        (out2 -> (derivation->output-path drv "2nd"))
                        (done    (built-derivations (list drv)))
-                       (refs    ((store-lift references) out))
-                       (refs2   ((store-lift references) out2))
+                       (refs    (references* out))
+                       (refs2   (references* out2))
                        (guile   (package-file %bootstrap-guile "bin/guile")))
     (return (and (string=? (readlink (string-append out "/foo")) guile)
                  (string=? (readlink out2) file)
@@ -481,7 +481,7 @@
                                               (ungexp output))))
                        (xdrv      (gexp->derivation "foo" exp
                                                     #:target target))
-                       (refs      ((store-lift references)
+                       (refs      (references*
                                    (derivation-file-name xdrv)))
                        (xcu       (package->cross-derivation coreutils
                                                              target))
@@ -506,7 +506,7 @@
                                               (ungexp output))))
                        (xdrv      (gexp->derivation "foo" exp
                                                     #:target target))
-                       (refs      ((store-lift references)
+                       (refs      (references*
                                    (derivation-file-name xdrv)))
                        (xglibc    (package->cross-derivation glibc target))
                        (cu        (package->derivation coreutils)))
@@ -808,34 +808,33 @@
                          (out -> (derivation->output-path drv)))
       (mbegin %store-monad
         (built-derivations (list drv))
-        (mlet %store-monad ((refs ((store-lift references) out)))
+        (mlet %store-monad ((refs (references* out)))
           (return (and (equal? refs (list text))
                        (equal? `(list "foo" ,text)
                                (call-with-input-file out read)))))))))
 
 (test-assert "text-file*"
-  (let ((references (store-lift references)))
-    (run-with-store %store
-      (mlet* %store-monad
-          ((drv  (package->derivation %bootstrap-guile))
-           (guile -> (derivation->output-path drv))
-           (file (text-file "bar" "This is bar."))
-           (text (text-file* "foo"
-                             %bootstrap-guile "/bin/guile "
-                             (gexp-input %bootstrap-guile "out") "/bin/guile "
-                             drv "/bin/guile "
-                             file))
-           (done (built-derivations (list text)))
-           (out -> (derivation->output-path text))
-           (refs (references out)))
-        ;; Make sure we get the right references and the right content.
-        (return (and (lset= string=? refs (list guile file))
-                     (equal? (call-with-input-file out get-string-all)
-                             (string-append guile "/bin/guile "
-                                            guile "/bin/guile "
-                                            guile "/bin/guile "
-                                            file)))))
-      #:guile-for-build (package-derivation %store %bootstrap-guile))))
+  (run-with-store %store
+    (mlet* %store-monad
+        ((drv  (package->derivation %bootstrap-guile))
+         (guile -> (derivation->output-path drv))
+         (file (text-file "bar" "This is bar."))
+         (text (text-file* "foo"
+                           %bootstrap-guile "/bin/guile "
+                           (gexp-input %bootstrap-guile "out") "/bin/guile "
+                           drv "/bin/guile "
+                           file))
+         (done (built-derivations (list text)))
+         (out -> (derivation->output-path text))
+         (refs (references* out)))
+      ;; Make sure we get the right references and the right content.
+      (return (and (lset= string=? refs (list guile file))
+                   (equal? (call-with-input-file out get-string-all)
+                           (string-append guile "/bin/guile "
+                                          guile "/bin/guile "
+                                          guile "/bin/guile "
+                                          file)))))
+    #:guile-for-build (package-derivation %store %bootstrap-guile)))
 
 (test-assertm "mixed-text-file"
   (mlet* %store-monad ((file ->   (mixed-text-file "mixed"
@@ -847,7 +846,7 @@
                        (guile ->  (derivation->output-path guile-drv)))
     (mbegin %store-monad
       (built-derivations (list drv))
-      (mlet %store-monad ((refs ((store-lift references) out)))
+      (mlet %store-monad ((refs (references* out)))
         (return (and (string=? (string-append "export PATH=" guile "/bin")
                                (call-with-input-file out get-string-all))
                      (equal? refs (list guile))))))))
diff --git a/tests/lint.scm b/tests/lint.scm
index cf1b95ee69..0c534562a4 100644
--- a/tests/lint.scm
+++ b/tests/lint.scm
@@ -508,6 +508,25 @@
           (check-source pkg))))
     "not reachable: 404")))
 
+(test-assert "mirror-url"
+  (string-null?
+   (with-warnings
+     (let ((source (origin
+                     (method url-fetch)
+                     (uri "http://example.org/foo/bar.tar.gz")
+                     (sha256 %null-sha256))))
+       (check-mirror-url (dummy-package "x" (source source)))))))
+
+(test-assert "mirror-url: one suggestion"
+  (string-contains
+   (with-warnings
+     (let ((source (origin
+                     (method url-fetch)
+                     (uri "http://ftp.gnu.org/pub/gnu/foo/foo.tar.gz")
+                     (sha256 %null-sha256))))
+       (check-mirror-url (dummy-package "x" (source source)))))
+   "mirror://gnu/foo/foo.tar.gz"))
+
 (test-assert "cve"
   (mock ((guix scripts lint) package-vulnerabilities (const '()))
         (string-null?
diff --git a/tests/syscalls.scm b/tests/syscalls.scm
index 9eb19f9c80..e4ef32c522 100644
--- a/tests/syscalls.scm
+++ b/tests/syscalls.scm
@@ -326,6 +326,27 @@
         ;; We get EPERM with Linux 3.18ish and EACCES with 2.6.32.
         (memv (system-error-errno args) (list EPERM EACCES))))))
 
+(test-equal "network-interface-netmask lo"
+  (make-socket-address AF_INET (inet-pton AF_INET "255.0.0.0") 0)
+  (let* ((sock (socket AF_INET SOCK_STREAM 0))
+         (addr (network-interface-netmask sock "lo")))
+    (close-port sock)
+    addr))
+
+(test-skip (if (zero? (getuid)) 1 0))
+(test-assert "set-network-interface-netmask"
+  (let ((sock (socket AF_INET SOCK_STREAM 0)))
+    (catch 'system-error
+      (lambda ()
+        (set-network-interface-netmask sock "nonexistent"
+                                       (make-socket-address
+                                        AF_INET
+                                        (inet-pton AF_INET "255.0.0.0")
+                                        0)))
+      (lambda args
+        (close-port sock)
+        (memv (system-error-errno args) (list EPERM EACCES))))))
+
 (test-equal "network-interfaces returns one or more interfaces"
   '(#t #t #t)
   (match (network-interfaces)
@@ -353,6 +374,30 @@
              (#f #f)
              (lo (interface-address lo)))))))
 
+(test-skip (if (zero? (getuid)) 1 0))
+(test-assert "add-network-route/gateway"
+  (let ((sock    (socket AF_INET SOCK_STREAM 0))
+        (gateway (make-socket-address AF_INET
+                                      (inet-pton AF_INET "192.168.0.1")
+                                      0)))
+    (catch 'system-error
+      (lambda ()
+        (add-network-route/gateway sock gateway))
+      (lambda args
+        (close-port sock)
+        (memv (system-error-errno args) (list EPERM EACCES))))))
+
+(test-skip (if (zero? (getuid)) 1 0))
+(test-assert "delete-network-route"
+  (let ((sock        (socket AF_INET SOCK_STREAM 0))
+        (destination (make-socket-address AF_INET INADDR_ANY 0)))
+    (catch 'system-error
+      (lambda ()
+        (delete-network-route sock destination))
+      (lambda args
+        (close-port sock)
+        (memv (system-error-errno args) (list EPERM EACCES))))))
+
 (test-equal "tcgetattr ENOTTY"
   ENOTTY
   (catch 'system-error