unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Alex Vong <alexvong1995@gmail.com>
To: "Thompson, David" <dthompson2@worcester.edu>, 21410@debbugs.gnu.org
Subject: bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian
Date: Fri, 4 Sep 2015 23:02:57 +0800	[thread overview]
Message-ID: <20150904230257.5425eb8a@debian> (raw)
In-Reply-To: <20150904144440.2f14182d@debian>

[-- Attachment #1: Type: text/plain, Size: 3175 bytes --]

Hi Dave,

Please see the reply below.

2015-09-04 22:12 GMT+08:00, Thompson, David <dthompson2@worcester.edu>:
> Hello Alex,
> 
> On Fri, Sep 4, 2015 at 2:44 AM, Alex Vong <alexvong1995@gmail.com> wrote:
>> Hi everyone,
>>
>> I tried to compile Guix on Debian Sid,
>> the compilation succeeded,
>> but the 2 of the tests in the Testsuit failed.
>>
>> The following is what commands I have run,
>> all commands are run as non-root:
>>
>> $ git clone git://git.savannah.gnu.org/guix.git
>> $ cd guix
>> $ ./bootstrap
>> $ ./configure
>> $ make -j4
>> $ make -j4 check
>>
>> The Testsuite summary (test-suite.log) is inlined below:
>>
>> ======================================
>>    GNU Guix 0.8.3: ./test-suite.log
>> ======================================
>>
>> # TOTAL: 47
>> # PASS:  45
>> # SKIP:  0
>> # XFAIL: 0
>> # FAIL:  2
>> # XPASS: 0
>> # ERROR: 0
>>
>> .. contents:: :depth: 2
>>
>> FAIL: tests/syscalls
>> ====================
>>
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;;       newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> ERROR: In procedure primitive-load:
>> ERROR: In procedure scm_i_lreadparen: tests/syscalls.scm:128:14: end of
>> file
>> %%%% Starting test syscalls  (Writing full log to "syscalls.log")
>> tests/syscalls.scm:85: FAIL clone
>> tests/syscalls.scm:98: FAIL setns
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;;       newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> %%%% Starting test syscalls  (Writing full log to "syscalls.log")
>> tests/syscalls.scm:85: FAIL clone
>> tests/syscalls.scm:98: FAIL setns
>> tests/syscalls.scm:127: FAIL pivot-root
>> # of expected passes      15
>> # of unexpected failures  3
>>
>> FAIL: tests/containers
>> ======================
>>
>> %%%% Starting test containers  (Writing full log to "containers.log")
>> tests/containers.scm:37: FAIL call-with-container, user namespace
>> tests/containers.scm:45: FAIL call-with-container, uts namespace
>> tests/containers.scm:55: FAIL call-with-container, pid namespace
>> tests/containers.scm:70: FAIL call-with-container, mnt namespace
>> tests/containers.scm:77: FAIL call-with-container, all namespaces
>> tests/containers.scm:83: FAIL container-excursion
>> # of unexpected failures  6
>> ;;; note: source file ./srfi/srfi-64.scm
>> ;;;       newer than compiled
>> /usr/lib/x86_64-linux-gnu/guile/2.0/ccache/srfi/srfi-64.go
>> FAIL tests/containers.scm (exit status: 1)
> 
> Could you attach the containers.log and syscalls.log files so I could
> see some more detail?
> 
Sure, they are in the attahment.

> Also,  what version of Linux and glibc are you using?
> 
kernel version:

$ uname -a
Linux debian 4.1.0-2-amd64 #1 SMP Debian 4.1.6-1 (2015-08-23) x86_64 GNU/Linux

libc version:

$ LC_ALL=C ldd --version

ldd (Debian GLIBC 2.19-19) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.

> Thanks!
> 
> - Dave
>

Thanks for the quick reply as well!

Cheers,
Alex

[-- Attachment #2: containers.log --]
[-- Type: text/x-log, Size: 3788 bytes --]

%%%% Starting test containers
Group begin: containers
Test begin:
  test-name: "call-with-container, user namespace"
  source-file: "tests/containers.scm"
  source-line: 37
  source-form: (test-assert "call-with-container, user namespace" (zero? (call-with-container (quote ()) (lambda () (assert-exit (and (zero? (getuid)) (zero? (getgid))))) #:namespaces (quote (user)))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
  test-name: "call-with-container, uts namespace"
  source-file: "tests/containers.scm"
  source-line: 45
  source-form: (test-assert "call-with-container, uts namespace" (zero? (call-with-container (quote ()) (lambda () (sethostname "test-container") (primitive-exit 0)) #:namespaces (quote (user uts)))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
  test-name: "call-with-container, pid namespace"
  source-file: "tests/containers.scm"
  source-line: 55
  source-form: (test-assert "call-with-container, pid namespace" (zero? (call-with-container (quote ()) (lambda () (match (primitive-fork) (0 (assert-exit (= 2 (getpid)))) (pid (primitive-exit (match (waitpid pid) ((_ . status) (status:exit-val status))))))) #:namespaces (quote (user pid)))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
  test-name: "call-with-container, mnt namespace"
  source-file: "tests/containers.scm"
  source-line: 70
  source-form: (test-assert "call-with-container, mnt namespace" (zero? (call-with-container (quote (("none" device "/testing" "tmpfs" () #f #f))) (lambda () (assert-exit (file-exists? "/testing"))) #:namespaces (quote (user mnt)))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
  test-name: "call-with-container, all namespaces"
  source-file: "tests/containers.scm"
  source-line: 77
  source-form: (test-assert "call-with-container, all namespaces" (zero? (call-with-container (quote ()) (lambda () (primitive-exit 0)))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Test begin:
  test-name: "container-excursion"
  source-file: "tests/containers.scm"
  source-line: 83
  source-form: (test-assert "container-excursion" (call-with-temporary-directory (lambda (root) (match (list (pipe) (pipe)) (((start-in . start-out) (end-in . end-out)) (define (container) (close end-out) (close start-in) (write (quote ready) start-out) (close start-out) (read end-in) (close end-in)) (define (namespaces pid) (let ((pid (number->string pid))) (map (lambda (ns) (readlink (string-append "/proc/" pid "/ns/" ns))) (quote ("user" "ipc" "uts" "net" "pid" "mnt"))))) (let* ((pid (run-container root (quote ()) %namespaces 1 container)) (container-namespaces (namespaces pid)) (result (begin (close start-out) (read start-in) (close start-in) (container-excursion pid (lambda () (match (primitive-fork) (0 (assert-exit (equal? container-namespaces (namespaces (getpid))))) (fork-pid (matc
 h (waitpid fork-pid) ((_ . status) (primitive-exit (status:exit-val status))))))))))) (close end-in) (write (quote done) end-out) (close end-out) (waitpid pid) (zero? result)))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/setgroups") (2))
Group end: containers
# of unexpected failures  6

[-- Attachment #3: syscalls.log --]
[-- Type: text/x-log, Size: 11966 bytes --]

%%%% Starting test syscalls
Group begin: syscalls
Test begin:
  test-name: "mount, ENOENT"
  source-file: "tests/syscalls.scm"
  source-line: 33
  source-form: (test-equal "mount, ENOENT" ENOENT (catch (quote system-error) (lambda () (mount "/dev/null" "/does-not-exist" "ext2") #f) (compose system-error-errno list)))
Test end:
  result-kind: pass
  actual-value: 2
  expected-value: 2
Test begin:
  test-name: "umount, ENOENT/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 41
  source-form: (test-assert "umount, ENOENT/EPERM" (catch (quote system-error) (lambda () (umount "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 2)
Test begin:
  test-name: "mount-points"
  source-file: "tests/syscalls.scm"
  source-line: 50
  source-form: (test-assert "mount-points" (any (cute member <> (mount-points)) (quote ("/" "/proc" "/sys" "/dev"))))
Test end:
  result-kind: pass
  actual-value: ("/" "/run/lock" "/sys/fs/pstore" "/run/shm" "/run/rpc_pipefs" "/proc/sys/fs/binfmt_misc" "/sys/fs/cgroup" "/run/cgmanager/fs" "/run/user/116" "/run/user/1000" "/media/alexvong1995/e6466814-8885-4b47-ad1c-a8ad4e3f4552")
Test begin:
  test-name: "swapon, ENOENT/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 56
  source-form: (test-assert "swapon, ENOENT/EPERM" (catch (quote system-error) (lambda () (swapon "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 2)
Test begin:
  test-name: "swapoff, ENOENT/EINVAL/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 64
  source-form: (test-assert "swapoff, ENOENT/EINVAL/EPERM" (catch (quote system-error) (lambda () (swapoff "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM EINVAL ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 22 2)
Test begin:
  test-name: "mkdtemp!"
  source-file: "tests/syscalls.scm"
  source-line: 72
  source-form: (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))))
Test end:
  result-kind: pass
  actual-value: #t
Test begin:
  test-name: "clone"
  source-file: "tests/syscalls.scm"
  source-line: 85
  source-form: (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))))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
Test begin:
  test-name: "setns"
  source-file: "tests/syscalls.scm"
  source-line: 98
  source-form: (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 (quote 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))))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
%%%% Starting test syscalls
Group begin: syscalls
Test begin:
  test-name: "mount, ENOENT"
  source-file: "tests/syscalls.scm"
  source-line: 33
  source-form: (test-equal "mount, ENOENT" ENOENT (catch (quote system-error) (lambda () (mount "/dev/null" "/does-not-exist" "ext2") #f) (compose system-error-errno list)))
Test end:
  result-kind: pass
  actual-value: 2
  expected-value: 2
Test begin:
  test-name: "umount, ENOENT/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 41
  source-form: (test-assert "umount, ENOENT/EPERM" (catch (quote system-error) (lambda () (umount "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 2)
Test begin:
  test-name: "mount-points"
  source-file: "tests/syscalls.scm"
  source-line: 50
  source-form: (test-assert "mount-points" (any (cute member <> (mount-points)) (quote ("/" "/proc" "/sys" "/dev"))))
Test end:
  result-kind: pass
  actual-value: ("/" "/run/lock" "/sys/fs/pstore" "/run/shm" "/run/rpc_pipefs" "/proc/sys/fs/binfmt_misc" "/sys/fs/cgroup" "/run/cgmanager/fs" "/run/user/116" "/run/user/1000" "/media/alexvong1995/e6466814-8885-4b47-ad1c-a8ad4e3f4552")
Test begin:
  test-name: "swapon, ENOENT/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 56
  source-form: (test-assert "swapon, ENOENT/EPERM" (catch (quote system-error) (lambda () (swapon "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 2)
Test begin:
  test-name: "swapoff, ENOENT/EINVAL/EPERM"
  source-file: "tests/syscalls.scm"
  source-line: 64
  source-form: (test-assert "swapoff, ENOENT/EINVAL/EPERM" (catch (quote system-error) (lambda () (swapoff "/does-not-exist") #f) (lambda args (memv (system-error-errno args) (list EPERM EINVAL ENOENT)))))
Test end:
  result-kind: pass
  actual-value: (1 22 2)
Test begin:
  test-name: "mkdtemp!"
  source-file: "tests/syscalls.scm"
  source-line: 72
  source-form: (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))))
Test end:
  result-kind: pass
  actual-value: #t
Test begin:
  test-name: "clone"
  source-file: "tests/syscalls.scm"
  source-line: 85
  source-form: (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))))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "readlink" "~A" ("No such file or directory") (2))
Test begin:
  test-name: "setns"
  source-file: "tests/syscalls.scm"
  source-line: 98
  source-form: (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 (quote 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))))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "open-file" "~A: ~S" ("No such file or directory" "/proc/-1/ns/user") (2))
Test begin:
  test-name: "pivot-root"
  source-file: "tests/syscalls.scm"
  source-line: 127
  source-form: (test-assert "pivot-root" (match (pipe) ((in . out) (match (clone (logior CLONE_NEWUSER CLONE_NEWNS SIGCHLD)) (0 (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)))) (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))))))))
Test end:
  result-kind: fail
  actual-value: #f
  actual-error: (system-error "waitpid" "~A" ("No child processes") (10))
Test begin:
  test-name: "all-network-interface-names"
  source-file: "tests/syscalls.scm"
  source-line: 155
  source-form: (test-assert "all-network-interface-names" (match (all-network-interface-names) (((? string? names) ..1) (member "lo" names))))
Test end:
  result-kind: pass
  actual-value: ("lo")
Test begin:
  test-name: "network-interface-names"
  source-file: "tests/syscalls.scm"
  source-line: 160
  source-form: (test-assert "network-interface-names" (match (network-interface-names) (((? string? names) ..1) (lset<= string=? names (all-network-interface-names)))))
Test end:
  result-kind: pass
  actual-value: #t
Test begin:
  test-name: "network-interface-flags"
  source-file: "tests/syscalls.scm"
  source-line: 165
  source-form: (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))))))
Test end:
  result-kind: pass
  actual-value: #t
Test begin:
  test-name: "loopback-network-interface?"
  source-file: "tests/syscalls.scm"
  source-line: 172
  source-form: (test-equal "loopback-network-interface?" ENODEV (and (loopback-network-interface? "lo") (catch (quote system-error) (lambda () (loopback-network-interface? "nonexistent") #f) (lambda args (system-error-errno args)))))
Test end:
  result-kind: pass
  actual-value: 19
  expected-value: 19
Test begin:
  test-name: "set-network-interface-flags"
  source-file: "tests/syscalls.scm"
  source-line: 183
  source-form: (test-assert "set-network-interface-flags" (let ((sock (socket AF_INET SOCK_STREAM 0))) (catch (quote system-error) (lambda () (set-network-interface-flags sock "lo" IFF_UP)) (lambda args (close-port sock) (memv (system-error-errno args) (list EPERM EACCES))))))
Test end:
  result-kind: pass
  actual-value: (1 13)
Test begin:
  test-name: "network-interface-address lo"
  source-file: "tests/syscalls.scm"
  source-line: 193
  source-form: (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))
Test end:
  result-kind: pass
  actual-value: #(2 2130706433 0)
  expected-value: #(2 2130706433 0)
Test begin:
  test-name: "set-network-interface-address"
  source-file: "tests/syscalls.scm"
  source-line: 201
  source-form: (test-assert "set-network-interface-address" (let ((sock (socket AF_INET SOCK_STREAM 0))) (catch (quote 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))))))
Test end:
  result-kind: pass
  actual-value: (1 13)
Test begin:
  test-name: "network-interfaces returns one or more interfaces"
  source-file: "tests/syscalls.scm"
  source-line: 215
  source-form: (test-equal "network-interfaces returns one or more interfaces" (quote (#t #t #t)) (match (network-interfaces) ((interfaces ..1) (list (every interface? interfaces) (every string? (map interface-name interfaces)) (every vector? (map interface-address interfaces))))))
Test end:
  result-kind: pass
  actual-value: (#t #t #t)
  expected-value: (#t #t #t)
Test begin:
  test-name: "network-interfaces returns \"lo\""
  source-file: "tests/syscalls.scm"
  source-line: 223
  source-form: (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)))))))
Test end:
  result-kind: pass
  actual-value: (#t #(2 2130706433 0))
  expected-value: (#t #(2 2130706433 0))
Group end: syscalls
# of expected passes      15
# of unexpected failures  3

  parent reply	other threads:[~2015-09-04 15:04 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-09-04  6:44 bug#21410: [TEST-FAIL] 2 tests failed when running `make check' on Debian Alex Vong
2015-09-04 14:12 ` Thompson, David
2015-09-04 15:02 ` Alex Vong [this message]
2015-09-04 20:07   ` Ludovic Courtès
2015-09-05 12:49     ` Thompson, David
2015-09-05 17:43     ` Thompson, David
2015-09-07  1:47 ` Alex Vong
2015-09-07 19:42   ` Thompson, David
2015-09-09 10:02     ` Alex Vong
2015-09-15 11:24       ` Alex Vong
2015-09-15 14:20         ` Thompson, David
2015-09-15 15:06           ` Alex Vong
     [not found] <20150906123025.64b32157@debian>
2015-09-06 11:25 ` Thompson, David

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150904230257.5425eb8a@debian \
    --to=alexvong1995@gmail.com \
    --cc=21410@debbugs.gnu.org \
    --cc=dthompson2@worcester.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).