* bug#29356: 1 test-suite test fails
@ 2017-11-19 13:37 Martin Castillo
2017-11-20 9:23 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: Martin Castillo @ 2017-11-19 13:37 UTC (permalink / raw)
To: 29356
[-- Attachment #1.1.1: Type: text/plain, Size: 103 bytes --]
Hello,
I built guix from 84bd92438. The test suite fails with the attached log.
Martin Castillo
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1.1.2: test-suite.log --]
[-- Type: text/x-log; name="test-suite.log", Size: 44163 bytes --]
========================================
GNU Guix UNKNOWN: ./test-suite.log
========================================
# TOTAL: 746
# PASS: 739
# SKIP: 6
# XFAIL: 0
# FAIL: 1
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
SKIP: tests/base32
==================
sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /home/mcd/guix/tests/base32.scm:48
source:
+ (test-assert
+ "bytevector->base32-string"
+ (fold (lambda (bv expected result)
+ (and result
+ (string=?
+ (bytevector->base32-string bv)
+ expected)))
+ #t
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))
+ '(""
+ "my"
+ "mzxq"
+ "mzxw6"
+ "mzxw6yq"
+ "mzxw6ytb"
+ "mzxw6ytboi")))
actual-value: #t
result: PASS
test-name: base32-string->bytevector
location: /home/mcd/guix/tests/base32.scm:65
source:
+ (test-assert
+ "base32-string->bytevector"
+ (every (lambda (bv)
+ (equal?
+ (base32-string->bytevector
+ (bytevector->base32-string bv))
+ bv))
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS
test-name: nix-base32-string->bytevector
location: /home/mcd/guix/tests/base32.scm:73
source:
+ (test-assert
+ "nix-base32-string->bytevector"
+ (every (lambda (bv)
+ (equal?
+ (nix-base32-string->bytevector
+ (bytevector->nix-base32-string bv))
+ bv))
+ (map string->utf8
+ '("" "f" "fo" "foo" "foob" "fooba" "foobar"))))
actual-value: #t
result: PASS
test-name: &invalid-base32-character
location: /home/mcd/guix/tests/base32.scm:81
source:
+ (test-equal
+ "&invalid-base32-character"
+ #\e
+ (guard (c ((invalid-base32-character? c)
+ (invalid-base32-character-value c)))
+ (nix-base32-string->bytevector
+ (string-append (make-string 51 #\a) "e"))))
expected-value: #\e
actual-value: #\e
result: PASS
test-name: sha256 & bytevector->nix-base32-string
location: /home/mcd/guix/tests/base32.scm:92
source:
+ (test-assert
+ "sha256 & bytevector->nix-base32-string"
+ (let ((file (search-path %load-path "tests/test.drv")))
+ (equal?
+ (bytevector->nix-base32-string
+ (sha256
+ (call-with-input-file file get-bytevector-all)))
+ (let* ((c (format
+ #f
+ "~a --type sha256 --base32 --flat \"~a\""
+ %nix-hash
+ file))
+ (p (open-input-pipe c))
+ (l (read-line p)))
+ (close-pipe p)
+ l))))
result: SKIP
SKIP: tests/cpio
================
test-name: file->cpio-header + write-cpio-header + read-cpio-header
location: /home/mcd/guix/tests/cpio.scm:37
source:
+ (test-assert
+ "file->cpio-header + write-cpio-header + read-cpio-header"
+ (let* ((file (search-path %load-path "guix.scm"))
+ (header (file->cpio-header file)))
+ (call-with-values
+ (lambda () (open-bytevector-output-port))
+ (lambda (port get-bv)
+ (write-cpio-header header port)
+ (let ((port (open-bytevector-input-port (get-bv))))
+ (equal? header (read-cpio-header port)))))))
actual-value: #t
result: PASS
test-name: bit-identical to GNU cpio's output
location: /home/mcd/guix/tests/cpio.scm:49
source:
+ (test-assert
+ "bit-identical to GNU cpio's output"
+ (call-with-temporary-output-file
+ (lambda (link _)
+ (delete-file link)
+ (symlink "chbouib" link)
+ (let ((files (cons* "/"
+ (canonicalize-path
+ (dirname (search-path %load-path "guix.scm")))
+ link
+ (map (compose
+ canonicalize-path
+ (cut search-path %load-path <>))
+ '("guix.scm"
+ "guix/build/syscalls.scm"
+ "guix/packages.scm")))))
+ (call-with-temporary-output-file
+ (lambda (ref-file _)
+ (let ((pipe (open-pipe*
+ OPEN_WRITE
+ %cpio-program
+ "-o"
+ "-O"
+ ref-file
+ "-H"
+ "newc"
+ "--null")))
+ (for-each
+ (lambda (file) (format pipe "~a\x00" file))
+ files)
+ (and (zero? (close-pipe pipe))
+ (call-with-temporary-output-file
+ (lambda (file port)
+ (write-cpio-archive files port)
+ (close-port port)
+ (or (file=? ref-file file)
+ (throw 'cpio-archives-differ
+ files
+ ref-file
+ file
+ (stat:size (stat ref-file))
+ (stat:size (stat file))))))))))))))
result: SKIP
random seed for tests: 1511104405
SKIP: tests/snix
================
test-name: factorize-uri
location: /home/mcd/guix/tests/snix.scm:36
source:
+ (test-assert
+ "factorize-uri"
+ (every?
+ (match-lambda
+ ((uri version '-> expected)
+ (equal? (factorize-uri uri version) expected)))
+ '(("http://example.com/foo.tgz"
+ "1.0"
+ ->
+ "http://example.com/foo.tgz")
+ ("http://example.com/foo-2.8.tgz"
+ "2.8"
+ ->
+ ("http://example.com/foo-" version ".tgz"))
+ ("http://example.com/2.8/foo-2.8.tgz"
+ "2.8"
+ ->
+ ("http://example.com/"
+ version
+ "/foo-"
+ version
+ ".tgz")))))
actual-value: #t
result: PASS
test-name: nixpkgs->guix-package
location: /home/mcd/guix/tests/snix.scm:54
source:
+ (test-assert
+ "nixpkgs->guix-package"
+ (match (nixpkgs->guix-package
+ %nixpkgs-directory
+ "guile")
+ (('package
+ ('name "guile")
+ ('version (? string?))
+ ('source ('origin _ ...))
+ ('build-system _)
+ ('inputs ('quasiquote (inputs ...)))
+ ('propagated-inputs ('quasiquote (pinputs ...)))
+ ('home-page (? string?))
+ ('synopsis (? string?))
+ ('description (? string?))
+ ('license (? symbol?)))
+ (and (member '("libffi" ,libffi) inputs)
+ (member '("gmp" ,gmp) pinputs)
+ #t))
+ (x (pk 'fail x #f))))
result: SKIP
SKIP: tests/syscalls
====================
test-name: mount, ENOENT
location: /home/mcd/guix/tests/syscalls.scm:40
source:
+ (test-equal
+ "mount, ENOENT"
+ ENOENT
+ (catch 'system-error
+ (lambda ()
+ (mount "/dev/null" "/does-not-exist" "ext2")
+ #f)
+ (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS
test-name: umount, ENOENT/EPERM
location: /home/mcd/guix/tests/syscalls.scm:48
source:
+ (test-assert
+ "umount, ENOENT/EPERM"
+ (catch 'system-error
+ (lambda () (umount "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS
test-name: mount-points
location: /home/mcd/guix/tests/syscalls.scm:57
source:
+ (test-assert
+ "mount-points"
+ (any (cute member <> (mount-points))
+ '("/" "/proc" "/sys" "/dev")))
actual-value: ("/" "/dev/pts" "/dev/shm" "/gnu/store" "/sys/fs/cgroup" "/sys/fs/cgroup/cpuset" "/sys/fs/cgroup/cpu" "/sys/fs/cgroup/cpuacct" "/sys/fs/cgroup/memory" "/sys/fs/cgroup/devices" "/sys/fs/cgroup/freezer" "/sys/fs/cgroup/blkio" "/sys/fs/cgroup/perf_event" "/sys/fs/cgroup/hugetlb")
result: PASS
test-name: swapon, ENOENT/EPERM
location: /home/mcd/guix/tests/syscalls.scm:63
source:
+ (test-assert
+ "swapon, ENOENT/EPERM"
+ (catch 'system-error
+ (lambda () (swapon "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM ENOENT)))))
actual-value: (1 2)
result: PASS
test-name: swapoff, ENOENT/EINVAL/EPERM
location: /home/mcd/guix/tests/syscalls.scm:71
source:
+ (test-assert
+ "swapoff, ENOENT/EINVAL/EPERM"
+ (catch 'system-error
+ (lambda () (swapoff "/does-not-exist") #f)
+ (lambda args
+ (memv (system-error-errno args)
+ (list EPERM EINVAL ENOENT)))))
actual-value: (1 22 2)
result: PASS
test-name: mkdtemp!
location: /home/mcd/guix/tests/syscalls.scm:79
source:
+ (test-assert
+ "mkdtemp!"
+ (let* ((tmp (or (getenv "TMPDIR") "/tmp"))
+ (dir (mkdtemp!
+ (string-append tmp "/guix-test-XXXXXX"))))
+ (and (file-exists? dir) (begin (rmdir dir) #t))))
actual-value: #t
result: PASS
test-name: statfs, ENOENT
location: /home/mcd/guix/tests/syscalls.scm:87
source:
+ (test-equal
+ "statfs, ENOENT"
+ ENOENT
+ (catch 'system-error
+ (lambda () (statfs "/does-not-exist"))
+ (compose system-error-errno list)))
expected-value: 2
actual-value: 2
result: PASS
test-name: statfs
location: /home/mcd/guix/tests/syscalls.scm:94
source:
+ (test-assert
+ "statfs"
+ (let ((fs (statfs "/")))
+ (and (file-system? fs)
+ (> (file-system-block-size fs) 0)
+ (>= (file-system-blocks-available fs) 0)
+ (>= (file-system-blocks-free fs)
+ (file-system-blocks-available fs)))))
actual-value: #t
result: PASS
test-name: clone
location: /home/mcd/guix/tests/syscalls.scm:111
source:
+ (test-assert
+ "clone"
+ (match (clone (logior CLONE_NEWUSER SIGCHLD))
+ (0 (primitive-exit 42))
+ (pid (and (not (equal?
+ (readlink (user-namespace pid))
+ (readlink (user-namespace (getpid)))))
+ (match (waitpid pid)
+ ((_ . status) (= 42 (status:exit-val status))))))))
actual-value: #t
result: PASS
test-name: setns
location: /home/mcd/guix/tests/syscalls.scm:124
source:
+ (test-assert
+ "setns"
+ (match (clone (logior CLONE_NEWUSER SIGCHLD))
+ (0 (primitive-exit 0))
+ (clone-pid
+ (match (pipe)
+ ((in . out)
+ (match (primitive-fork)
+ (0
+ (close in)
+ (call-with-input-file
+ (user-namespace clone-pid)
+ (lambda (port) (setns (port->fdes port) 0)))
+ (write 'done out)
+ (close out)
+ (primitive-exit 0))
+ (fork-pid
+ (close out)
+ (read in)
+ (let ((result
+ (and (equal?
+ (readlink
+ (user-namespace clone-pid))
+ (readlink
+ (user-namespace fork-pid))))))
+ (waitpid clone-pid)
+ (waitpid fork-pid)
+ result))))))))
actual-value: #t
result: PASS
test-name: pivot-root
location: /home/mcd/guix/tests/syscalls.scm:156
source:
+ (test-equal
+ "pivot-root"
+ #t
+ (match (pipe)
+ ((in . out)
+ (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD))
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close in)
+ (call-with-temporary-directory
+ (lambda (root)
+ (let ((put-old (string-append root "/real-root")))
+ (mount "none" root "tmpfs")
+ (mkdir put-old)
+ (call-with-output-file
+ (string-append root "/test")
+ (lambda (port) (display "testing\n" port)))
+ (pivot-root root put-old)
+ (write (file-exists? "/test") out)
+ (close out)))))
+ (lambda () (primitive-exit 0))))
+ (pid (close out)
+ (let ((result (read in)))
+ (close in)
+ (and (zero? (match (waitpid pid)
+ ((_ . status)
+ (status:exit-val status))))
+ (eq? #t result))))))))
result: SKIP
test-name: scandir*, ENOENT
location: /home/mcd/guix/tests/syscalls.scm:189
source:
+ (test-equal
+ "scandir*, ENOENT"
+ ENOENT
+ (catch 'system-error
+ (lambda () (scandir* "/does/not/exist"))
+ (lambda args (system-error-errno args))))
expected-value: 2
actual-value: 2
result: PASS
test-name: scandir*, ASCII file names
location: /home/mcd/guix/tests/syscalls.scm:197
source:
+ (test-equal
+ "scandir*, ASCII file names"
+ (scandir
+ (dirname
+ (search-path %load-path "guix/base32.scm"))
+ (const #t)
+ string<?)
+ (match (scandir*
+ (dirname
+ (search-path %load-path "guix/base32.scm")))
+ (((names . properties) ...) names)))
expected-value: ("." ".." "base16.go" "base16.scm" "base32.go" "base32.scm" "base64.go" "base64.scm" "build" "build-system" "build-system.go" "build-system.scm" "cache.go" "cache.scm" "combinators.go" "combinators.scm" "config.go" "config.scm" "config.scm.in" "cpio.go" "cpio.scm" "cve.go" "cve.scm" "cvs-download.go" "cvs-download.scm" "derivations.go" "derivations.scm" "discovery.go" "discovery.scm" "docker.go" "docker.scm" "download.go" "download.scm" "elf.go" "elf.scm" "ftp-client.go" "ftp-client.scm" "gcrypt.go" "gcrypt.scm" "gexp.go" "gexp.scm" "git-download.go" "git-download.scm" "git.go" "git.scm" "gnu-maintenance.go" "gnu-maintenance.scm" "gnupg.go" "gnupg.scm" "grafts.go" "grafts.scm" "graph.go" "graph.scm" "hash.go" "hash.scm" "hg-download.go" "hg-download.scm" "http-client.go" "http-client.scm" "i18n.go" "i18n.scm" "import" "licenses.go" "licenses.scm" "memoization.go" "memoization.scm" "modules.go" "modules.scm" "monad-repl.go" "monad-repl.scm" "monads.go" "monads.scm" "nar.go" "nar.scm" "packages.go" "packages.scm" "pk-crypto.go" "pk-crypto.scm" "pki.go" "pki.scm" "profiles.go" "profiles.scm" "progress.go" "progress.scm" "records.go" "records.scm" "scripts" "scripts.go" "scripts.scm" "search-paths.go" "search-paths.scm" "serialization.go" "serialization.scm" "sets.go" "sets.scm" "ssh.go" "ssh.scm" "store" "store.go" "store.scm" "svn-download.go" "svn-download.scm" "tests" "tests.go" "tests.scm" "ui.go" "ui.scm" "upstream.go" "upstream.scm" "utils.go" "utils.scm" "workers.go" "workers.scm" "zlib.go" "zlib.scm")
actual-value: ("." ".." "base16.go" "base16.scm" "base32.go" "base32.scm" "base64.go" "base64.scm" "build" "build-system" "build-system.go" "build-system.scm" "cache.go" "cache.scm" "combinators.go" "combinators.scm" "config.go" "config.scm" "config.scm.in" "cpio.go" "cpio.scm" "cve.go" "cve.scm" "cvs-download.go" "cvs-download.scm" "derivations.go" "derivations.scm" "discovery.go" "discovery.scm" "docker.go" "docker.scm" "download.go" "download.scm" "elf.go" "elf.scm" "ftp-client.go" "ftp-client.scm" "gcrypt.go" "gcrypt.scm" "gexp.go" "gexp.scm" "git-download.go" "git-download.scm" "git.go" "git.scm" "gnu-maintenance.go" "gnu-maintenance.scm" "gnupg.go" "gnupg.scm" "grafts.go" "grafts.scm" "graph.go" "graph.scm" "hash.go" "hash.scm" "hg-download.go" "hg-download.scm" "http-client.go" "http-client.scm" "i18n.go" "i18n.scm" "import" "licenses.go" "licenses.scm" "memoization.go" "memoization.scm" "modules.go" "modules.scm" "monad-repl.go" "monad-repl.scm" "monads.go" "monads.scm" "nar.go" "nar.scm" "packages.go" "packages.scm" "pk-crypto.go" "pk-crypto.scm" "pki.go" "pki.scm" "profiles.go" "profiles.scm" "progress.go" "progress.scm" "records.go" "records.scm" "scripts" "scripts.go" "scripts.scm" "search-paths.go" "search-paths.scm" "serialization.go" "serialization.scm" "sets.go" "sets.scm" "ssh.go" "ssh.scm" "store" "store.go" "store.scm" "svn-download.go" "svn-download.scm" "tests" "tests.go" "tests.scm" "ui.go" "ui.scm" "upstream.go" "upstream.scm" "utils.go" "utils.scm" "workers.go" "workers.scm" "zlib.go" "zlib.scm")
result: PASS
test-name: scandir*, UTF-8 file names
location: /home/mcd/guix/tests/syscalls.scm:204
source:
+ (test-equal
+ "scandir*, UTF-8 file names"
+ '("." ".." "α" "λ")
+ (call-with-temporary-directory
+ (lambda (directory)
+ (let ((creat (pointer->procedure
+ int
+ (dynamic-func "creat" (dynamic-link))
+ (list '* int))))
+ (creat (string->pointer
+ (string-append directory "/α")
+ "UTF-8")
+ 420)
+ (creat (string->pointer
+ (string-append directory "/λ")
+ "UTF-8")
+ 420)
+ (let ((locale (setlocale LC_ALL)))
+ (dynamic-wind
+ (lambda () (setlocale LC_ALL "C"))
+ (lambda ()
+ (match (scandir* directory)
+ (((names . properties) ...) names)))
+ (lambda () (setlocale LC_ALL locale))))))))
expected-value: ("." ".." "α" "λ")
actual-value: ("." ".." "α" "λ")
result: PASS
test-name: scandir*, properties
location: /home/mcd/guix/tests/syscalls.scm:231
source:
+ (test-assert
+ "scandir*, properties"
+ (let ((directory
+ (dirname
+ (search-path %load-path "guix/base32.scm"))))
+ (every (lambda (entry name)
+ (match entry
+ ((name2 . properties)
+ (and (string=? name2 name)
+ (let* ((full (string-append directory "/" name))
+ (stat (lstat full))
+ (inode (assoc-ref properties 'inode))
+ (type (assoc-ref properties 'type)))
+ (and (= inode (stat:ino stat))
+ (or (eq? type 'unknown)
+ (eq? type (stat:type stat)))))))))
+ (scandir* directory)
+ (scandir directory (const #t) string<?))))
actual-value: #t
result: PASS
test-name: fcntl-flock wait
location: /home/mcd/guix/tests/syscalls.scm:248
source:
+ (test-equal
+ "fcntl-flock wait"
+ 42
+ (let ((file (open-file temp-file "w0b")))
+ (fcntl-flock file 'write-lock)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (let ((file (open-file temp-file "r0b")))
+ (fcntl-flock file 'read-lock)
+ (primitive-exit (read file)))
+ (primitive-exit 1))
+ (lambda () (primitive-exit 2))))
+ (pid (display "hello, world!" file)
+ (force-output file)
+ (sleep 1)
+ (seek file 0 SEEK_SET)
+ (truncate-file file 0)
+ (write 42 file)
+ (force-output file)
+ (fcntl-flock file 'unlock)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (close-port file)
+ result)))))))
expected-value: 42
actual-value: 42
result: PASS
test-name: fcntl-flock non-blocking
location: /home/mcd/guix/tests/syscalls.scm:287
source:
+ (test-equal
+ "fcntl-flock non-blocking"
+ EAGAIN
+ (match (pipe)
+ ((input . output)
+ (match (primitive-fork)
+ (0
+ (dynamic-wind
+ (const #t)
+ (lambda ()
+ (close-port output)
+ (read-char input)
+ (let ((file (open-file temp-file "w0")))
+ (catch 'flock-error
+ (lambda ()
+ (fcntl-flock file 'write-lock #:wait? #f))
+ (lambda (key errno)
+ (primitive-exit (pk 'errno errno)))))
+ (primitive-exit -1))
+ (lambda () (primitive-exit -2))))
+ (pid (close-port input)
+ (let ((file (open-file temp-file "w0")))
+ (fcntl-flock file 'write-lock)
+ (write 'green-light output)
+ (force-output output)
+ (match (waitpid pid)
+ ((_ . status)
+ (let ((result (status:exit-val status)))
+ (fcntl-flock file 'unlock)
+ (close-port file)
+ result)))))))))
;;; (errno 11)
expected-value: 11
actual-value: 11
result: PASS
test-name: set-thread-name
location: /home/mcd/guix/tests/syscalls.scm:329
source:
+ (test-equal
+ "set-thread-name"
+ "Syscall Test"
+ (let ((name (thread-name)))
+ (set-thread-name "Syscall Test")
+ (let ((new-name (thread-name)))
+ (set-thread-name name)
+ new-name)))
expected-value: "Syscall Test"
actual-value: "Syscall Test"
result: PASS
test-name: all-network-interface-names
location: /home/mcd/guix/tests/syscalls.scm:337
source:
+ (test-assert
+ "all-network-interface-names"
+ (match (all-network-interface-names)
+ (((? string? names) ..1) (member "lo" names))))
actual-value: ("lo")
result: PASS
test-name: network-interface-names
location: /home/mcd/guix/tests/syscalls.scm:342
source:
+ (test-assert
+ "network-interface-names"
+ (match (network-interface-names)
+ (((? string? names) ..1)
+ (lset<=
+ string=?
+ names
+ (all-network-interface-names)))))
actual-value: #t
result: PASS
test-name: network-interface-flags
location: /home/mcd/guix/tests/syscalls.scm:347
source:
+ (test-assert
+ "network-interface-flags"
+ (let* ((sock (socket AF_INET SOCK_STREAM 0))
+ (flags (network-interface-flags sock "lo")))
+ (close-port sock)
+ (and (not (zero? (logand flags IFF_LOOPBACK)))
+ (not (zero? (logand flags IFF_UP))))))
actual-value: #t
result: PASS
test-name: loopback-network-interface?
location: /home/mcd/guix/tests/syscalls.scm:354
source:
+ (test-equal
+ "loopback-network-interface?"
+ ENODEV
+ (and (loopback-network-interface? "lo")
+ (catch 'system-error
+ (lambda ()
+ (loopback-network-interface? "nonexistent")
+ #f)
+ (lambda args (system-error-errno args)))))
expected-value: 19
actual-value: 19
result: PASS
test-name: loopback-network-interface-running?
location: /home/mcd/guix/tests/syscalls.scm:364
source:
+ (test-equal
+ "loopback-network-interface-running?"
+ ENODEV
+ (and (network-interface-running? "lo")
+ (catch 'system-error
+ (lambda ()
+ (network-interface-running? "nonexistent")
+ #f)
+ (lambda args (system-error-errno args)))))
expected-value: 19
actual-value: 19
result: PASS
test-name: set-network-interface-flags
location: /home/mcd/guix/tests/syscalls.scm:375
source:
+ (test-assert
+ "set-network-interface-flags"
+ (let ((sock (socket AF_INET SOCK_STREAM 0)))
+ (catch 'system-error
+ (lambda ()
+ (set-network-interface-flags sock "lo" IFF_UP))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: network-interface-address lo
location: /home/mcd/guix/tests/syscalls.scm:385
source:
+ (test-equal
+ "network-interface-address lo"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.0.0.1")
+ 0)
+ (let* ((sock (socket AF_INET SOCK_STREAM 0))
+ (addr (network-interface-address sock "lo")))
+ (close-port sock)
+ addr))
expected-value: #(2 2130706433 0)
actual-value: #(2 2130706433 0)
result: PASS
test-name: set-network-interface-address
location: /home/mcd/guix/tests/syscalls.scm:393
source:
+ (test-assert
+ "set-network-interface-address"
+ (let ((sock (socket AF_INET SOCK_STREAM 0)))
+ (catch 'system-error
+ (lambda ()
+ (set-network-interface-address
+ sock
+ "nonexistent"
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.12.14.15")
+ 0)))
+ (lambda args
+ (close-port sock)
+ (memv (system-error-errno args)
+ (list EPERM EACCES))))))
actual-value: (1 13)
result: PASS
test-name: network-interface-netmask lo
location: /home/mcd/guix/tests/syscalls.scm:407
source:
+ (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))
expected-value: #(2 4278190080 0)
actual-value: #(2 4278190080 0)
result: PASS
test-name: set-network-interface-netmask
location: /home/mcd/guix/tests/syscalls.scm:415
source:
+ (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))))))
actual-value: (1 13)
result: PASS
test-name: network-interfaces returns one or more interfaces
location: /home/mcd/guix/tests/syscalls.scm:428
source:
+ (test-equal
+ "network-interfaces returns one or more interfaces"
+ '(#t #t #t)
+ (match (network-interfaces)
+ ((interfaces ..1)
+ (list (every interface? interfaces)
+ (every string? (map interface-name interfaces))
+ (every (lambda (sockaddr)
+ (or (vector? sockaddr) (not sockaddr)))
+ (map interface-address interfaces))))))
expected-value: (#t #t #t)
actual-value: (#t #t #t)
result: PASS
test-name: network-interfaces returns "lo"
location: /home/mcd/guix/tests/syscalls.scm:440
source:
+ (test-equal
+ "network-interfaces returns \"lo\""
+ (list #t
+ (make-socket-address
+ AF_INET
+ (inet-pton AF_INET "127.0.0.1")
+ 0))
+ (match (filter
+ (lambda (interface)
+ (string=? "lo" (interface-name interface)))
+ (network-interfaces))
+ ((loopbacks ..1)
+ (list (every (lambda (lo)
+ (not (zero? (logand
+ IFF_LOOPBACK
+ (interface-flags lo)))))
+ loopbacks)
+ (match (find (lambda (lo)
+ (= AF_INET
+ (sockaddr:fam (interface-address lo))))
+ loopbacks)
+ (#f #f)
+ (lo (interface-address lo)))))))
expected-value: (#t #(2 2130706433 0))
actual-value: (#t #(2 2130706433 0))
result: PASS
test-name: add-network-route/gateway
location: /home/mcd/guix/tests/syscalls.scm:456
source:
+ (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))))))
actual-value: (1 13)
result: PASS
test-name: delete-network-route
location: /home/mcd/guix/tests/syscalls.scm:469
source:
+ (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))))))
actual-value: (1 13)
result: PASS
test-name: tcgetattr ENOTTY
location: /home/mcd/guix/tests/syscalls.scm:479
source:
+ (test-equal
+ "tcgetattr ENOTTY"
+ ENOTTY
+ (catch 'system-error
+ (lambda ()
+ (call-with-input-file
+ "/dev/null"
+ (lambda (port) (tcgetattr (fileno port)))))
+ (compose system-error-errno list)))
expected-value: 25
actual-value: 25
result: PASS
test-name: tcgetattr
location: /home/mcd/guix/tests/syscalls.scm:493
source:
+ (test-assert
+ "tcgetattr"
+ (let ((termios (tcgetattr 0)))
+ (and (termios? termios)
+ (> (termios-input-speed termios) 0)
+ (> (termios-output-speed termios) 0))))
actual-value: #t
result: PASS
test-name: tcsetattr
location: /home/mcd/guix/tests/syscalls.scm:499
source:
+ (test-assert
+ "tcsetattr"
+ (let ((first (tcgetattr 0)))
+ (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+ (equal? first (tcgetattr 0))))
actual-value: #t
result: PASS
test-name: terminal-window-size ENOTTY
location: /home/mcd/guix/tests/syscalls.scm:504
source:
+ (test-assert
+ "terminal-window-size ENOTTY"
+ (call-with-input-file
+ "/dev/null"
+ (lambda (port)
+ (catch 'system-error
+ (lambda () (terminal-window-size port))
+ (lambda args
+ (memv (system-error-errno args)
+ (list ENOTTY EINVAL)))))))
actual-value: (25 22)
result: PASS
test-name: terminal-columns
location: /home/mcd/guix/tests/syscalls.scm:515
source:
+ (test-assert
+ "terminal-columns"
+ (> (terminal-columns) 0))
actual-value: #t
result: PASS
test-name: terminal-columns non-file port
location: /home/mcd/guix/tests/syscalls.scm:518
source:
+ (test-assert
+ "terminal-columns non-file port"
+ (> (terminal-columns
+ (open-input-string
+ "Join us now, share the software!"))
+ 0))
actual-value: #t
result: PASS
test-name: utmpx-entries
location: /home/mcd/guix/tests/syscalls.scm:522
source:
+ (test-assert
+ "utmpx-entries"
+ (match (utmpx-entries)
+ (((? utmpx? entries) ...)
+ (every (lambda (entry)
+ (match (utmpx-user entry)
+ ((? string?)
+ (or (eqv? (login-type BOOT_TIME)
+ (utmpx-login-type entry))
+ (> (utmpx-pid entry) 0)))
+ (#f #t)))
+ entries))))
actual-value: #t
result: PASS
test-name: read-utmpx, EOF
location: /home/mcd/guix/tests/syscalls.scm:534
source:
+ (test-assert
+ "read-utmpx, EOF"
+ (eof-object? (read-utmpx (%make-void-port "r"))))
actual-value: #t
result: PASS
test-name: read-utmpx
location: /home/mcd/guix/tests/syscalls.scm:539
source:
+ (test-assert
+ "read-utmpx"
+ (let ((result
+ (call-with-input-file
+ "/var/run/utmpx"
+ read-utmpx)))
+ (or (utmpx? result) (eof-object? result))))
actual-value: #t
result: PASS
SKIP: tests/gremlin
===================
test-name: elf-dynamic-info-needed, executable
location: /home/mcd/guix/tests/gremlin.scm:44
source:
+ (test-assert
+ "elf-dynamic-info-needed, executable"
+ (let* ((elf (call-with-input-file %guile-executable read-elf))
+ (dyninfo (elf-dynamic-info elf)))
+ (or (not dyninfo)
+ (lset<=
+ string=?
+ (list (string-append "libguile-" (effective-version))
+ "libgc"
+ "libunistring"
+ "libffi")
+ (map (lambda (lib)
+ (string-take lib (string-contains lib ".so")))
+ (elf-dynamic-info-needed dyninfo))))))
result: SKIP
test-name: expand-origin
location: /home/mcd/guix/tests/gremlin.scm:55
source:
+ (test-equal
+ "expand-origin"
+ '("OOO/../lib"
+ "OOO"
+ "../OOO/bar/OOO/baz"
+ "ORIGIN/foo")
+ (map (cut expand-origin <> "OOO")
+ '("$ORIGIN/../lib"
+ "${ORIGIN}"
+ "../${ORIGIN}/bar/$ORIGIN/baz"
+ "ORIGIN/foo")))
expected-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
actual-value: ("OOO/../lib" "OOO" "../OOO/bar/OOO/baz" "ORIGIN/foo")
result: PASS
SKIP: tests/pypi
================
test-name: guix-package->pypi-name, old URL style
location: /home/mcd/guix/tests/pypi.scm:78
source:
+ (test-equal
+ "guix-package->pypi-name, old URL style"
+ "psutil"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri "https://pypi.io/packages/source/p/psutil/psutil-4.3.0.tar.gz"))))))
expected-value: "psutil"
actual-value: "psutil"
result: PASS
test-name: guix-package->pypi-name, new URL style
location: /home/mcd/guix/tests/pypi.scm:86
source:
+ (test-equal
+ "guix-package->pypi-name, new URL style"
+ "certbot"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri "https://pypi.python.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz"))))))
expected-value: "certbot"
actual-value: "certbot"
result: PASS
test-name: guix-package->pypi-name, several URLs
location: /home/mcd/guix/tests/pypi.scm:94
source:
+ (test-equal
+ "guix-package->pypi-name, several URLs"
+ "cram"
+ (guix-package->pypi-name
+ (dummy-package
+ "foo"
+ (source
+ (dummy-origin
+ (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz"
+ (pypi-uri "cram" "0.7"))))))))
expected-value: "cram"
actual-value: "cram"
result: PASS
test-name: pypi->guix-package
location: /home/mcd/guix/tests/pypi.scm:103
source:
+ (test-assert
+ "pypi->guix-package"
+ (mock ((guix import utils)
+ url-fetch
+ (lambda (url file-name)
+ (match url
+ ("https://example.com/foo-1.0.0.tar.gz"
+ (begin
+ (mkdir "foo-1.0.0")
+ (with-output-to-file
+ "foo-1.0.0/requirements.txt"
+ (lambda () (display test-requirements)))
+ (system* "tar" "czvf" file-name "foo-1.0.0/")
+ (delete-file-recursively "foo-1.0.0")
+ (set! test-source-hash
+ (call-with-input-file file-name port-sha256))))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (mock ((guix http-client)
+ http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://pypi.python.org/pypi/foo/json"
+ (values
+ (open-input-string test-json)
+ (string-length test-json)))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (match (pypi->guix-package "foo")
+ (('package
+ ('name "python-foo")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('pypi-uri "foo" 'version))
+ ('sha256 ('base32 (? string? hash)))))
+ ('build-system 'python-build-system)
+ ('propagated-inputs
+ ('quasiquote
+ (("python-bar" ('unquote 'python-bar))
+ ("python-baz" ('unquote 'python-baz)))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license 'license:lgpl2.0))
+ (string=?
+ (bytevector->nix-base32-string test-source-hash)
+ hash))
+ (x (pk 'fail x #f))))))
foo-1.0.0/
foo-1.0.0/requirements.txt
actual-value: #t
result: PASS
test-name: pypi->guix-package, wheels
location: /home/mcd/guix/tests/pypi.scm:154
source:
+ (test-assert
+ "pypi->guix-package, wheels"
+ (mock ((guix import utils)
+ url-fetch
+ (lambda (url file-name)
+ (match url
+ ("https://example.com/foo-1.0.0.tar.gz"
+ (begin
+ (mkdir "foo-1.0.0")
+ (with-output-to-file
+ "foo-1.0.0/requirements.txt"
+ (lambda () (display test-requirements)))
+ (system* "tar" "czvf" file-name "foo-1.0.0/")
+ (delete-file-recursively "foo-1.0.0")
+ (set! test-source-hash
+ (call-with-input-file file-name port-sha256))))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ (begin
+ (mkdir "foo-1.0.0.dist-info")
+ (with-output-to-file
+ "foo-1.0.0.dist-info/metadata.json"
+ (lambda () (display test-metadata)))
+ (let ((zip-file (string-append file-name ".zip")))
+ (system*
+ "zip"
+ zip-file
+ "foo-1.0.0.dist-info/metadata.json")
+ (rename-file zip-file file-name))
+ (delete-file-recursively "foo-1.0.0.dist-info")))
+ (_ (error "Unexpected URL: " url)))))
+ (mock ((guix http-client)
+ http-fetch
+ (lambda (url . rest)
+ (match url
+ ("https://pypi.python.org/pypi/foo/json"
+ (values
+ (open-input-string test-json)
+ (string-length test-json)))
+ ("https://example.com/foo-1.0.0-py2.py3-none-any.whl"
+ #f)
+ (_ (error "Unexpected URL: " url)))))
+ (match (pypi->guix-package "foo")
+ (('package
+ ('name "python-foo")
+ ('version "1.0.0")
+ ('source
+ ('origin
+ ('method 'url-fetch)
+ ('uri ('pypi-uri "foo" 'version))
+ ('sha256 ('base32 (? string? hash)))))
+ ('build-system 'python-build-system)
+ ('propagated-inputs
+ ('quasiquote
+ (("python-bar" ('unquote 'python-bar))
+ ("python-baz" ('unquote 'python-baz)))))
+ ('home-page "http://example.com")
+ ('synopsis "summary")
+ ('description "summary")
+ ('license 'license:lgpl2.0))
+ (string=?
+ (bytevector->nix-base32-string test-source-hash)
+ hash))
+ (x (pk 'fail x #f))))))
result: SKIP
random seed for tests: 1511105559
FAIL: tests/guix-system
=======================
+ set -e
+ guix system --version
guix system (GNU Guix) UNKNOWN
Copyright (C) 2017 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ tmpfile=t-guix-system-11155
+ errorfile=t-guix-system-error-11155
+ tmpdir=/tmp/t-guix-system-11155
+ mkdir /tmp/t-guix-system-11155
+ trap 'rm -f "$tmpfile" "$errorfile" "$tmpdir"/*; rmdir "$tmpdir"' EXIT
+ cat
+ guix system vm t-guix-system-11155
+ grep 't-guix-system-11155:2:3:.*missing.* initializers' t-guix-system-error-11155
t-guix-system-11155:2:3: error: missing field initializers (bootloader host-name file-systems timezone)
+ cat
+ guix system vm t-guix-system-11155
+ grep 't-guix-system-11155:4:1: missing closing paren' t-guix-system-error-11155
t-guix-system-11155:4:1: missing closing parenthesis
+ cat
+ guix system build t-guix-system-11155 -n
+ grep 't-guix-system-11155:3:2: .*module .*openssh.*not found' t-guix-system-error-11155
t-guix-system-11155:3:2: error: module (gnu services openssh) not found
+ grep 'Try.*use-service-modules ssh' t-guix-system-error-11155
hint: Try adding `(use-service-modules ssh)'.
+ cat
+ guix system build t-guix-system-11155 -n
+ grep 't-guix-system-11155:3:2: .*module .*qemu.*not found' t-guix-system-error-11155
+ rm -f t-guix-system-11155 t-guix-system-error-11155 '/tmp/t-guix-system-11155/*'
+ rmdir /tmp/t-guix-system-11155
./test-env: line 1: 11154 Terminated "/home/mcd/guix/pre-inst-env" "/home/mcd/guix/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
FAIL tests/guix-system.sh (exit status: 1)
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#29356: 1 test-suite test fails
2017-11-19 13:37 bug#29356: 1 test-suite test fails Martin Castillo
@ 2017-11-20 9:23 ` Ludovic Courtès
2017-11-20 19:50 ` Martin Castillo
0 siblings, 1 reply; 4+ messages in thread
From: Ludovic Courtès @ 2017-11-20 9:23 UTC (permalink / raw)
To: Martin Castillo; +Cc: 29356
Hi Martin,
Martin Castillo <castilma@uni-bremen.de> skribis:
> + guix system build t-guix-system-11155 -n
> + grep 't-guix-system-11155:3:2: .*module .*qemu.*not found' t-guix-system-error-11155
> + rm -f t-guix-system-11155 t-guix-system-error-11155 '/tmp/t-guix-system-11155/*'
> + rmdir /tmp/t-guix-system-11155
> ./test-env: line 1: 11154 Terminated "/home/mcd/guix/pre-inst-env" "/home/mcd/guix/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
> FAIL tests/guix-system.sh (exit status: 1)
The failing test here is this:
--8<---------------cut here---------------start------------->8---
cat > "$tmpfile" <<EOF
;; Line 1.
(use-modules (gnu))
(use-package-modules qemu)
EOF
if guix system build "$tmpfile" -n 2> "$errorfile"
then false
else
grep "$tmpfile:3:2: .*module .*qemu.*not found" "$errorfile"
grep "Try.*use-package-modules virtualization" "$errorfile"
fi
--8<---------------cut here---------------end--------------->8---
Could it be that there are stale gnu/packages/qemu.{scm,go} files in the
working tree?
Thanks in advance,
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#29356: 1 test-suite test fails
2017-11-20 9:23 ` Ludovic Courtès
@ 2017-11-20 19:50 ` Martin Castillo
2017-11-20 21:15 ` Ludovic Courtès
0 siblings, 1 reply; 4+ messages in thread
From: Martin Castillo @ 2017-11-20 19:50 UTC (permalink / raw)
To: Ludovic Courtès
Hi Ludo’,
On 20.11.2017 10:23, Ludovic Courtès wrote:
> Could it be that there are stale gnu/packages/qemu.{scm,go} files in the
> working tree?
>
> Thanks in advance,
> Ludo’.
>
yes, there was qemu.go. It works now.
What does the apostrophe at the end of your name mean?
Martin.
^ permalink raw reply [flat|nested] 4+ messages in thread
* bug#29356: 1 test-suite test fails
2017-11-20 19:50 ` Martin Castillo
@ 2017-11-20 21:15 ` Ludovic Courtès
0 siblings, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2017-11-20 21:15 UTC (permalink / raw)
To: Martin Castillo; +Cc: 29356
Hi,
Martin Castillo <castilma@uni-bremen.de> skribis:
> On 20.11.2017 10:23, Ludovic Courtès wrote:
>
>> Could it be that there are stale gnu/packages/qemu.{scm,go} files in the
>> working tree?
>>
>> Thanks in advance,
>> Ludo’.
>>
>
> yes, there was qemu.go. It works now.
Great, thanks for testing.
> What does the apostrophe at the end of your name mean?
Not much, that it’s an abbreviation of my name. :-)
Ludo’.
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2017-11-20 21:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-19 13:37 bug#29356: 1 test-suite test fails Martin Castillo
2017-11-20 9:23 ` Ludovic Courtès
2017-11-20 19:50 ` Martin Castillo
2017-11-20 21:15 ` Ludovic Courtès
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/guix.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.