all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* bug#29426: guix: "make check" test "utmpx-entries" fails
@ 2017-11-24 17:09 Adonay Felipe Nogueira
  2017-11-24 20:58 ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Adonay Felipe Nogueira @ 2017-11-24 17:09 UTC (permalink / raw)
  To: 29426

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

Currently, "make check" test "utmpx-entries" fails, to reproduce, do:

--8<---------------cut here---------------start------------->8---
git clone "https://git.savannah.gnu.org/git/guix.git"
guix environment guix
./bootstrap
./configure --localstatedir="/var"
make check
--8<---------------cut here---------------end--------------->8---

The test fails in foreign system distribution (Trisquel 7, based on
Ubuntu 14.04).

Last attempt was based on commit
907ab9e8cbab10413848dfc8982cfc851e03903f.

The "test-suite.log" file is attached.


[-- Attachment #2: test-suite.log --]
[-- Type: application/octet-stream, Size: 95143 bytes --]

==================================================
   GNU Guix 0.13.0.4856-907ab: ./test-suite.log
==================================================

# TOTAL: 746
# PASS:  738
# SKIP:  7
# 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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/snix
================

test-name: factorize-uri
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/gexp
================

test-name: no refs
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:71
source:
+ (test-equal
+   "no refs"
+   '(display "hello!")
+   (let ((exp (gexp (display "hello!"))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display "hello!")
actual-value: (display "hello!")
result: PASS

test-name: unquote
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:78
source:
+ (test-equal
+   "unquote"
+   '(display `(foo ,(+ 2 3)))
+   (let ((exp (gexp (display `(foo ,(+ 2 3))))))
+     (and (gexp? exp)
+          (null? (gexp-inputs exp))
+          (gexp->sexp* exp))))
expected-value: (display (quasiquote (foo (unquote (+ 2 3)))))
actual-value: (display (quasiquote (foo (unquote (+ 2 3)))))
result: PASS

test-name: one input package
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:85
source:
+ (test-assert
+   "one input package"
+   (let ((exp (gexp (display (ungexp coreutils)))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-derivation %store coreutils)))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one input package, dotted list
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:95
source:
+ (test-assert
+   "one input package, dotted list"
+   (let ((exp (gexp (coreutils ungexp coreutils))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (equal?
+            `(coreutils
+               unquote
+               (derivation->output-path
+                 (package-derivation %store coreutils)))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one input origin
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:105
source:
+ (test-assert
+   "one input origin"
+   (let ((exp (gexp (display (ungexp (package-source coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((o "out")) (eq? o (package-source coreutils))))
+          (equal?
+            `(display
+               ,(derivation->output-path
+                  (package-source-derivation
+                    %store
+                    (package-source coreutils))))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:116
source:
+ (test-assert
+   "one local file"
+   (let* ((file (search-path %load-path "guix.scm"))
+          (local (local-file file))
+          (exp (gexp (display (ungexp local))))
+          (intd (add-to-store
+                  %store
+                  (basename file)
+                  #f
+                  "sha256"
+                  file)))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x local)))
+          (equal? `(display ,intd) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: one local file, symlink
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:128
source:
+ (test-assert
+   "one local file, symlink"
+   (let ((file (search-path %load-path "guix.scm"))
+         (link (tmpnam)))
+     (dynamic-wind
+       (const #t)
+       (lambda ()
+         (symlink (canonicalize-path file) link)
+         (let* ((local (local-file link "my-file" #:recursive? #f))
+                (exp (gexp (display (ungexp local))))
+                (intd (add-to-store %store "my-file" #f "sha256" file)))
+           (and (gexp? exp)
+                (match (gexp-inputs exp)
+                       (((x "out")) (eq? x local)))
+                (equal? `(display ,intd) (gexp->sexp* exp)))))
+       (lambda ()
+         (false-if-exception (delete-file link))))))
actual-value: #t
result: PASS

test-name: local-file, relative file name
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:147
source:
+ (test-equal
+   "local-file, relative file name"
+   (canonicalize-path
+     (search-path %load-path "guix/base32.scm"))
+   (let ((directory
+           (dirname
+             (search-path
+               %load-path
+               "guix/build-system/gnu.scm"))))
+     (with-directory-excursion
+       directory
+       (let ((file (local-file "../guix/base32.scm")))
+         (local-file-absolute-file-name file)))))
expected-value: "/home/adfeno/Projetos/Software/guix/guix/base32.scm"
actual-value: "/home/adfeno/Projetos/Software/guix/guix/base32.scm"
result: PASS

test-name: local-file, #:select?
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:155
source:
+ (test-assert
+   "local-file, #:select?"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((select?
+               ->
+               (lambda (file stat)
+                 (member
+                   (basename file)
+                   '("guix.scm" "tests" "gexp.scm"))))
+             (file ->
+                   (local-file
+                     ".."
+                     "directory"
+                     #:recursive?
+                     #t
+                     #:select?
+                     select?))
+             (dir (lower-object file)))
+            (return
+              (and (store-path? dir)
+                   (equal?
+                     (scandir dir)
+                     '("." ".." "guix.scm" "tests"))
+                   (equal?
+                     (scandir (string-append dir "/tests"))
+                     '("." ".." "gexp.scm")))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: one plain file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:170
source:
+ (test-assert
+   "one plain file"
+   (let* ((file (plain-file "hi" "Hello, world!"))
+          (exp (gexp (display (ungexp file))))
+          (expected
+            (add-text-to-store %store "hi" "Hello, world!")))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((x "out")) (eq? x file)))
+          (equal? `(display ,expected) (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: same input twice
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:180
source:
+ (test-assert
+   "same input twice"
+   (let ((exp (gexp (begin
+                      (display (ungexp coreutils))
+                      (display (ungexp coreutils))))))
+     (and (gexp? exp)
+          (match (gexp-inputs exp)
+                 (((p "out")) (eq? p coreutils)))
+          (let ((e `(display
+                      ,(derivation->output-path
+                         (package-derivation %store coreutils)))))
+            (equal? `(begin ,e ,e) (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: two input packages, one derivation, one file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:192
source:
+ (test-assert
+   "two input packages, one derivation, one file"
+   (let* ((drv (build-expression->derivation
+                 %store
+                 "foo"
+                 'bar
+                 #:guile-for-build
+                 (package-derivation %store %bootstrap-guile)))
+          (txt (add-text-to-store %store "foo" "Hello, world!"))
+          (exp (gexp (begin
+                       (display (ungexp coreutils))
+                       (display (ungexp %bootstrap-guile))
+                       (display (ungexp drv))
+                       (display (ungexp txt))))))
+     (define (match-input thing)
+       (match-lambda
+         ((drv-or-pkg _ ...) (eq? thing drv-or-pkg))))
+     (and (gexp? exp)
+          (= 4 (length (gexp-inputs exp)))
+          (every (lambda (input)
+                   (find (match-input input) (gexp-inputs exp)))
+                 (list drv coreutils %bootstrap-guile txt))
+          (let ((e0 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store coreutils))))
+                (e1 `(display
+                       ,(derivation->output-path
+                          (package-derivation %store %bootstrap-guile))))
+                (e2 `(display ,(derivation->output-path drv)))
+                (e3 `(display ,txt)))
+            (equal?
+              `(begin ,e0 ,e1 ,e2 ,e3)
+              (gexp->sexp* exp))))))
actual-value: #t
result: PASS

test-name: file-append
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:220
source:
+ (test-assert
+   "file-append"
+   (let* ((drv (package-derivation %store %bootstrap-guile))
+          (fa (file-append %bootstrap-guile "/bin/guile"))
+          (exp (gexp (here we go (ungexp fa)))))
+     (and (match (gexp->sexp* exp)
+                 (('here 'we 'go (? string? result))
+                  (string=?
+                    result
+                    (string-append
+                      (derivation->output-path drv)
+                      "/bin/guile"))))
+          (match (gexp-inputs exp)
+                 (((thing "out")) (eq? thing fa))))))
actual-value: #t
result: PASS

test-name: file-append, output
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:233
source:
+ (test-assert
+   "file-append, output"
+   (let* ((drv (package-derivation %store glibc))
+          (fa (file-append glibc "/lib" "/debug"))
+          (exp (gexp (foo (ungexp fa "debug")))))
+     (and (match (gexp->sexp* exp)
+                 (('foo (? string? result))
+                  (string=?
+                    result
+                    (string-append
+                      (derivation->output-path drv "debug")
+                      "/lib/debug"))))
+          (match (gexp-inputs exp)
+                 (((thing "debug")) (eq? thing fa))))))
actual-value: #t
result: PASS

test-name: file-append, nested
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:246
source:
+ (test-assert
+   "file-append, nested"
+   (let* ((drv (package-derivation %store glibc))
+          (dir (file-append glibc "/bin"))
+          (slash (file-append dir "/"))
+          (file (file-append slash "getent"))
+          (exp (gexp (foo (ungexp file)))))
+     (and (match (gexp->sexp* exp)
+                 (('foo (? string? result))
+                  (string=?
+                    result
+                    (string-append
+                      (derivation->output-path drv)
+                      "/bin/getent"))))
+          (match (gexp-inputs exp)
+                 (((thing "out")) (eq? thing file))))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:261
source:
+ (test-assert
+   "ungexp + ungexp-native"
+   (let* ((exp (gexp (list (ungexp-native %bootstrap-guile)
+                           (ungexp coreutils)
+                           (ungexp-native glibc)
+                           (ungexp binutils))))
+          (target "mips64el-linux")
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-cross-derivation
+                  %store
+                  coreutils
+                  target)))
+          (libc (derivation->output-path
+                  (package-derivation %store glibc)))
+          (bu (derivation->output-path
+                (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,glibc "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,coreutils "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(list ,guile ,cu ,libc ,bu)
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: ungexp + ungexp-native, nested
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:284
source:
+ (test-equal
+   "ungexp + ungexp-native, nested"
+   (list `((,%bootstrap-guile "out"))
+         '<>
+         `((,coreutils "out")))
+   (let* ((exp (gexp (list (ungexp-native (gexp (ungexp coreutils)))
+                           (ungexp %bootstrap-guile)))))
+     (list (gexp-inputs exp)
+           '<>
+           (gexp-native-inputs exp))))
expected-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:287 9f4bf00> "out")) <> ((#<package coreutils@8.27 gnu/packages/base.scm:294 a983120> "out")))
actual-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:287 9f4bf00> "out")) <> ((#<package coreutils@8.27 gnu/packages/base.scm:294 a983120> "out")))
result: PASS

test-name: ungexp + ungexp-native, nested, special mixture
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:290
source:
+ (test-equal
+   "ungexp + ungexp-native, nested, special mixture"
+   `(() <> ((,coreutils "out")))
+   (let* ((foo (gexp (foo (ungexp-native coreutils))))
+          (exp (gexp (bar (ungexp foo)))))
+     (list (gexp-inputs exp)
+           '<>
+           (gexp-native-inputs exp))))
expected-value: (() <> ((#<package coreutils@8.27 gnu/packages/base.scm:294 a983120> "out")))
actual-value: (() <> ((#<package coreutils@8.27 gnu/packages/base.scm:294 a983120> "out")))
result: PASS

test-name: input list
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:298
source:
+ (test-assert
+   "input list"
+   (let ((exp (gexp (display
+                      '(ungexp (list %bootstrap-guile coreutils)))))
+         (guile (derivation->output-path
+                  (package-derivation %store %bootstrap-guile)))
+         (cu (derivation->output-path
+               (package-derivation %store coreutils))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display '(,guile ,cu))
+            (gexp->sexp* exp)))))
actual-value: #t
result: PASS

test-name: input list + ungexp-native
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:311
source:
+ (test-assert
+   "input list + ungexp-native"
+   (let* ((target "mips64el-linux")
+          (exp (gexp (display
+                       (cons '(ungexp-native
+                                (list %bootstrap-guile coreutils))
+                             '(ungexp (list glibc binutils))))))
+          (guile (derivation->output-path
+                   (package-derivation %store %bootstrap-guile)))
+          (cu (derivation->output-path
+                (package-derivation %store coreutils)))
+          (xlibc (derivation->output-path
+                   (package-cross-derivation %store glibc target)))
+          (xbu (derivation->output-path
+                 (package-cross-derivation %store binutils target))))
+     (and (lset= equal?
+                 `((,%bootstrap-guile "out") (,coreutils "out"))
+                 (gexp-native-inputs exp))
+          (lset= equal?
+                 `((,glibc "out") (,binutils "out"))
+                 (gexp-inputs exp))
+          (equal?
+            `(display (cons '(,guile ,cu) '(,xlibc ,xbu)))
+            (gexp->sexp* exp target)))))
actual-value: #t
result: PASS

test-name: input list splicing
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:333
source:
+ (test-assert
+   "input list splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug")
+                  %bootstrap-guile))
+          (outputs
+            (list (derivation->output-path
+                    (package-derivation %store glibc)
+                    "debug")
+                  (derivation->output-path
+                    (package-derivation %store %bootstrap-guile))))
+          (exp (gexp (list (ungexp-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            `(list ,@(cons 5 outputs))))))
actual-value: #t
result: PASS

test-name: input list splicing + ungexp-native-splicing
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:347
source:
+ (test-assert
+   "input list splicing + ungexp-native-splicing"
+   (let* ((inputs
+            (list (gexp-input glibc "debug" #:native? #t)
+                  %bootstrap-guile))
+          (exp (gexp (list (ungexp-native-splicing (cons (+ 2 3) inputs))))))
+     (and (lset= equal?
+                 `((,glibc "debug") (,%bootstrap-guile "out"))
+                 (gexp-native-inputs exp))
+          (null? (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            (gexp->sexp* exp "mips64el-linux")))))
actual-value: #t
result: PASS

test-name: gexp list splicing + ungexp-splicing
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:358
source:
+ (test-assert
+   "gexp list splicing + ungexp-splicing"
+   (let* ((inner (gexp (ungexp-native glibc)))
+          (exp (gexp (list (ungexp-splicing (list inner))))))
+     (and (equal?
+            `((,glibc "out"))
+            (gexp-native-inputs exp))
+          (null? (gexp-inputs exp))
+          (equal?
+            (gexp->sexp* exp)
+            (gexp->sexp* exp "mips64el-linux")))))
actual-value: #t
result: PASS

test-name: output list
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:366
source:
+ (test-equal
+   "output list"
+   2
+   (let ((exp (gexp (begin
+                      (mkdir (ungexp output))
+                      (mkdir (ungexp output "bar"))))))
+     (length (gexp-outputs exp))))
expected-value: 2
actual-value: 2
result: PASS

test-name: output list, combined gexps
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:372
source:
+ (test-assert
+   "output list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp exp0)
+                        (ungexp exp1)))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: output list, combined gexps, duplicate output
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:381
source:
+ (test-equal
+   "output list, combined gexps, duplicate output"
+   1
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (begin (mkdir (ungexp output)) (ungexp exp0))))
+          (exp2 (gexp (begin (mkdir (ungexp output)) (ungexp exp1)))))
+     (length (gexp-outputs exp2))))
expected-value: 1
actual-value: 1
result: PASS

test-name: output list + ungexp-splicing list, combined gexps
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:388
source:
+ (test-assert
+   "output list + ungexp-splicing list, combined gexps"
+   (let* ((exp0 (gexp (mkdir (ungexp output))))
+          (exp1 (gexp (mkdir (ungexp output "foo"))))
+          (exp2 (gexp (begin
+                        (display "hi!")
+                        (ungexp-splicing (list exp0 exp1))))))
+     (and (lset= equal?
+                 (append (gexp-outputs exp0) (gexp-outputs exp1))
+                 (gexp-outputs exp2))
+          (= 2 (length (gexp-outputs exp2))))))
actual-value: #t
result: PASS

test-name: gexp->file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:398
source:
+ (test-assert
+   "gexp->file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp ->
+                  (gexp (display (ungexp %bootstrap-guile))))
+             (guile (package-file %bootstrap-guile))
+             (sexp (gexp->sexp exp))
+             (drv (gexp->file "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (refs (references* out)))
+            (return
+              (and (equal? sexp (call-with-input-file out read))
+                   (equal? (list guile) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->file + file-append
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:409
source:
+ (test-assert
+   "gexp->file + file-append"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp ->
+                  (gexp (ungexp
+                          (file-append %bootstrap-guile "/bin/guile"))))
+             (guile (package-file %bootstrap-guile))
+             (drv (gexp->file "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (refs (references* out)))
+            (return
+              (and (equal?
+                     (string-append guile "/bin/guile")
+                     (call-with-input-file out read))
+                   (equal? (list guile) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:421
source:
+ (test-assert
+   "gexp->derivation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file (text-file "foo" "Hello, world!"))
+             (exp ->
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink
+                            (string-append
+                              (ungexp %bootstrap-guile)
+                              "/bin/guile")
+                            "foo")
+                          (symlink (ungexp file) (ungexp output "2nd")))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (out2 -> (derivation->output-path drv "2nd"))
+             (done (built-derivations (list drv)))
+             (refs (references* out))
+             (refs2 (references* out2))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (and (string=?
+                     (readlink (string-append out "/foo"))
+                     guile)
+                   (string=? (readlink out2) file)
+                   (equal? refs (list (dirname (dirname guile))))
+                   (equal? refs2 (list file)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation vs. grafts
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:445
source:
+ (test-assert
+   "gexp->derivation vs. grafts"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((graft? (set-grafting #f))
+             (p0 ->
+                 (dummy-package
+                   "dummy"
+                   (arguments '(#:implicit-inputs? #f))))
+             (r -> (package (inherit p0) (name "DuMMY")))
+             (p1 -> (package (inherit p0) (replacement r)))
+             (exp0 ->
+                   (gexp (frob (ungexp p0) (ungexp output))))
+             (exp1 ->
+                   (gexp (frob (ungexp p1) (ungexp output))))
+             (void (set-guile-for-build %bootstrap-guile))
+             (drv0 (gexp->derivation "t" exp0 #:graft? #t))
+             (drv1 (gexp->derivation "t" exp1 #:graft? #t))
+             (drv1* (gexp->derivation "t" exp1 #:graft? #f))
+             (_ (set-grafting graft?)))
+            (return
+              (and (not (string=?
+                          (derivation->output-path drv0)
+                          (derivation->output-path drv1)))
+                   (string=?
+                     (derivation->output-path drv0)
+                     (derivation->output-path drv1*)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, composed gexps
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:464
source:
+ (test-assert
+   "gexp->derivation, composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((exp0 ->
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output)))))
+             (exp1 ->
+                   (gexp (symlink
+                           (string-append
+                             (ungexp %bootstrap-guile)
+                             "/bin/guile")
+                           "foo")))
+             (exp ->
+                  (gexp (begin (ungexp exp0) (ungexp exp1))))
+             (drv (gexp->derivation "foo" exp))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv)))
+             (guile (package-file %bootstrap-guile "bin/guile")))
+            (return
+              (string=?
+                (readlink (string-append out "/foo"))
+                guile)))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, default system
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:480
source:
+ (test-assert
+   "gexp->derivation, default system"
+   (run-with-store
+     %store
+     (let ((system (%current-system))
+           (mdrv (parameterize
+                   ((%current-system "foobar64-linux"))
+                   (gexp->derivation
+                     "foo"
+                     (gexp (mkdir (ungexp output)))))))
+       (mlet %store-monad
+             ((drv mdrv))
+             (return
+               (string=? system (derivation-system drv)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, local-file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:491
source:
+ (test-assert
+   "gexp->derivation, local-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file -> (search-path %load-path "guix.scm"))
+             (intd (interned-file file #:recursive? #f))
+             (local -> (local-file file))
+             (exp ->
+                  (gexp (begin
+                          (stat (ungexp local))
+                          (symlink (ungexp local) (ungexp output)))))
+             (drv (gexp->derivation "local-file" exp)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (return
+                (string=?
+                  (readlink (derivation->output-path drv))
+                  intd))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, cross-compilation
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:505
source:
+ (test-assert
+   "gexp->derivation, cross-compilation"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs (references* (derivation-file-name xdrv)))
+             (xcu (package->cross-derivation coreutils target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name xcu) refs)
+                   (not (member (derivation-file-name cu) refs)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp-native
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:519
source:
+ (test-assert
+   "gexp->derivation, ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils) (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, ungexp + ungexp-native
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:529
source:
+ (test-assert
+   "gexp->derivation, ungexp + ungexp-native"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp ->
+                  (gexp (list (ungexp-native coreutils)
+                              (ungexp glibc)
+                              (ungexp output))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (refs (references* (derivation-file-name xdrv)))
+             (xglibc (package->cross-derivation glibc target))
+             (cu (package->derivation coreutils)))
+            (return
+              (and (member (derivation-file-name cu) refs)
+                   (member (derivation-file-name xglibc) refs))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: ("/home/adfeno/Projetos/Software/guix/test-tmp/store/pwp9jw39znj466v5cj6knv606pgwm6pr-glibc-2.25.drv")
result: PASS

test-name: gexp->derivation, ungexp-native + composed gexps
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:543
source:
+ (test-assert
+   "gexp->derivation, ungexp-native + composed gexps"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((target -> "mips64el-linux")
+             (exp0 -> (gexp (list 1 2 (ungexp coreutils))))
+             (exp -> (gexp (list 0 (ungexp-native exp0))))
+             (xdrv (gexp->derivation "foo" exp #:target target))
+             (drv (gexp->derivation "foo" exp)))
+            (return
+              (string=?
+                (derivation-file-name drv)
+                (derivation-file-name xdrv))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation, store copy
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:554
source:
+ (test-assert
+   "gexp->derivation, store copy"
+   (run-with-store
+     %store
+     (let ((build-one
+             (gexp (call-with-output-file
+                     (ungexp output)
+                     (lambda (port) (display "This is the one." port)))))
+           (build-two
+             (lambda (one)
+               (gexp (begin
+                       (mkdir (ungexp output))
+                       (symlink
+                         (ungexp one)
+                         (string-append (ungexp output) "/one"))
+                       (call-with-output-file
+                         (string-append (ungexp output) "/two")
+                         (lambda (port)
+                           (display "This is the second one." port)))))))
+           (build-drv
+             (gexp (begin
+                     (use-modules (guix build store-copy))
+                     (mkdir (ungexp output))
+                     (populate-store '("graph") (ungexp output))))))
+       (mlet* %store-monad
+              ((one (gexp->derivation "one" build-one))
+               (two (gexp->derivation "two" (build-two one)))
+               (drv (gexp->derivation
+                      "store-copy"
+                      build-drv
+                      #:references-graphs
+                      `(("graph" ,two))
+                      #:modules
+                      '((guix build store-copy) (guix build utils))))
+               (ok? (built-derivations (list drv)))
+               (out -> (derivation->output-path drv)))
+              (let ((one (derivation->output-path one))
+                    (two (derivation->output-path two)))
+                (return
+                  (and ok?
+                       (file-exists? (string-append out "/" one))
+                       (file-exists? (string-append out "/" two))
+                       (file-exists? (string-append out "/" two "/two"))
+                       (string=?
+                         (readlink (string-append out "/" two "/one"))
+                         one))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: imported-files
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:589
source:
+ (test-assert
+   "imported-files"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((files ->
+                    `(("x"
+                       unquote
+                       (search-path %load-path "ice-9/q.scm"))
+                      ("a/b/c"
+                       unquote
+                       (search-path %load-path "guix/derivations.scm"))
+                      ("p/q"
+                       unquote
+                       (search-path %load-path "guix.scm"))
+                      ("p/z"
+                       unquote
+                       (search-path %load-path "guix/store.scm"))))
+             (drv (imported-files files)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let ((dir (derivation->output-path drv)))
+                (return
+                  (every (match-lambda
+                           ((path . source)
+                            (equal?
+                              (call-with-input-file
+                                (string-append dir "/" path)
+                                get-bytevector-all)
+                              (call-with-input-file
+                                source
+                                get-bytevector-all))))
+                         files)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: imported-files with file-like objects
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:609
source:
+ (test-assert
+   "imported-files with file-like objects"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((plain -> (plain-file "foo" "bar!"))
+             (q-scm -> (search-path %load-path "ice-9/q.scm"))
+             (files ->
+                    `(("a/b/c" unquote q-scm) ("p/q" unquote plain)))
+             (drv (imported-files files)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (mlet %store-monad
+                    ((dir -> (derivation->output-path drv))
+                     (plain* (text-file "foo" "bar!"))
+                     (q-scm* (interned-file q-scm "c")))
+                    (return
+                      (and (string=?
+                             (readlink (string-append dir "/a/b/c"))
+                             q-scm*)
+                           (string=?
+                             (readlink (string-append dir "/p/q"))
+                             plain*))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp-modules & ungexp
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:626
source:
+ (test-equal
+   "gexp-modules & ungexp"
+   '((bar) (foo))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp
+                 (with-imported-modules '((foo)) (gexp +)))
+               (ungexp-native
+                 (with-imported-modules '((bar)) (gexp -)))))))
expected-value: ((bar) (foo))
actual-value: ((bar) (foo))
result: PASS

test-name: gexp-modules & ungexp-splicing
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:632
source:
+ (test-equal
+   "gexp-modules & ungexp-splicing"
+   '((foo) (bar))
+   ((@@ (guix gexp) gexp-modules)
+    (gexp (foo (ungexp-splicing
+                 (list (with-imported-modules '((foo)) (gexp +))
+                       (with-imported-modules '((bar)) (gexp -))))))))
expected-value: ((foo) (bar))
actual-value: ((foo) (bar))
result: PASS

test-name: gexp-modules and literal Scheme object
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:638
source:
+ (test-equal
+   "gexp-modules and literal Scheme object"
+   '()
+   (gexp-modules #t))
expected-value: ()
actual-value: ()
result: PASS

test-name: gexp->derivation #:modules
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:642
source:
+ (test-assert
+   "gexp->derivation #:modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (gexp (begin
+                            (use-modules (guix build utils))
+                            (mkdir-p
+                              (string-append
+                                (ungexp output)
+                                "/guile/guix/nix"))
+                            #t)))
+             (drv (gexp->derivation
+                    "test-with-modules"
+                    build
+                    #:modules
+                    '((guix build utils)))))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & with-imported-modules
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:656
source:
+ (test-assert
+   "gexp->derivation & with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build ->
+                    (with-imported-modules
+                      '((guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build utils))
+                              (mkdir-p
+                                (string-append
+                                  (ungexp output)
+                                  "/guile/guix/nix"))
+                              #t))))
+             (drv (gexp->derivation "test-with-modules" build)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix"))))
+                (return (eq? (stat:type s) 'directory)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & nested with-imported-modules
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:671
source:
+ (test-assert
+   "gexp->derivation & nested with-imported-modules"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((build1
+               ->
+               (with-imported-modules
+                 '((guix build utils))
+                 (gexp (begin
+                         (use-modules (guix build utils))
+                         (mkdir-p
+                           (string-append (ungexp output) "/guile/guix/nix"))
+                         #t))))
+             (build2
+               ->
+               (with-imported-modules
+                 '((guix build bournish))
+                 (gexp (begin
+                         (use-modules
+                           (guix build bournish)
+                           (system base compile))
+                         (ungexp-native build1)
+                         (call-with-output-file
+                           (string-append (ungexp output) "/b")
+                           (lambda (port)
+                             (write (read-and-compile
+                                      (open-input-string "cd /foo")
+                                      #:from
+                                      %bournish-language
+                                      #:to
+                                      'scheme)
+                                    port)))))))
+             (drv (gexp->derivation "test-with-modules" build2)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (let* ((p (derivation->output-path drv))
+                     (s (stat (string-append p "/guile/guix/nix")))
+                     (b (string-append p "/b")))
+                (return
+                  (and (eq? (stat:type s) 'directory)
+                       (equal?
+                         '(chdir "/foo")
+                         (call-with-input-file b read)))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation & with-imported-module & computed module
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:700
source:
+ (test-assert
+   "gexp->derivation & with-imported-module & computed module"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((module
+               ->
+               (scheme-file
+                 "x"
+                 (gexp (begin
+                         (define-module (foo bar) #:export (the-answer))
+                         (define the-answer 42)))))
+             (build ->
+                    (with-imported-modules
+                      `(((foo bar) => ,module) (guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build utils) (foo bar))
+                              mkdir-p
+                              (call-with-output-file
+                                (ungexp output)
+                                (lambda (port) (write the-answer port)))))))
+             (drv (gexp->derivation "thing" build))
+             (out -> (derivation->output-path drv)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (return (= 42 (call-with-input-file out read)))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:references-graphs
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:722
source:
+ (test-assert
+   "gexp->derivation #:references-graphs"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((one (text-file "one" (random-text)))
+             (two (gexp->derivation
+                    "two"
+                    (gexp (symlink (ungexp one) (ungexp output "chbouib")))))
+             (build ->
+                    (with-imported-modules
+                      '((guix build store-copy) (guix build utils))
+                      (gexp (begin
+                              (use-modules (guix build store-copy))
+                              (with-output-to-file
+                                (ungexp output)
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "guile"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "one")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "one"
+                                           read-reference-graph))))
+                              (with-output-to-file
+                                (ungexp output "two")
+                                (lambda ()
+                                  (write (call-with-input-file
+                                           "two"
+                                           read-reference-graph))))))))
+             (drv (gexp->derivation
+                    "ref-graphs"
+                    build
+                    #:references-graphs
+                    `(("one" ,one)
+                      ("two" ,two "chbouib")
+                      ("guile" ,%bootstrap-guile))))
+             (ok? (built-derivations (list drv)))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (bash (interned-file
+                     (search-bootstrap-binary
+                       "bash"
+                       (%current-system))
+                     "bash"
+                     #:recursive?
+                     #t))
+             (g-one -> (derivation->output-path drv "one"))
+             (g-two -> (derivation->output-path drv "two"))
+             (g-guile -> (derivation->output-path drv)))
+            (return
+              (and ok?
+                   (equal?
+                     (call-with-input-file g-one read)
+                     (list one))
+                   (lset= string=?
+                          (call-with-input-file g-two read)
+                          (list one
+                                (derivation->output-path two "chbouib")))
+                   (lset= string=?
+                          (call-with-input-file g-guile read)
+                          (list (derivation->output-path guile-drv) bash)))))
+     #:guile-for-build
+     (%guile-for-build)))
random seed for tests: 1511544844
@ build-started /home/adfeno/Projetos/Software/guix/test-tmp/store/zc3qbmwanmv4ya7km7kqrv16nyzbhxn5-two.drv - i686-linux /home/adfeno/Projetos/Software/guix/test-tmp/var/log/guix/drvs/zc//3qbmwanmv4ya7km7kqrv16nyzbhxn5-two.drv.bz2
@ build-succeeded /home/adfeno/Projetos/Software/guix/test-tmp/store/zc3qbmwanmv4ya7km7kqrv16nyzbhxn5-two.drv -
@ build-started /home/adfeno/Projetos/Software/guix/test-tmp/store/f7wvmsjv9afia7x6xn98k7a048m7kl0z-ref-graphs.drv - i686-linux /home/adfeno/Projetos/Software/guix/test-tmp/var/log/guix/drvs/f7//wvmsjv9afia7x6xn98k7a048m7kl0z-ref-graphs.drv.bz2
@ build-succeeded /home/adfeno/Projetos/Software/guix/test-tmp/store/f7wvmsjv9afia7x6xn98k7a048m7kl0z-ref-graphs.drv -
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:766
source:
+ (test-assert
+   "gexp->derivation #:allowed-references"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "allowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:allowed-references
+                   (list "out" %bootstrap-guile))))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, specific output
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:778
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, specific output"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((in (gexp->derivation
+                   "thing"
+                   (gexp (begin
+                           (mkdir (ungexp output "ok"))
+                           (mkdir (ungexp output "not-ok"))))))
+             (drv (gexp->derivation
+                    "allowed-refs"
+                    (gexp (begin
+                            (pk (ungexp in "not-ok"))
+                            (mkdir (ungexp output))
+                            (chdir (ungexp output))
+                            (symlink (ungexp output) "self")
+                            (symlink (ungexp in "ok") "ok")))
+                    #:allowed-references
+                    (list "out" (gexp-input in "ok")))))
+            (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:allowed-references, disallowed
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:795
source:
+ (test-assert
+   "gexp->derivation #:allowed-references, disallowed"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "allowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:allowed-references
+                  '()))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/adfeno/Projetos/Software/guix/test-tmp/store/a2z0z3wpmy7xz8jdm4pczwif29k91z7h-allowed-refs.drv - i686-linux /home/adfeno/Projetos/Software/guix/test-tmp/var/log/guix/drvs/a2//z0z3wpmy7xz8jdm4pczwif29k91z7h-allowed-refs.drv.bz2
output (`/home/adfeno/Projetos/Software/guix/test-tmp/store/03akcng3wmrkkyvjwgmy5npnhj0smdfn-allowed-refs') is not allowed to refer to path `/home/adfeno/Projetos/Software/guix/test-tmp/store/ks70rh0nrqg2p48ps2ivgfga21j4vgrq-guile-bootstrap-2.0'
@ build-failed /home/adfeno/Projetos/Software/guix/test-tmp/store/a2z0z3wpmy7xz8jdm4pczwif29k91z7h-allowed-refs.drv - 1 output (`/home/adfeno/Projetos/Software/guix/test-tmp/store/03akcng3wmrkkyvjwgmy5npnhj0smdfn-allowed-refs') is not allowed to refer to path `/home/adfeno/Projetos/Software/guix/test-tmp/store/ks70rh0nrqg2p48ps2ivgfga21j4vgrq-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references, allowed
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:807
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references, allowed"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv (gexp->derivation
+                   "disallowed-refs"
+                   (gexp (begin
+                           (mkdir (ungexp output))
+                           (chdir (ungexp output))
+                           (symlink (ungexp output) "self")
+                           (symlink (ungexp %bootstrap-guile) "guile")))
+                   #:disallowed-references
+                   '())))
+           (built-derivations (list drv)))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation #:disallowed-references
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:819
source:
+ (test-assert
+   "gexp->derivation #:disallowed-references"
+   (let ((drv (run-with-store
+                %store
+                (gexp->derivation
+                  "disallowed-refs"
+                  (gexp (begin
+                          (mkdir (ungexp output))
+                          (chdir (ungexp output))
+                          (symlink (ungexp %bootstrap-guile) "guile")))
+                  #:disallowed-references
+                  (list %bootstrap-guile)))))
+     (guard (c ((nix-protocol-error? c) #t))
+            (build-derivations %store (list drv))
+            #f)))
@ build-started /home/adfeno/Projetos/Software/guix/test-tmp/store/5aa87vrlsiybz8av8v51nw9218gp3wbn-disallowed-refs.drv - i686-linux /home/adfeno/Projetos/Software/guix/test-tmp/var/log/guix/drvs/5a//a87vrlsiybz8av8v51nw9218gp3wbn-disallowed-refs.drv.bz2
output (`/home/adfeno/Projetos/Software/guix/test-tmp/store/3d2m11bzvpna2l6hm12a19rxqg7qizvs-disallowed-refs') is not allowed to refer to path `/home/adfeno/Projetos/Software/guix/test-tmp/store/ks70rh0nrqg2p48ps2ivgfga21j4vgrq-guile-bootstrap-2.0'
@ build-failed /home/adfeno/Projetos/Software/guix/test-tmp/store/5aa87vrlsiybz8av8v51nw9218gp3wbn-disallowed-refs.drv - 1 output (`/home/adfeno/Projetos/Software/guix/test-tmp/store/3d2m11bzvpna2l6hm12a19rxqg7qizvs-disallowed-refs') is not allowed to refer to path `/home/adfeno/Projetos/Software/guix/test-tmp/store/ks70rh0nrqg2p48ps2ivgfga21j4vgrq-guile-bootstrap-2.0'
actual-value: #t
result: PASS

test-name: gexp->script
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:839
source:
+ (test-assert
+   "gexp->script"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((n -> (random (expt 2 50)))
+             (exp ->
+                  (gexp (system*
+                          (string-append
+                            (ungexp %bootstrap-guile)
+                            "/bin/guile")
+                          "-c"
+                          (object->string '(display (expt (ungexp n) 2))))))
+             (drv (gexp->script
+                    "guile-thing"
+                    exp
+                    #:guile
+                    %bootstrap-guile))
+             (out -> (derivation->output-path drv))
+             (done (built-derivations (list drv))))
+            (let* ((pipe (open-input-pipe out))
+                   (str (get-string-all pipe)))
+              (return
+                (and (zero? (close-pipe pipe))
+                     (= (expt n 2) (string->number str))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: program-file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:856
source:
+ (test-assert
+   "program-file"
+   (run-with-store
+     %store
+     (let* ((n (random (expt 2 50)))
+            (exp (with-imported-modules
+                   '((guix build utils))
+                   (gexp (begin
+                           (use-modules (guix build utils))
+                           (display (ungexp n))))))
+            (file (program-file
+                    "program"
+                    exp
+                    #:guile
+                    %bootstrap-guile)))
+       (mlet* %store-monad
+              ((drv (lower-object file))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (let* ((pipe (open-input-pipe out))
+                       (str (get-string-all pipe)))
+                  (return
+                    (and (zero? (close-pipe pipe))
+                         (= n (string->number str))))))))
+     #:guile-for-build
+     (%guile-for-build)))
result: SKIP

test-name: scheme-file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:873
source:
+ (test-assert
+   "scheme-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello, world!"))
+            (scheme
+              (scheme-file
+                "bar"
+                (gexp (list "foo" (ungexp text))))))
+       (mlet* %store-monad
+              ((drv (lower-object scheme))
+               (text (lower-object text))
+               (out -> (derivation->output-path drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list drv))
+                (mlet %store-monad
+                      ((refs (references* out)))
+                      (return
+                        (and (equal? refs (list text))
+                             (equal?
+                               `(list "foo" ,text)
+                               (call-with-input-file out read))))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: text-file*
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:886
source:
+ (test-assert
+   "text-file*"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((drv (package->derivation %bootstrap-guile))
+             (guile -> (derivation->output-path drv))
+             (file (text-file "bar" "This is bar."))
+             (text (text-file*
+                     "foo"
+                     %bootstrap-guile
+                     "/bin/guile "
+                     (gexp-input %bootstrap-guile "out")
+                     "/bin/guile "
+                     drv
+                     "/bin/guile "
+                     file))
+             (done (built-derivations (list text)))
+             (out -> (derivation->output-path text))
+             (refs (references* out)))
+            (return
+              (and (lset= string=? refs (list guile file))
+                   (equal?
+                     (call-with-input-file out get-string-all)
+                     (string-append
+                       guile
+                       "/bin/guile "
+                       guile
+                       "/bin/guile "
+                       guile
+                       "/bin/guile "
+                       file)))))
+     #:guile-for-build
+     (package-derivation %store %bootstrap-guile)))
actual-value: #t
result: PASS

test-name: mixed-text-file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:909
source:
+ (test-assert
+   "mixed-text-file"
+   (run-with-store
+     %store
+     (mlet* %store-monad
+            ((file ->
+                   (mixed-text-file
+                     "mixed"
+                     "export PATH="
+                     %bootstrap-guile
+                     "/bin"))
+             (drv (lower-object file))
+             (out -> (derivation->output-path drv))
+             (guile-drv
+               (package->derivation %bootstrap-guile))
+             (guile -> (derivation->output-path guile-drv)))
+            (mbegin
+              %store-monad
+              (built-derivations (list drv))
+              (mlet %store-monad
+                    ((refs (references* out)))
+                    (return
+                      (and (string=?
+                             (string-append "export PATH=" guile "/bin")
+                             (call-with-input-file out get-string-all))
+                           (equal? refs (list guile)))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: gexp->derivation vs. %current-target-system
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:924
source:
+ (test-assert
+   "gexp->derivation vs. %current-target-system"
+   (let ((mval (gexp->derivation
+                 "foo"
+                 (gexp (begin
+                         (mkdir (ungexp output))
+                         (foo (ungexp-native gnu-make))))
+                 #:target
+                 #f)))
+     (parameterize
+       ((%current-target-system "fooooo"))
+       (derivation? (run-with-store %store mval)))))
actual-value: #t
result: PASS

test-name: lower-object
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:935
source:
+ (test-assert
+   "lower-object"
+   (run-with-store
+     %store
+     (mlet %store-monad
+           ((drv1 (lower-object %bootstrap-guile))
+            (drv2 (lower-object (package-source coreutils)))
+            (item (lower-object (plain-file "foo" "Hello!"))))
+           (return
+             (and (derivation? drv1)
+                  (derivation? drv2)
+                  (store-path? item))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: lower-object, computed-file
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:942
source:
+ (test-assert
+   "lower-object, computed-file"
+   (run-with-store
+     %store
+     (let* ((text (plain-file "foo" "Hello!"))
+            (exp (gexp (begin
+                         (mkdir (ungexp output))
+                         (symlink
+                           (ungexp %bootstrap-guile)
+                           (string-append (ungexp output) "/guile"))
+                         (symlink
+                           (ungexp text)
+                           (string-append (ungexp output) "/text")))))
+            (computed (computed-file "computed" exp)))
+       (mlet* %store-monad
+              ((text (lower-object text))
+               (guile-drv (lower-object %bootstrap-guile))
+               (comp-drv (lower-object computed))
+               (comp -> (derivation->output-path comp-drv)))
+              (mbegin
+                %store-monad
+                (built-derivations (list comp-drv))
+                (return
+                  (and (string=?
+                         (readlink (string-append comp "/guile"))
+                         (derivation->output-path guile-drv))
+                       (string=?
+                         (readlink (string-append comp "/text"))
+                         text))))))
+     #:guile-for-build
+     (%guile-for-build)))
actual-value: #t
result: PASS

test-name: lower-object & gexp-input-error?
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:961
source:
+ (test-assert
+   "lower-object & gexp-input-error?"
+   (guard (c ((gexp-input-error? c)
+              (gexp-error-invalid-input c)))
+          (run-with-store
+            %store
+            (lower-object (current-module))
+            #:guile-for-build
+            (%guile-for-build))))
actual-value: #<directory (test-gexp) 9d4caa0>
result: PASS

test-name: printer
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:968
source:
+ (test-assert
+   "printer"
+   (string-match
+     "^#<gexp \\(string-append .*#<package coreutils.* \"/bin/uname\"\\) [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (string-append (ungexp coreutils) "/bin/uname")))))))
actual-value: #("#<gexp (string-append #<gexp-input #<package coreutils@8.27 gnu/packages/base.scm:294 a983120>:out> \"/bin/uname\") b3e5018>" (0 . 122))
result: PASS

test-name: printer vs. ungexp-splicing
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:977
source:
+ (test-assert
+   "printer vs. ungexp-splicing"
+   (string-match
+     "^#<gexp .* [[:xdigit:]]+>$"
+     (with-output-to-string
+       (lambda ()
+         (write (gexp (begin (ungexp-splicing (gexp ())))))))))
actual-value: #("#<gexp  ac08570>" (0 . 16))
result: PASS

test-name: sugar
location: /home/adfeno/Projetos/Software/guix/tests/gexp.scm:985
source:
+ (test-equal
+   "sugar"
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z))))
+   '(gexp (foo (ungexp bar)
+               (ungexp baz "out")
+               (ungexp (chbouib 42))
+               (ungexp-splicing (list x y z))
+               (ungexp-native foo)
+               (ungexp-native foo "out")
+               (ungexp-native (chbouib 42))
+               (ungexp-native-splicing (list x y z)))))
expected-value: (gexp (foo (ungexp bar) (ungexp baz "out") (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo "out") (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
actual-value: (gexp (foo (ungexp bar) (ungexp baz "out") (ungexp (chbouib 42)) (ungexp-splicing (list x y z)) (ungexp-native foo) (ungexp-native foo "out") (ungexp-native (chbouib 42)) (ungexp-native-splicing (list x y z))))
result: PASS


FAIL: tests/syscalls
====================

test-name: mount, ENOENT
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/guix/tests/syscalls.scm:57
source:
+ (test-assert
+   "mount-points"
+   (any (cute member <> (mount-points))
+        '("/" "/proc" "/sys" "/dev")))
actual-value: ("/" "/sys/fs/cgroup" "/sys/fs/fuse/connections" "/sys/kernel/debug" "/sys/kernel/security" "/run/lock" "/run/shm" "/run/user" "/sys/fs/pstore" "/home" "/proc/sys/fs/binfmt_misc" "/sys/fs/cgroup/systemd" "/run/user/1000/gvfs")
result: PASS

test-name: swapon, ENOENT/EPERM
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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" "eth0" "wlan0")
result: PASS

test-name: network-interface-names
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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: #f
result: FAIL

test-name: read-utmpx, EOF
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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))))
result: SKIP


SKIP: tests/gremlin
===================

test-name: elf-dynamic-info-needed, executable
location: /home/adfeno/Projetos/Software/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/adfeno/Projetos/Software/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



[-- Attachment #3: Type: text/plain, Size: 590 bytes --]


-- 
- https://libreplanet.org/wiki/User:Adfeno
- Palestrante e consultor sobre /software/ livre (não confundir com
  gratis).
- "WhatsApp"? Ele não é livre. Por favor, veja formas de se comunicar
  instantaneamente comigo no endereço abaixo.
- Contato: https://libreplanet.org/wiki/User:Adfeno#vCard
- Arquivos comuns aceitos (apenas sem DRM): Corel Draw, Microsoft
  Office, MP3, MP4, WMA, WMV.
- Arquivos comuns aceitos e enviados: CSV, GNU Dia, GNU Emacs Org, GNU
  GIMP, Inkscape SVG, JPG, LibreOffice (padrão ODF), OGG, OPUS, PDF
  (apenas sem DRM), PNG, TXT, WEBM.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#29426: guix: "make check" test "utmpx-entries" fails
  2017-11-24 17:09 bug#29426: guix: "make check" test "utmpx-entries" fails Adonay Felipe Nogueira
@ 2017-11-24 20:58 ` Ludovic Courtès
  2017-11-25 11:30   ` Adonay Felipe Nogueira
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2017-11-24 20:58 UTC (permalink / raw)
  To: Adonay Felipe Nogueira; +Cc: 29426

Hello,

Adonay Felipe Nogueira <adfeno@hyperbola.info> skribis:

> test-name: utmpx-entries
> location: /home/adfeno/Projetos/Software/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: #f
> result: FAIL

Can you try this in a REPL?

You can run:

  ./pre-inst-env guile

and then:

  ,use (guix build syscalls)
  (utmpx-entries)

TIA!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#29426: guix: "make check" test "utmpx-entries" fails
  2017-11-24 20:58 ` Ludovic Courtès
@ 2017-11-25 11:30   ` Adonay Felipe Nogueira
  2017-11-25 17:14     ` Ludovic Courtès
  0 siblings, 1 reply; 5+ messages in thread
From: Adonay Felipe Nogueira @ 2017-11-25 11:30 UTC (permalink / raw)
  To: 29426

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

I did the following:

--8<---------------cut here---------------start------------->8---
guix environment guix
./bootstrap
./configure --localstatedir="/var"
./pre-inst-env guile
--8<---------------cut here---------------end--------------->8---

And inside Guile REPL:

--8<---------------cut here---------------start------------->8---
,use (guix build syscalls)
(utmpx-entries)
--8<---------------cut here---------------end--------------->8---

And I get what is attached in "utmp-1.txt".

The same result is observed when I append `--ad-hoc guile' to `guix
environment guix' (I attempted a `diff' between the results of two
sequence of commands and it didn't report anything).


[-- Attachment #2: utmpx-1.txt --]
[-- Type: text/plain, Size: 2514 bytes --]

$1 = (#<<utmpx-entry> type: 2 pid: 0 line: "~" id: (126 126 0 0) user: "reboot" host: "4.9.59-gnu.pae" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 365756000 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 1 pid: 50 line: "~" id: (126 126 0 0) user: "runlevel" host: "4.9.59-gnu.pae" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 422713000 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1058 line: "tty4" id: (52 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1058 time: #<time type: time-utc nanosecond: 0 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1059 line: "tty5" id: (53 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1059 time: #<time type: time-utc nanosecond: 0 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1067 line: "tty2" id: (50 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1067 time: #<time type: time-utc nanosecond: 0 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1068 line: "tty3" id: (51 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1068 time: #<time type: time-utc nanosecond: 0 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1071 line: "tty6" id: (54 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1071 time: #<time type: time-utc nanosecond: 0 second: 1511606591> address: (0 0 0 0)> #<<utmpx-entry> type: 6 pid: 1274 line: "tty1" id: (49 0 0 0) user: "LOGIN" host: #f termination: 0 exit: 0 session: 1274 time: #<time type: time-utc nanosecond: 0 second: 1511606597> address: (0 0 0 0)> #<<utmpx-entry> type: 7 pid: 1816 line: ":0" id: (58 48 0 0) user: "adfeno" host: ":0" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 414645000 second: 1511606622> address: (0 0 0 0)> #<<utmpx-entry> type: 7 pid: 2085 line: "pts/1" id: (47 49 0 0) user: "adfeno" host: ":0" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 38087000 second: 1511606641> address: (0 0 0 0)> #<<utmpx-entry> type: 8 pid: 0 line: "pts/3" id: (47 51 0 0) user: "adfeno" host: #f termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 125808000 second: 1511606671> address: (0 0 0 0)> #<<utmpx-entry> type: 8 pid: 1288 line: "pts/0" id: (47 48 0 0) user: #f host: ":0:S.0" termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 0 second: 1511606662> address: (0 0 0 0)>)

[-- Attachment #3: Type: text/plain, Size: 248 bytes --]


2017-11-24T21:58:36+0100 Ludovic Courtès wrote:
> Hello,
>
>
> Can you try this in a REPL?
>
> You can run:
>
>   ./pre-inst-env guile
>
> and then:
>
>   ,use (guix build syscalls)
>   (utmpx-entries)
>
> TIA!
>
> Ludo’.
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#29426: guix: "make check" test "utmpx-entries" fails
  2017-11-25 11:30   ` Adonay Felipe Nogueira
@ 2017-11-25 17:14     ` Ludovic Courtès
  2017-11-30 22:51       ` Adonay Felipe Nogueira
  0 siblings, 1 reply; 5+ messages in thread
From: Ludovic Courtès @ 2017-11-25 17:14 UTC (permalink / raw)
  To: Adonay Felipe Nogueira; +Cc: 29426-done

Hi,

Adonay Felipe Nogueira <adfeno@hyperbola.info> skribis:

> #<<utmpx-entry> type: 8 pid: 0 line: "pts/3" id: (47 51 0 0) user: "adfeno" host: #f termination: 0 exit: 0 session: 0 time: #<time type: time-utc nanosecond: 125808000 second: 1511606671> address: (0 0 0 0)>

This is the culprit: its ‘pid’ is 0, but its type is not BOOT_TIME as
the test expects.  Instead, it’s DEAD_PROCESS (8).

Fixed in commit 4aac8d059a2bec9f075ceea2a089ca029a71912c.

Thanks!

Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* bug#29426: guix: "make check" test "utmpx-entries" fails
  2017-11-25 17:14     ` Ludovic Courtès
@ 2017-11-30 22:51       ` Adonay Felipe Nogueira
  0 siblings, 0 replies; 5+ messages in thread
From: Adonay Felipe Nogueira @ 2017-11-30 22:51 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: 29426-done

Thank you very much. It works nicely now. ;)

2017-11-25T18:14:36+0100 Ludovic Courtès wrote:
> Hi,
>
>
> This is the culprit: its ‘pid’ is 0, but its type is not BOOT_TIME as
> the test expects.  Instead, it’s DEAD_PROCESS (8).
>
> Fixed in commit 4aac8d059a2bec9f075ceea2a089ca029a71912c.
>
> Thanks!
>
> Ludo’.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2017-11-30 22:52 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-11-24 17:09 bug#29426: guix: "make check" test "utmpx-entries" fails Adonay Felipe Nogueira
2017-11-24 20:58 ` Ludovic Courtès
2017-11-25 11:30   ` Adonay Felipe Nogueira
2017-11-25 17:14     ` Ludovic Courtès
2017-11-30 22:51       ` Adonay Felipe Nogueira

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.