* bug#25476: pivot-root test fails on Ubuntu 16.04
@ 2017-01-18 17:22 Paul Garlick
2017-01-19 16:23 ` Ludovic Courtès
2020-02-11 0:16 ` bug#25476: Hunting: pivot-root test fails on foreign distro zimoun
0 siblings, 2 replies; 13+ messages in thread
From: Paul Garlick @ 2017-01-18 17:22 UTC (permalink / raw)
To: 25476
[-- Attachment #1: Type: text/plain, Size: 323 bytes --]
Hi,
I have noticed that the pivot-root test on my development system has
started to fail. After running 'make check' the result: FAIL is
recorded for the syscalls.scm test.
I have recently updated the system. It is running Ubuntu 16.04.
Previously, the test passed. Now:
$ uname -r
4.4.0-59-generic
Best,
Paul.
[-- Attachment #2: Type: text/html, Size: 519 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-01-18 17:22 bug#25476: pivot-root test fails on Ubuntu 16.04 Paul Garlick
@ 2017-01-19 16:23 ` Ludovic Courtès
2017-01-20 23:20 ` Paul Garlick
2020-02-11 0:16 ` bug#25476: Hunting: pivot-root test fails on foreign distro zimoun
1 sibling, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2017-01-19 16:23 UTC (permalink / raw)
To: Paul Garlick; +Cc: 25476
Hi!
Paul Garlick <pgarlick@tourbillion-technology.com> skribis:
> I have noticed that the pivot-root test on my development system has
> started to fail. After running 'make check' the result: FAIL is
> recorded for the syscalls.scm test.
>
> I have recently updated the system. It is running Ubuntu 16.04.
> Previously, the test passed. Now:
>
> $ uname -r
> 4.4.0-59-generic
That’s on Git master, right?
Could you post tests/syscalls.log?
This test is known to be problematic with recent kernels, as written
above it:
--8<---------------cut here---------------start------------->8---
;; XXX: Skip this test when running Linux > 4.7.5 to work around
;; <https://bugzilla.kernel.org/show_bug.cgi?id=183461>.
(when (or (not perform-container-tests?)
(version>? (utsname:release (uname)) "4.7.5"))
(test-skip 1))
--8<---------------cut here---------------end--------------->8---
AFAIK this particular problem was introduced around 4.7.5, as discussed
in the bug report above, but maybe Ubuntu’s 4.4 has it too?
Thanks for your report!
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-01-19 16:23 ` Ludovic Courtès
@ 2017-01-20 23:20 ` Paul Garlick
2017-01-30 22:32 ` Ludovic Courtès
0 siblings, 1 reply; 13+ messages in thread
From: Paul Garlick @ 2017-01-20 23:20 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 25476
[-- Attachment #1.1: Type: text/plain, Size: 196 bytes --]
Hi Ludo,
> That’s on Git master, right?
Yes, back on the master branch the test still fails:
$ git describe
v0.11.0-3373-g2df3d14
> Could you post tests/syscalls.log?
>
Attached.
Best,
Paul.
[-- Attachment #1.2: Type: text/html, Size: 563 bytes --]
[-- Attachment #2: syscalls.log --]
[-- Type: text/x-log, Size: 18628 bytes --]
test-name: mount, ENOENT
location: /data/paul/sourceCode/guix/tests/syscalls.scm:38
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: /data/paul/sourceCode/guix/tests/syscalls.scm:46
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: /data/paul/sourceCode/guix/tests/syscalls.scm:55
source:
+ (test-assert
+ "mount-points"
+ (any (cute member <> (mount-points))
+ '("/" "/proc" "/sys" "/dev")))
actual-value: (/ /sys/kernel/security /dev/shm /run/lock /sys/fs/cgroup /sys/fs/cgroup/systemd /sys/fs/pstore /sys/fs/cgroup/memory /sys/fs/cgroup/net_cls,net_prio /sys/fs/cgroup/pids /sys/fs/cgroup/cpuset /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/blkio /sys/fs/cgroup/devices /sys/fs/cgroup/freezer /sys/fs/cgroup/perf_event /sys/fs/cgroup/hugetlb /proc/sys/fs/binfmt_misc /sys/kernel/debug /dev/mqueue /dev/hugepages /run/rpc_pipefs /sys/fs/fuse/connections /data /run/cgmanager/fs /run/user/1000 /run/user/1000/gvfs)
result: PASS
test-name: swapon, ENOENT/EPERM
location: /data/paul/sourceCode/guix/tests/syscalls.scm:61
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: /data/paul/sourceCode/guix/tests/syscalls.scm:69
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: /data/paul/sourceCode/guix/tests/syscalls.scm:77
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: /data/paul/sourceCode/guix/tests/syscalls.scm:85
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: /data/paul/sourceCode/guix/tests/syscalls.scm:92
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: /data/paul/sourceCode/guix/tests/syscalls.scm:109
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: /data/paul/sourceCode/guix/tests/syscalls.scm:122
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: /data/paul/sourceCode/guix/tests/syscalls.scm:154
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))))))))
expected-value: #t
actual-value: #f
result: FAIL
test-name: fcntl-flock wait
location: /data/paul/sourceCode/guix/tests/syscalls.scm:188
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: /data/paul/sourceCode/guix/tests/syscalls.scm:227
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: all-network-interface-names
location: /data/paul/sourceCode/guix/tests/syscalls.scm:269
source:
+ (test-assert
+ "all-network-interface-names"
+ (match (all-network-interface-names)
+ (((? string? names) ..1) (member "lo" names))))
actual-value: (lo wlan0 eth0)
result: PASS
test-name: network-interface-names
location: /data/paul/sourceCode/guix/tests/syscalls.scm:274
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: /data/paul/sourceCode/guix/tests/syscalls.scm:279
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: /data/paul/sourceCode/guix/tests/syscalls.scm:286
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: set-network-interface-flags
location: /data/paul/sourceCode/guix/tests/syscalls.scm:297
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: /data/paul/sourceCode/guix/tests/syscalls.scm:307
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: /data/paul/sourceCode/guix/tests/syscalls.scm:315
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: /data/paul/sourceCode/guix/tests/syscalls.scm:329
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: /data/paul/sourceCode/guix/tests/syscalls.scm:337
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: /data/paul/sourceCode/guix/tests/syscalls.scm:350
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: /data/paul/sourceCode/guix/tests/syscalls.scm:362
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: /data/paul/sourceCode/guix/tests/syscalls.scm:378
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: /data/paul/sourceCode/guix/tests/syscalls.scm:391
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: /data/paul/sourceCode/guix/tests/syscalls.scm:401
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: /data/paul/sourceCode/guix/tests/syscalls.scm:415
source:
+ (test-assert
+ "tcgetattr"
+ (let ((termios (tcgetattr 0)))
+ (and (termios? termios)
+ (> (termios-input-speed termios) 0)
+ (> (termios-output-speed termios) 0))))
result: SKIP
test-name: tcsetattr
location: /data/paul/sourceCode/guix/tests/syscalls.scm:421
source:
+ (test-assert
+ "tcsetattr"
+ (let ((first (tcgetattr 0)))
+ (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+ (equal? first (tcgetattr 0))))
result: SKIP
test-name: terminal-window-size ENOTTY
location: /data/paul/sourceCode/guix/tests/syscalls.scm:426
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: /data/paul/sourceCode/guix/tests/syscalls.scm:437
source:
+ (test-assert
+ "terminal-columns"
+ (> (terminal-columns) 0))
actual-value: #t
result: PASS
test-name: terminal-columns non-file port
location: /data/paul/sourceCode/guix/tests/syscalls.scm:440
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-01-20 23:20 ` Paul Garlick
@ 2017-01-30 22:32 ` Ludovic Courtès
2017-01-31 16:48 ` Paul Garlick
0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2017-01-30 22:32 UTC (permalink / raw)
To: Paul Garlick; +Cc: 25476
Paul Garlick <pgarlick@tourbillion-technology.com> skribis:
> test-name: pivot-root
> location: /data/paul/sourceCode/guix/tests/syscalls.scm:154
> 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))))))))
> expected-value: #t
> actual-value: #f
> result: FAIL
Hmm, not sure why this is failing. Most likely (file-exists? "/test")
returns #f.
Could you change “(eq? #t result)” to “result”, rerun the test, and send
syscalls.log?
Thanks,
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-01-30 22:32 ` Ludovic Courtès
@ 2017-01-31 16:48 ` Paul Garlick
2017-02-01 13:08 ` Ludovic Courtès
0 siblings, 1 reply; 13+ messages in thread
From: Paul Garlick @ 2017-01-31 16:48 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 25476
[-- Attachment #1.1: Type: text/plain, Size: 400 bytes --]
>
> Could you change “(eq? #t result)” to “result”, rerun the test, and
> send
> syscalls.log?
>
>
Hi Ludo,
After a 'git pull --rebase' I now have:
$ git describe
v0.12.0-984-gabb7eb7
The pivot-root test still fails. The 'actual-value' is now #<eof>. I
have attached the syscalls.log file.
In fact there is also a new FAIL result, for utmpx-entries. Is this
unrelated?
Best,
Paul.
[-- Attachment #1.2: Type: text/html, Size: 684 bytes --]
[-- Attachment #2: syscalls.log --]
[-- Type: text/x-log, Size: 19577 bytes --]
test-name: mount, ENOENT
location: /data/paul/sourceCode/guix/tests/syscalls.scm:38
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: /data/paul/sourceCode/guix/tests/syscalls.scm:46
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: /data/paul/sourceCode/guix/tests/syscalls.scm:55
source:
+ (test-assert
+ "mount-points"
+ (any (cute member <> (mount-points))
+ '("/" "/proc" "/sys" "/dev")))
actual-value: (/ /sys/kernel/security /dev/shm /run/lock /sys/fs/cgroup /sys/fs/cgroup/systemd /sys/fs/pstore /sys/fs/cgroup/devices /sys/fs/cgroup/pids /sys/fs/cgroup/memory /sys/fs/cgroup/freezer /sys/fs/cgroup/net_cls,net_prio /sys/fs/cgroup/hugetlb /sys/fs/cgroup/cpu,cpuacct /sys/fs/cgroup/blkio /sys/fs/cgroup/cpuset /sys/fs/cgroup/perf_event /proc/sys/fs/binfmt_misc /dev/hugepages /dev/mqueue /sys/kernel/debug /run/rpc_pipefs /sys/fs/fuse/connections /data /run/cgmanager/fs /run/user/1000 /run/user/1000/gvfs)
result: PASS
test-name: swapon, ENOENT/EPERM
location: /data/paul/sourceCode/guix/tests/syscalls.scm:61
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: /data/paul/sourceCode/guix/tests/syscalls.scm:69
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: /data/paul/sourceCode/guix/tests/syscalls.scm:77
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: /data/paul/sourceCode/guix/tests/syscalls.scm:85
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: /data/paul/sourceCode/guix/tests/syscalls.scm:92
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: /data/paul/sourceCode/guix/tests/syscalls.scm:109
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: /data/paul/sourceCode/guix/tests/syscalls.scm:122
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: /data/paul/sourceCode/guix/tests/syscalls.scm:154
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))))
+ result)))))))
expected-value: #t
actual-value: #<eof>
result: FAIL
test-name: fcntl-flock wait
location: /data/paul/sourceCode/guix/tests/syscalls.scm:188
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: /data/paul/sourceCode/guix/tests/syscalls.scm:227
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: all-network-interface-names
location: /data/paul/sourceCode/guix/tests/syscalls.scm:269
source:
+ (test-assert
+ "all-network-interface-names"
+ (match (all-network-interface-names)
+ (((? string? names) ..1) (member "lo" names))))
actual-value: (lo wlan0 eth0)
result: PASS
test-name: network-interface-names
location: /data/paul/sourceCode/guix/tests/syscalls.scm:274
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: /data/paul/sourceCode/guix/tests/syscalls.scm:279
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: /data/paul/sourceCode/guix/tests/syscalls.scm:286
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: set-network-interface-flags
location: /data/paul/sourceCode/guix/tests/syscalls.scm:297
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: /data/paul/sourceCode/guix/tests/syscalls.scm:307
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: /data/paul/sourceCode/guix/tests/syscalls.scm:315
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: /data/paul/sourceCode/guix/tests/syscalls.scm:329
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: /data/paul/sourceCode/guix/tests/syscalls.scm:337
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: /data/paul/sourceCode/guix/tests/syscalls.scm:350
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: /data/paul/sourceCode/guix/tests/syscalls.scm:362
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: /data/paul/sourceCode/guix/tests/syscalls.scm:378
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: /data/paul/sourceCode/guix/tests/syscalls.scm:391
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: /data/paul/sourceCode/guix/tests/syscalls.scm:401
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: /data/paul/sourceCode/guix/tests/syscalls.scm:415
source:
+ (test-assert
+ "tcgetattr"
+ (let ((termios (tcgetattr 0)))
+ (and (termios? termios)
+ (> (termios-input-speed termios) 0)
+ (> (termios-output-speed termios) 0))))
result: SKIP
test-name: tcsetattr
location: /data/paul/sourceCode/guix/tests/syscalls.scm:421
source:
+ (test-assert
+ "tcsetattr"
+ (let ((first (tcgetattr 0)))
+ (tcsetattr 0 (tcsetattr-action TCSANOW) first)
+ (equal? first (tcgetattr 0))))
result: SKIP
test-name: terminal-window-size ENOTTY
location: /data/paul/sourceCode/guix/tests/syscalls.scm:426
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: /data/paul/sourceCode/guix/tests/syscalls.scm:437
source:
+ (test-assert
+ "terminal-columns"
+ (> (terminal-columns) 0))
actual-value: #t
result: PASS
test-name: terminal-columns non-file port
location: /data/paul/sourceCode/guix/tests/syscalls.scm:440
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: /data/paul/sourceCode/guix/tests/syscalls.scm:444
source:
+ (test-assert
+ "utmpx-entries"
+ (match (utmpx-entries)
+ (((? utmpx? entries) ...)
+ (every (lambda (entry)
+ (match (utmpx-user entry)
+ ((? string?) (> (utmpx-pid entry) 0))
+ (#f #t)))
+ entries))))
actual-value: #f
result: FAIL
test-name: read-utmpx, EOF
location: /data/paul/sourceCode/guix/tests/syscalls.scm:455
source:
+ (test-assert
+ "read-utmpx, EOF"
+ (eof-object? (read-utmpx (%make-void-port "r"))))
actual-value: #t
result: PASS
test-name: read-utmpx
location: /data/paul/sourceCode/guix/tests/syscalls.scm:460
source:
+ (test-assert
+ "read-utmpx"
+ (let ((result
+ (call-with-input-file
+ "/var/run/utmpx"
+ read-utmpx)))
+ (or (utmpx? result) (eof-object? result))))
result: SKIP
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-01-31 16:48 ` Paul Garlick
@ 2017-02-01 13:08 ` Ludovic Courtès
2017-02-01 15:33 ` Paul Garlick
0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2017-02-01 13:08 UTC (permalink / raw)
To: Paul Garlick; +Cc: 25476
Hi,
Paul Garlick <pgarlick@tourbillion-technology.com> skribis:
> test-name: pivot-root
> location: /data/paul/sourceCode/guix/tests/syscalls.scm:154
> 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))))
> + result)))))))
> expected-value: #t
> actual-value: #<eof>
> result: FAIL
That would mean the child process exited with 0, yet it didn’t write
anything to stdout. Not sure how this can happen.
> test-name: utmpx-entries
> location: /data/paul/sourceCode/guix/tests/syscalls.scm:444
> source:
> + (test-assert
> + "utmpx-entries"
> + (match (utmpx-entries)
> + (((? utmpx? entries) ...)
> + (every (lambda (entry)
> + (match (utmpx-user entry)
> + ((? string?) (> (utmpx-pid entry) 0))
> + (#f #t)))
> + entries))))
> actual-value: #f
> result: FAIL
This one is unrelated.
Could you try this:
--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guile
GNU Guile 2.0.13
Copyright (C) 1995-2016 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> ,use(guix build syscalls)
scheme@(guile-user)> (utmpx-entries)
$1 = (#<<utmpx-entry> type: 6 …> …)
scheme@(guile-user)> ,use(srfi srfi-1)
scheme@(guile-user)> (find (lambda (entry) (and (string? (utmpx-user entry))(zero? (utmpx-pid entry)))) (utmpx-entries))
$2 = #f
--8<---------------cut here---------------end--------------->8---
Most likely the assumption made in this test doesn’t hold on your system
for some reason.
Thank you,
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-02-01 13:08 ` Ludovic Courtès
@ 2017-02-01 15:33 ` Paul Garlick
2017-02-11 21:29 ` Ludovic Courtès
0 siblings, 1 reply; 13+ messages in thread
From: Paul Garlick @ 2017-02-01 15:33 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 25476
[-- Attachment #1: Type: text/plain, Size: 2228 bytes --]
Hi Ludo,
Here is the output from the guile session:
paul$ ./pre-inst-env guile
GNU Guile 2.0.13
Copyright (C) 1995-2016 Free Software Foundation, Inc.
Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
This program is free software, and you are welcome to redistribute it
under certain conditions; type `,show c' for details.
Enter `,help' for help.
scheme@(guile-user)> ,use(guix build syscalls)
scheme@(guile-user)> (utmpx-entries)
$1 = (#<<utmpx-entry> type: 2 pid: 0 line: "~" id: (126 126 0 0) user:
"reboot" host: "4.4.0-59-generic" termination: 0 exit: 0 session: 0
time: #<time type: time-utc nanosecond: 627310000 second: 1485945677>
address: (0 0 0 0)> #<<utmpx-entry> type: 1 pid: 53 line: "~" id: (126
126 0 0) user: "runlevel" host: "4.4.0-59-generic" termination: 0 exit:
0 session: 0 time: #<time type: time-utc nanosecond: 441012000 second:
1485945740> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1589 line:
"tty1" id: (116 116 121 49) user: "LOGIN" host: #f termination: 0 exit:
0 session: 1589 time: #<time type: time-utc nanosecond: 643444000
second: 1485945740> address: (0 0 0 0)> #<<utmpx-entry> type: 7 pid:
1908 line: "tty7" id: (58 48 0 0) user: "paul" host: ":0" termination:
0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 705038000
second: 1485945754> address: (0 0 0 0)> #<<utmpx-entry> type: 7 pid:
2486 line: "pts/11" id: (47 49 49 0) user: "paul" host: ":0.0"
termination: 0 exit: 0 session: 0 time: #<time type: time-utc
nanosecond: 115640000 second: 1485945809> address: (0 0 0 0)> #<<utmpx-
entry> type: 7 pid: 2486 line: "pts/2" id: (47 50 0 0) user: "paul"
host: ":0.0" termination: 0 exit: 0 session: 0 time: #<time type: time-
utc nanosecond: 916844000 second: 1485947271> address: (0 0 0 0)>)
scheme@(guile-user)> ,use(srfi srfi-1)
scheme@(guile-user)> (find (lambda (entry) (and (string? (utmpx-user
entry))(zero? (utmpx-pid entry)))) (utmpx-entries))
$2 = #<<utmpx-entry> type: 2 pid: 0 line: "~" id: (126 126 0 0) user:
"reboot" host: "4.4.0-59-generic" termination: 0 exit: 0 session: 0
time: #<time type: time-utc nanosecond: 627310000 second: 1485945677>
address: (0 0 0 0)>
The $2 ##SELECTION_END##output is not false in this case.
Paul.
[-- Attachment #2: Type: text/html, Size: 2655 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-02-01 15:33 ` Paul Garlick
@ 2017-02-11 21:29 ` Ludovic Courtès
2017-02-13 22:16 ` Paul Garlick
0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2017-02-11 21:29 UTC (permalink / raw)
To: Paul Garlick; +Cc: 25476
Paul Garlick <pgarlick@tourbillion-technology.com> skribis:
> scheme@(guile-user)> (find (lambda (entry) (and (string? (utmpx-user
> entry))(zero? (utmpx-pid entry)))) (utmpx-entries))
> $2 = #<<utmpx-entry> type: 2 pid: 0 line: "~" id: (126 126 0 0) user: "reboot" host: "4.4.0-59-generic" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 627310000 second:
> 1485945677> address: (0 0 0 0)>
>
> The $2 output is not false in this case.
I think a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 fixes this.
Thanks!
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-02-11 21:29 ` Ludovic Courtès
@ 2017-02-13 22:16 ` Paul Garlick
2017-02-13 22:31 ` Ludovic Courtès
0 siblings, 1 reply; 13+ messages in thread
From: Paul Garlick @ 2017-02-13 22:16 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 25476
[-- Attachment #1: Type: text/plain, Size: 330 bytes --]
> I think a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 fixes this.
>
>
Yes, confirmed. The utmpx-entries test now passes.
The pivot-root test still fails. One thought; I made a change to the
guix-daemon.service file, at about the same time as updating Ubuntu to
16.04, setting TMPDIR to /data/tmp. Could that be related?
Paul.
[-- Attachment #2: Type: text/html, Size: 500 bytes --]
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: pivot-root test fails on Ubuntu 16.04
2017-02-13 22:16 ` Paul Garlick
@ 2017-02-13 22:31 ` Ludovic Courtès
0 siblings, 0 replies; 13+ messages in thread
From: Ludovic Courtès @ 2017-02-13 22:31 UTC (permalink / raw)
To: Paul Garlick; +Cc: 25476
Hi Paul,
Paul Garlick <pgarlick@tourbillion-technology.com> skribis:
>> I think a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 fixes this.
>>
>>
> Yes, confirmed. The utmpx-entries test now passes.
Great, thanks for checking.
> The pivot-root test still fails. One thought; I made a change to the
> guix-daemon.service file, at about the same time as updating Ubuntu to
> 16.04, setting TMPDIR to /data/tmp. Could that be related?
I don’t think so: ‘make check’ spawns its own daemon, which uses a store
at $builddir/test-tmp. And this particular test does not rely on the
daemon.
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: Hunting: pivot-root test fails on foreign distro
2017-01-18 17:22 bug#25476: pivot-root test fails on Ubuntu 16.04 Paul Garlick
2017-01-19 16:23 ` Ludovic Courtès
@ 2020-02-11 0:16 ` zimoun
2020-02-11 11:34 ` Ludovic Courtès
1 sibling, 1 reply; 13+ messages in thread
From: zimoun @ 2020-02-11 0:16 UTC (permalink / raw)
To: 25476; +Cc: hydromasha, pgarlick
Dear,
This bug seems fixed by a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 as
explained here [1].
Any objection to close it?
Or new information blocking the closing?
[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25476#29
Thank you in advance.
All the best,
simon
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: Hunting: pivot-root test fails on foreign distro
2020-02-11 0:16 ` bug#25476: Hunting: pivot-root test fails on foreign distro zimoun
@ 2020-02-11 11:34 ` Ludovic Courtès
2020-02-11 13:39 ` zimoun
0 siblings, 1 reply; 13+ messages in thread
From: Ludovic Courtès @ 2020-02-11 11:34 UTC (permalink / raw)
To: zimoun; +Cc: 25476-done, pgarlick, hydromasha
Hi,
zimoun <zimon.toutoune@gmail.com> skribis:
> This bug seems fixed by a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 as
> explained here [1].
Well this commit fixes one of the issues discussed here (the utmpx test
failure), but not the ‘pivot-root’ test failure itself.
However, it seems that the ‘pivot-root’ test is now skipped in practice
on most systems so…
Turns out I found how to make it work again in commit
1deca767be1b84b96633e317f3fcdd5165f95df3. Let me know if anything’s
amiss.
Finally closing! :-)
Ludo’.
^ permalink raw reply [flat|nested] 13+ messages in thread
* bug#25476: Hunting: pivot-root test fails on foreign distro
2020-02-11 11:34 ` Ludovic Courtès
@ 2020-02-11 13:39 ` zimoun
0 siblings, 0 replies; 13+ messages in thread
From: zimoun @ 2020-02-11 13:39 UTC (permalink / raw)
To: Ludovic Courtès; +Cc: 25476-done
Hi Ludo,
On Tue, 11 Feb 2020 at 12:35, Ludovic Courtès <ludo@gnu.org> wrote:
> zimoun <zimon.toutoune@gmail.com> skribis:
>
> > This bug seems fixed by a1a8b7f2e20513a3ad968e74e7ec52546404e3c6 as
> > explained here [1].
>
> Well this commit fixes one of the issues discussed here (the utmpx test
> failure), but not the ‘pivot-root’ test failure itself.
D'oh!
I missed this part.
> However, it seems that the ‘pivot-root’ test is now skipped in practice
> on most systems so…
Ok so let if the bug show up again. :-)
> Turns out I found how to make it work again in commit
> 1deca767be1b84b96633e317f3fcdd5165f95df3. Let me know if anything’s
> amiss.
Cool!
Thank you for the fix.
Cheers,
simon
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2020-02-11 13:41 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-01-18 17:22 bug#25476: pivot-root test fails on Ubuntu 16.04 Paul Garlick
2017-01-19 16:23 ` Ludovic Courtès
2017-01-20 23:20 ` Paul Garlick
2017-01-30 22:32 ` Ludovic Courtès
2017-01-31 16:48 ` Paul Garlick
2017-02-01 13:08 ` Ludovic Courtès
2017-02-01 15:33 ` Paul Garlick
2017-02-11 21:29 ` Ludovic Courtès
2017-02-13 22:16 ` Paul Garlick
2017-02-13 22:31 ` Ludovic Courtès
2020-02-11 0:16 ` bug#25476: Hunting: pivot-root test fails on foreign distro zimoun
2020-02-11 11:34 ` Ludovic Courtès
2020-02-11 13:39 ` zimoun
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).