From: David McInnis <davidm@eagles.ewu.edu>
To: 24687@debbugs.gnu.org
Subject: bug#24687: Tests fail building on Arch Linux
Date: Thu, 13 Oct 2016 14:39:57 -0700 [thread overview]
Message-ID: <9ae8b5dc-d877-b30d-301c-9d250383dd80@eagles.ewu.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 769 bytes --]
Hi, I tried building guix from the AUR:
https://aur.archlinux.org/packages/guix/ However, it failed and asked
me to email you the results.
Please let me know if there is anything else you need from me.
-Dave
============================================================================
Testsuite summary for GNU Guix 0.11.0
============================================================================
# TOTAL: 570
# PASS: 562
# SKIP: 5
# XFAIL: 0
# FAIL: 3
# XPASS: 0
# ERROR: 0
============================================================================
See ./test-suite.log
Please report to bug-guix@gnu.org
============================================================================
FAIL: tests/guix-download.sh
FAIL: tests/store.scm
FAIL: tests/lint.scm
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: test-suite.log --]
[-- Type: text/x-log; name="test-suite.log", Size: 165435 bytes --]
=======================================
GNU Guix 0.11.0: ./test-suite.log
=======================================
# TOTAL: 570
# PASS: 562
# SKIP: 5
# XFAIL: 0
# FAIL: 3
# XPASS: 0
# ERROR: 0
.. contents:: :depth: 2
SKIP: tests/base32
==================
sh: nix-hash: command not found
test-name: bytevector->base32-string
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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
FAIL: tests/store
=================
test-name: store-path-hash-part
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:51
source:
+ (test-equal
+ "store-path-hash-part"
+ "283gqy39v3g9dxjy26rynl0zls82fmcg"
+ (store-path-hash-part
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
actual-value: 283gqy39v3g9dxjy26rynl0zls82fmcg
result: PASS
test-name: store-path-hash-part #f
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:57
source:
+ (test-equal
+ "store-path-hash-part #f"
+ #f
+ (store-path-hash-part
+ (string-append
+ (%store-prefix)
+ "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: #f
actual-value: #f
result: PASS
test-name: store-path-package-name
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:63
source:
+ (test-equal
+ "store-path-package-name"
+ "guile-2.0.7"
+ (store-path-package-name
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7")))
expected-value: guile-2.0.7
actual-value: guile-2.0.7
result: PASS
test-name: store-path-package-name #f
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:69
source:
+ (test-equal
+ "store-path-package-name #f"
+ #f
+ (store-path-package-name
+ "/foo/bar/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
expected-value: #f
actual-value: #f
result: PASS
test-name: direct-store-path?
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:74
source:
+ (test-assert
+ "direct-store-path?"
+ (and (direct-store-path?
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7"))
+ (not (direct-store-path?
+ (string-append
+ (%store-prefix)
+ "/283gqy39v3g9dxjy26rynl0zls82fmcg-guile-2.0.7/bin/guile")))
+ (not (direct-store-path? (%store-prefix)))))
actual-value: #t
result: PASS
test-name: valid-path? live
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:86
source:
+ (test-assert
+ "valid-path? live"
+ (let ((p (add-text-to-store %store "hello" "hello, world")))
+ (valid-path? %store p)))
actual-value: #t
result: PASS
test-name: valid-path? false
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:90
source:
+ (test-assert
+ "valid-path? false"
+ (not (valid-path?
+ %store
+ (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\e)
+ "-foobar"))))
actual-value: #t
result: PASS
test-name: valid-path? error
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:95
source:
+ (test-assert
+ "valid-path? error"
+ (with-store
+ s
+ (guard (c ((nix-protocol-error? c) #t))
+ (valid-path? s "foo")
+ #f)))
actual-value: #t
result: PASS
test-name: valid-path? recovery
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:101
source:
+ (test-assert
+ "valid-path? recovery"
+ (with-store
+ s
+ (let-syntax ((true-if-error
+ (syntax-rules ()
+ ((_ exp)
+ (guard (c ((nix-protocol-error? c) #t)) exp #f)))))
+ (and (true-if-error (valid-path? s "foo"))
+ (true-if-error (valid-path? s "bar"))
+ (true-if-error (valid-path? s "baz"))
+ (true-if-error (valid-path? s "chbouib"))
+ (valid-path?
+ s
+ (add-text-to-store s "valid" "yeah"))))))
actual-value: #t
result: PASS
test-name: hash-part->path
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:118
source:
+ (test-assert
+ "hash-part->path"
+ (let ((p (add-text-to-store %store "hello" "hello, world")))
+ (equal?
+ (hash-part->path %store (store-path-hash-part p))
+ p)))
actual-value: #t
result: PASS
test-name: dead-paths
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:123
source:
+ (test-assert
+ "dead-paths"
+ (let ((p (add-text-to-store
+ %store
+ "random-text"
+ (random-text))))
+ (->bool (member p (dead-paths %store)))))
random seed for tests: 1476382008
finding garbage collector roots...
removing stale temporary roots file `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/temproots/14090'
determining live/dead paths...
actual-value: #t
result: PASS
test-name: permanent root
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:144
source:
+ (test-assert
+ "permanent root"
+ (let* ((p (with-store
+ store
+ (let ((p (add-text-to-store
+ store
+ "random-text"
+ (random-text))))
+ (add-permanent-root p)
+ (add-permanent-root p)
+ p))))
+ (and (member p (live-paths %store))
+ (begin
+ (remove-permanent-root p)
+ (->bool (member p (dead-paths %store)))))))
finding garbage collector roots...
determining live/dead paths...
finding garbage collector roots...
determining live/dead paths...
actual-value: #t
result: PASS
test-name: dead path can be explicitly collected
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:156
source:
+ (test-assert
+ "dead path can be explicitly collected"
+ (let ((p (add-text-to-store
+ %store
+ "random-text"
+ (random-text)
+ '())))
+ (let-values
+ (((paths freed) (delete-paths %store (list p))))
+ (and (equal? paths (list p))
+ (> freed 0)
+ (not (file-exists? p))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS
test-name: add-text-to-store vs. delete-paths
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:164
source:
+ (test-assert
+ "add-text-to-store vs. delete-paths"
+ (with-store
+ store
+ (let* ((text (random-text))
+ (path (add-text-to-store store "delete-me" text))
+ (deleted (delete-paths store (list path)))
+ (path2 (add-text-to-store store "delete-me" text)))
+ (and (string=? path path2)
+ (equal? deleted (list path))
+ (valid-path? store path)
+ (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/temproots/14261'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/f9d98yxpj5jp251ycb1r3yq6a66m44w1-delete-me'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 10.11 MiB
actual-value: #t
result: PASS
test-name: add-to-store vs. delete-paths
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:177
source:
+ (test-assert
+ "add-to-store vs. delete-paths"
+ (with-store
+ store
+ (let* ((file (search-path %load-path "guix.scm"))
+ (path (add-to-store store "delete-me" #t "sha256" file))
+ (deleted (delete-paths store (list path)))
+ (path2 (add-to-store store "delete-me" #t "sha256" file)))
+ (and (string=? path path2)
+ (equal? deleted (list path))
+ (valid-path? store path)
+ (file-exists? path)))))
finding garbage collector roots...
removing stale temporary roots file `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/temproots/14300'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/n8mf5dz75dq1nas7074bmvpcyzllcfvz-delete-me'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 19.67 MiB
actual-value: #t
result: PASS
test-name: references
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:189
source:
+ (test-assert
+ "references"
+ (let* ((t1 (add-text-to-store
+ %store
+ "random1"
+ (random-text)))
+ (t2 (add-text-to-store
+ %store
+ "random2"
+ (random-text)
+ (list t1))))
+ (and (equal? (list t1) (references %store t2))
+ (equal? (list t2) (referrers %store t1))
+ (null? (references %store t1))
+ (null? (referrers %store t2)))))
actual-value: #t
result: PASS
test-name: references/substitutes missing reference info
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:199
source:
+ (test-assert
+ "references/substitutes missing reference info"
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (guard (c ((nix-protocol-error? c) #t))
+ (let* ((b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--help")
+ #:inputs
+ `((,b)))))
+ (references/substitutes
+ s
+ (list (derivation->output-path d) b))
+ #f))))
actual-value: #t
result: PASS
test-name: references/substitutes with substitute info
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:211
source:
+ (test-assert
+ "references/substitutes with substitute info"
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #t)
+ (let* ((t1 (add-text-to-store s "random1" (random-text)))
+ (t2 (add-text-to-store
+ s
+ "random2"
+ (random-text)
+ (list t1)))
+ (t3 (add-text-to-store
+ s
+ "build"
+ "echo -n $t2 > $out"))
+ (b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ `("-e" ,t3)
+ #:inputs
+ `((,b) (,t3) (,t2))
+ #:env-vars
+ `(("t2" unquote t2))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (sha256 => (sha256 (string->utf8 t2)))
+ (references => (list t2))
+ (equal?
+ (references/substitutes s (list o t3 t2 t1))
+ `((,t2) () (,t1) ()))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
actual-value: #t
result: PASS
test-name: substitutable-path-info when substitutes are turned off
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:235
source:
+ (test-equal
+ "substitutable-path-info when substitutes are turned off"
+ '()
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--version")
+ #:inputs
+ `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (substitutable-path-info s (list o))))))
expected-value: ()
actual-value: ()
result: PASS
test-name: substitutable-paths when substitutes are turned off
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:248
source:
+ (test-equal
+ "substitutable-paths when substitutes are turned off"
+ '()
+ (with-store
+ s
+ (set-build-options s #:use-substitutes? #f)
+ (let* ((b (add-to-store
+ s
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ s
+ "the-thing"
+ b
+ '("--version")
+ #:inputs
+ `((,b))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (substitutable-paths s (list o))))))
expected-value: ()
actual-value: ()
result: PASS
test-name: requisites
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:261
source:
+ (test-assert
+ "requisites"
+ (let* ((t1 (add-text-to-store
+ %store
+ "random1"
+ (random-text)
+ '()))
+ (t2 (add-text-to-store
+ %store
+ "random2"
+ (random-text)
+ (list t1)))
+ (t3 (add-text-to-store
+ %store
+ "random3"
+ (random-text)
+ (list t2)))
+ (t4 (add-text-to-store
+ %store
+ "random4"
+ (random-text)
+ (list t1 t3))))
+ (define (same? x y)
+ (and (= (length x) (length y))
+ (lset= equal? x y)))
+ (and (same? (requisites %store (list t1)) (list t1))
+ (same? (requisites %store (list t2))
+ (list t1 t2))
+ (same? (requisites %store (list t3))
+ (list t1 t2 t3))
+ (same? (requisites %store (list t4))
+ (list t1 t2 t3 t4))
+ (same? (requisites %store (list t1 t2 t3 t4))
+ (list t1 t2 t3 t4)))))
actual-value: #t
result: PASS
test-name: derivers
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:281
source:
+ (test-assert
+ "derivers"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (equal?
+ (query-derivation-outputs
+ %store
+ (derivation-file-name d))
+ (list o))
+ (equal?
+ (valid-derivers %store o)
+ (list (derivation-file-name d))))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/laf4b8fq1zk61mf18r0mc4mkh6cv0fzy-the-thing.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/la//f4b8fq1zk61mf18r0mc4mkh6cv0fzy-the-thing.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/laf4b8fq1zk61mf18r0mc4mkh6cv0fzy-the-thing.drv -
actual-value: #t
result: PASS
test-name: topologically-sorted, one item
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:297
source:
+ (test-assert
+ "topologically-sorted, one item"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (s (topologically-sorted %store (list d))))
+ (equal? s (list a b c d))))
warning: SQLite database is busy
actual-value: #t
result: PASS
test-name: topologically-sorted, several items
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:305
source:
+ (test-assert
+ "topologically-sorted, several items"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (s1 (topologically-sorted %store (list d a c b)))
+ (s2 (topologically-sorted %store (list b d c a b d))))
+ (equal? s1 s2 (list a b c d))))
actual-value: #t
result: PASS
test-name: topologically-sorted, more difficult
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:314
source:
+ (test-assert
+ "topologically-sorted, more difficult"
+ (let* ((a (add-text-to-store %store "a" "a"))
+ (b (add-text-to-store %store "b" "b" (list a)))
+ (c (add-text-to-store %store "c" "c" (list b)))
+ (d (add-text-to-store %store "d" "d" (list c)))
+ (w (add-text-to-store %store "w" "w"))
+ (x (add-text-to-store %store "x" "x" (list w)))
+ (y (add-text-to-store %store "y" "y" (list x d)))
+ (s1 (topologically-sorted %store (list y)))
+ (s2 (topologically-sorted %store (list c y)))
+ (s3 (topologically-sorted
+ %store
+ (cons y (references %store y)))))
+ (let* ((x-then-d?
+ (equal? (references %store y) (list x d))))
+ (and (equal?
+ s1
+ (if x-then-d?
+ (list w x a b c d y)
+ (list a b c d w x y)))
+ (equal?
+ s2
+ (if x-then-d?
+ (list a b c w x d y)
+ (list a b c d w x y)))
+ (lset= string=? s1 s3)))))
actual-value: #t
result: PASS
test-name: current-build-output-port, UTF-8
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:338
source:
+ (test-assert
+ "current-build-output-port, UTF-8"
+ (string-contains
+ (with-fluids
+ ((%default-port-encoding "UTF-8"))
+ (call-with-output-string
+ (lambda (port)
+ (parameterize
+ ((current-build-output-port port))
+ (let* ((s "Here\u2019s a Greek letter: \u03bb.")
+ (d (build-expression->derivation
+ %store
+ "foo"
+ `(display ,s)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list d))))))))
+ "Here\u2019s a Greek letter: \u03bb."))
actual-value: 253
result: PASS
test-name: current-build-output-port, UTF-8 + garbage
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:354
source:
+ (test-assert
+ "current-build-output-port, UTF-8 + garbage"
+ (string-contains
+ (with-fluids
+ ((%default-port-encoding "UTF-8"))
+ (call-with-output-string
+ (lambda (port)
+ (parameterize
+ ((current-build-output-port port))
+ (let ((d (build-expression->derivation
+ %store
+ "foo"
+ `(begin
+ (use-modules (rnrs io ports))
+ (display "garbage: ")
+ (put-bytevector (current-output-port) #vu8(128))
+ (display "lambda: \u03bb\n"))
+ #:guile-for-build
+ (package-derivation %store %bootstrap-guile))))
+ (guard (c ((nix-protocol-error? c) #t))
+ (build-derivations %store (list d))))))))
+ "garbage: ?lambda: \u03bb"))
actual-value: 253
result: PASS
test-name: log-file, derivation
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:374
source:
+ (test-assert
+ "log-file, derivation"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s)))))
+ (and (build-derivations %store (list d))
+ (file-exists?
+ (pk (log-file %store (derivation-file-name d)))))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ggl40nyk0dimjihvv3allfxq5ix9zkyr-the-thing.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/gg//l40nyk0dimjihvv3allfxq5ix9zkyr-the-thing.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ggl40nyk0dimjihvv3allfxq5ix9zkyr-the-thing.drv -
;;; ("/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/gg/l40nyk0dimjihvv3allfxq5ix9zkyr-the-thing.drv.bz2")
actual-value: #t
result: PASS
test-name: log-file, output file name
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:386
source:
+ (test-assert
+ "log-file, output file name"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (file-exists? (pk (log-file %store o)))
+ (string=?
+ (log-file %store (derivation-file-name d))
+ (log-file %store o)))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/1ayjm0aax4isgcb4ynb1dh46nfsvxsg3-the-thing.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/1a//yjm0aax4isgcb4ynb1dh46nfsvxsg3-the-thing.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/1ayjm0aax4isgcb4ynb1dh46nfsvxsg3-the-thing.drv -
;;; ("/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/1a/yjm0aax4isgcb4ynb1dh46nfsvxsg3-the-thing.drv.bz2")
actual-value: #t
result: PASS
test-name: no substitutes
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:401
source:
+ (test-assert
+ "no substitutes"
+ (with-store
+ s
+ (let* ((d1 (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))
+ (d2 (package-derivation
+ s
+ %bootstrap-glibc
+ (%current-system)))
+ (o (map derivation->output-path (list d1 d2))))
+ (set-build-options s #:use-substitutes? #f)
+ (and (not (has-substitutes? s (derivation-file-name d1)))
+ (not (has-substitutes? s (derivation-file-name d2)))
+ (null? (substitutable-paths s o))
+ (null? (substitutable-path-info s o))))))
actual-value: #t
result: PASS
test-name: build-things with output path
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:412
source:
+ (test-assert
+ "build-things with output path"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (set-build-options s #:use-substitutes? #f)
+ (build-things s (list o))
+ (not (valid-path? s o)))))
actual-value: #t
result: PASS
test-name: substitute query
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:432
source:
+ (test-assert
+ "substitute query"
+ (with-store
+ s
+ (let* ((d (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system)))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (false-if-exception
+ (delete-file-recursively
+ (string-append
+ (getenv "XDG_CACHE_HOME")
+ "/guix/substitute")))
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (equal?
+ (list o)
+ (substitutable-paths s (list o)))
+ (match (pk 'spi (substitutable-path-info s (list o)))
+ (((? substitutable? s))
+ (and (string=?
+ (substitutable-deriver s)
+ (derivation-file-name d))
+ (null? (substitutable-references s))
+ (equal? (substitutable-nar-size s) 1234)))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
;;; (spi (#<<substitutable> path: "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ixfn9w693z8gzcknavq93ppabwqds527-guile-bootstrap-2.0" deriver: "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/71glry64pwd7dlarjkmkphnng15fcs5z-guile-bootstrap-2.0.drv" refs: () dl-size: 0 nar-size: 1234>))
actual-value: #t
result: PASS
test-name: substitute query, alternating URLs
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:456
source:
+ (test-assert
+ "substitute query, alternating URLs"
+ (let* ((d (with-store
+ s
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (false-if-exception
+ (delete-file-recursively
+ (string-append
+ (getenv "XDG_CACHE_HOME")
+ "/guix/substitute")))
+ (and (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (has-substitutes? s o))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (list "http://does-not-exist"))
+ (not (has-substitutes? s o)))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (has-substitutes? s o))
+ (with-store
+ s
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ '())
+ (not (has-substitutes? s o)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
substitute: Backtrace:
substitute: In ice-9/boot-9.scm:
substitute: 160: 9 [catch #t #<catch-closure 55973c07fdc0> ...]
substitute: In unknown file:
substitute: ?: 8 [apply-smob/1 #<catch-closure 55973c07fdc0>]
substitute: In ice-9/boot-9.scm:
substitute: 66: 7 [call-with-prompt prompt0 ...]
substitute: In ice-9/eval.scm:
substitute: 432: 6 [eval # #]
substitute: In ice-9/boot-9.scm:
substitute: 2404: 5 [save-module-excursion #<procedure 55973c09f900 at ice-9/boot-9.scm:4051:3 ()>]
substitute: 4056: 4 [#<procedure 55973c09f900 at ice-9/boot-9.scm:4051:3 ()>]
substitute: 1727: 3 [%start-stack load-stack ...]
substitute: 1732: 2 [#<procedure 55973c0b3bd0 ()>]
substitute: In unknown file:
substitute: ?: 1 [primitive-load "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/scripts/guix"]
substitute: In guix/ui.scm:
substitute: 1209: 0 [run-guix-command substitute "--query"]
substitute:
substitute: guix/ui.scm:1209:6: In procedure run-guix-command:
substitute: guix/ui.scm:1209:6: unmatched line "<html><head><meta http-equiv=\"refresh\" content=\"0;url=http://webhelper.centurylink.com/index.php?origURL=http://does-not-exist/nix-cache-info&bc=\"/></head><body><script type=\"text/javascript\">window.location=\"http://webhelper.centurylink.com/index.php?origURL=\"+escape(window.location)+\"&r=\"+escape(document.referrer)+\"&bc=\";</script></body></html>"
actual-value: #f
actual-error:
+ (srfi-34
+ #<condition &nix-protocol-error [message: "substituter `substitute' died unexpectedly" status: 1] 55cb734910f0>)
result: FAIL
test-name: substitute
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:488
source:
+ (test-assert
+ "substitute"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (exit 1) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-substitute
+ d
+ c
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (build-derivations s (list d))
+ (equal?
+ c
+ (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w4ldk88f711yjvhlxwcbv1nabj3id6kg-substitute-me /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w4ldk88f711yjvhlxwcbv1nabj3id6kg-substitute-me (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w4ldk88f711yjvhlxwcbv1nabj3id6kg-substitute-me
actual-value: #t
result: PASS
test-name: substitute + build-things with output path
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:507
source:
+ (test-assert
+ "substitute + build-things with output path"
+ (with-store
+ s
+ (let* ((c (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me"
+ `(call-with-output-file
+ %output
+ (lambda (p) (exit 1) (display ,c p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-substitute
+ d
+ c
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (build-things s (list o))
+ (valid-path? s o)
+ (equal?
+ c
+ (call-with-input-file o get-string-all)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/rm9hkckch0fw159ivnz6ij3yfh69541w-substitute-me /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/rm9hkckch0fw159ivnz6ij3yfh69541w-substitute-me (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
@ substituter-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/rm9hkckch0fw159ivnz6ij3yfh69541w-substitute-me
actual-value: #t
result: PASS
test-name: substitute, corrupt output hash
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:527
source:
+ (test-assert
+ "substitute, corrupt output hash"
+ (with-store
+ s
+ (let* ((c "hello, world")
+ (d (build-expression->derivation
+ s
+ "corrupt-substitute"
+ `(mkdir %output)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-substitute
+ d
+ c
+ (sha256 => (make-bytevector 32 0))
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:fallback?
+ #f
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (guard (c ((nix-protocol-error? c)
+ (pk 'corrupt c)
+ (not (zero? (nix-protocol-error-status c)))))
+ (build-derivations s (list d))
+ #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/5c513fd7zhb1scc0mf8678j0nkvq7m9l-corrupt-substitute /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/5c513fd7zhb1scc0mf8678j0nkvq7m9l-corrupt-substitute (1KiB installed)...
\r^[[K example.nar 128B 0B/s 00:00 [####################] 100.0%
@ substituter-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/5c513fd7zhb1scc0mf8678j0nkvq7m9l-corrupt-substitute 0 hash mismatch in downloaded path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/5c513fd7zhb1scc0mf8678j0nkvq7m9l-corrupt-substitute': expected 0000000000000000000000000000000000000000000000000000000000000000, got b8f73a6eb280e63169b1de2a5b5e154676fe1ada685f1e5c7183cbb2c1dcd535
;;; (corrupt #<condition &nix-protocol-error [message: "some substitutes for the outputs of derivation `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/sm3by4gp5hgrzyab6an8x1srkw0lhqrf-corrupt-substitute.drv' failed (usually happens due to networking issues); try `--fallback' to build derivation from source " status: 1] 55cb733d2630>)
actual-value: #t
result: PASS
test-name: substitute --fallback
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:557
source:
+ (test-assert
+ "substitute --fallback"
+ (with-store
+ s
+ (let* ((t (random-text))
+ (d (build-expression->derivation
+ s
+ "substitute-me-not"
+ `(call-with-output-file
+ %output
+ (lambda (p) (display ,t p)))
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (o (derivation->output-path d)))
+ (with-derivation-narinfo
+ d
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls))
+ (and (has-substitutes? s o)
+ (guard (c ((nix-protocol-error? c)
+ (set-build-options
+ s
+ #:use-substitutes?
+ #t
+ #:substitute-urls
+ (%test-substitute-urls)
+ #:fallback?
+ #t)
+ (and (build-derivations s (list d))
+ (equal?
+ t
+ (call-with-input-file o get-string-all)))))
+ (build-derivations s (list d))
+ #f))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
@ substituter-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/substituter-data/example.nar"
@ substituter-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not 256 fetching path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not' failed with exit code 1
@ substituter-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/nix/scripts/substitute
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not (1KiB installed)...
guix substitute: error: open-file: No such file or directory: "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/substituter-data/example.nar"
@ substituter-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not 256 fetching path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/3sr88zp88dmn3cfzk6gir2ky7zlyksx0-substitute-me-not' failed with exit code 1
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/jk5r0fc0pgzhqsnv58s689k6bj6g7vnr-substitute-me-not.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/jk//5r0fc0pgzhqsnv58s689k6bj6g7vnr-substitute-me-not.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/jk5r0fc0pgzhqsnv58s689k6bj6g7vnr-substitute-me-not.drv -
actual-value: #t
result: PASS
test-name: export/import several paths
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:589
source:
+ (test-assert
+ "export/import several paths"
+ (let* ((texts (unfold
+ (cut >= <> 10)
+ (lambda _ (random-text))
+ #{1+}#
+ 0))
+ (files (map (cut add-text-to-store %store "text" <>)
+ texts))
+ (dump (call-with-bytevector-output-port
+ (cut export-paths %store files <>))))
+ (delete-paths %store files)
+ (and (every (negate file-exists?) files)
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (and (equal? imported files)
+ (every file-exists? files)
+ (equal?
+ texts
+ (map (lambda (file)
+ (call-with-input-file file get-string-all))
+ files)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS
test-name: export/import paths, ensure topological order
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:609
source:
+ (test-assert
+ "export/import paths, ensure topological order"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (files (list file1 file2))
+ (dump1 (call-with-bytevector-output-port
+ (cute export-paths %store (list file1 file2) <>)))
+ (dump2 (call-with-bytevector-output-port
+ (cute export-paths %store (list file2 file1) <>))))
+ (delete-paths %store files)
+ (and (every (negate file-exists?) files)
+ (bytevector=? dump1 dump2)
+ (let* ((source (open-bytevector-input-port dump1))
+ (imported (import-paths %store source)))
+ (and (equal? imported (list file1 file2))
+ (every file-exists? files)
+ (equal? (list file0) (references %store file1))
+ (equal? (list file1) (references %store file2)))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS
test-name: export/import incomplete
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:631
source:
+ (test-assert
+ "export/import incomplete"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (dump (call-with-bytevector-output-port
+ (cute export-paths %store (list file2) <>))))
+ (delete-paths %store (list file0 file1 file2))
+ (guard (c ((nix-protocol-error? c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "not valid"))))
+ (import-paths
+ %store
+ (open-bytevector-input-port dump)))))
finding garbage collector roots...
deleting unused links...
actual-value: 108
result: PASS
test-name: export/import recursive
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:648
source:
+ (test-assert
+ "export/import recursive"
+ (let* ((file0 (add-text-to-store %store "baz" (random-text)))
+ (file1 (add-text-to-store
+ %store
+ "foo"
+ (random-text)
+ (list file0)))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1)))
+ (dump (call-with-bytevector-output-port
+ (cute export-paths
+ %store
+ (list file2)
+ <>
+ #:recursive?
+ #t))))
+ (delete-paths %store (list file0 file1 file2))
+ (let ((imported
+ (import-paths
+ %store
+ (open-bytevector-input-port dump))))
+ (and (equal? imported (list file0 file1 file2))
+ (every file-exists? (list file0 file1 file2))
+ (equal? (list file0) (references %store file1))
+ (equal? (list file1) (references %store file2))))))
finding garbage collector roots...
deleting unused links...
actual-value: #t
result: PASS
test-name: write-file & export-path yield the same result
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:664
source:
+ (test-assert
+ "write-file & export-path yield the same result"
+ (run-with-store
+ %store
+ (mlet* %store-monad
+ ((drv1 (package->derivation %bootstrap-guile))
+ (out1 -> (derivation->output-path drv1))
+ (data ->
+ (unfold
+ (cut >= <> 26)
+ (lambda (i) (random-bytevector 128))
+ #{1+}#
+ 0))
+ (build ->
+ (gexp (begin
+ (use-modules (rnrs io ports) (srfi srfi-1))
+ (let ()
+ (define letters
+ (map (lambda (i)
+ (string
+ (integer->char
+ (+ i (char->integer #\a)))))
+ (iota 26)))
+ (define (touch file data)
+ (call-with-output-file
+ file
+ (lambda (port) (put-bytevector port data))))
+ (mkdir (ungexp output))
+ (chdir (ungexp output))
+ (for-each
+ touch
+ (append (drop letters 10) (take letters 10))
+ (list (ungexp-splicing data)))
+ #t))))
+ (drv2 (gexp->derivation "bunch" build))
+ (out2 -> (derivation->output-path drv2))
+ (item-info -> (store-lift query-path-info)))
+ (mbegin
+ %store-monad
+ (built-derivations (list drv1 drv2))
+ (foldm %store-monad
+ (lambda (item result)
+ (define ref-hash
+ (let-values
+ (((port get) (open-sha256-port)))
+ (write-file item port)
+ (close-port port)
+ (get)))
+ (>>= (item-info item)
+ (lambda (info)
+ (return
+ (and result
+ (bytevector=?
+ (path-info-hash info)
+ ref-hash))))))
+ #t
+ (list out1 out2))))
+ #:guile-for-build
+ (%guile-for-build)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/yrnxwlh0w5rkgr2lwqcw9naf1iqbv737-bunch.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/yr//nxwlh0w5rkgr2lwqcw9naf1iqbv737-bunch.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/yrnxwlh0w5rkgr2lwqcw9naf1iqbv737-bunch.drv -
actual-value: #t
result: PASS
test-name: import corrupt path
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:730
source:
+ (test-assert
+ "import corrupt path"
+ (let* ((text (random-text))
+ (file (add-text-to-store %store "text" text))
+ (dump (call-with-bytevector-output-port
+ (cut export-paths %store (list file) <>))))
+ (delete-paths %store (list file))
+ (let* ((index (quotient (bytevector-length dump) 4))
+ (byte (bytevector-u8-ref dump index)))
+ (bytevector-u8-set! dump index (logxor 255 byte)))
+ (and (not (file-exists? file))
+ (guard (c ((nix-protocol-error? c)
+ (pk 'c c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "corrupt"))))
+ (let* ((source (open-bytevector-input-port dump))
+ (imported (import-paths %store source)))
+ (pk 'corrupt-imported imported)
+ #f)))))
finding garbage collector roots...
deleting unused links...
;;; (c #<condition &nix-protocol-error [message: "signed hash doesn't match actual contents of imported archive; archive could be corrupt, or someone is trying to import a Trojan horse" status: 1] 55cb72cc8ab0>)
actual-value: 80
result: PASS
test-name: register-path
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:753
source:
+ (test-assert
+ "register-path"
+ (let ((file (string-append
+ (%store-prefix)
+ "/"
+ (make-string 32 #\f)
+ "-fake")))
+ (when (valid-path? %store file)
+ (delete-paths %store (list file)))
+ (false-if-exception (delete-file file))
+ (let ((ref (add-text-to-store
+ %store
+ "ref-of-fake"
+ (random-text)))
+ (drv (string-append file ".drv")))
+ (call-with-output-file
+ file
+ (cut display "This is a fake store item.\n" <>))
+ (register-path
+ file
+ #:references
+ (list ref)
+ #:deriver
+ drv)
+ (and (valid-path? %store file)
+ (equal? (references %store file) (list ref))
+ (null? (valid-derivers %store file))
+ (null? (referrers %store file))))))
actual-value: #t
result: PASS
test-name: verify-store
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:773
source:
+ (test-assert
+ "verify-store"
+ (let* ((text (random-text))
+ (file1 (add-text-to-store %store "foo" text))
+ (file2 (add-text-to-store
+ %store
+ "bar"
+ (random-text)
+ (list file1))))
+ (and (pk 'verify1 (verify-store %store))
+ (begin
+ (delete-file file1)
+ (not (pk 'verify2 (verify-store %store))))
+ (begin
+ (call-with-output-file
+ file1
+ (lambda (port) (display text port)))
+ (pk 'verify3 (verify-store %store))))))
reading the Nix store...
;;; (verify1 #t)
reading the Nix store...
path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/zji2gvq5yvbd067zv7v3v172bwhmprc3-foo' disappeared, but it still has valid referrers!
;;; (verify2 #f)
reading the Nix store...
;;; (verify3 #t)
actual-value: #t
result: PASS
test-name: verify-store + check-contents
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:790
source:
+ (test-assert
+ "verify-store + check-contents"
+ (with-store
+ s
+ (let* ((text (random-text))
+ (drv (build-expression->derivation
+ s
+ "corrupt"
+ `(let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port) (display ,text port)))
+ #t)
+ #:guile-for-build
+ (package-derivation
+ s
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (with-derivation-substitute
+ drv
+ text
+ (and (build-derivations s (list drv))
+ (verify-store s #:check-contents? #t)
+ (begin
+ (chmod file 420)
+ (call-with-output-file
+ file
+ (lambda (port) (display "corrupt!" port)))
+ #t)
+ (not (verify-store s #:check-contents? #t))
+ (delete-paths s (list file)))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
fetching path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w817wqsslcqawq0zqfbf741wy3ifw3ls-corrupt'...
warning: authentication and authorization of substitutes disabled!
guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
Downloading /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w817wqsslcqawq0zqfbf741wy3ifw3ls-corrupt (1KiB installed)...
\r^[[K example.nar 176B 0B/s 00:00 [####################] 100.0%
reading the Nix store...
checking path existence...
checking hashes...
reading the Nix store...
checking path existence...
checking hashes...
path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w817wqsslcqawq0zqfbf741wy3ifw3ls-corrupt' was modified! expected hash `dd710ba9567f313742f8a7c198f55ee858e5724390dbd916e5fdafcf4b8a216d', got `e09c480e2e93336cd3c45aa129f81a0d7ba56c410b849d7779a8136074413b3d'
finding garbage collector roots...
removing stale temporary roots file `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/14073/temproots/27225'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w817wqsslcqawq0zqfbf741wy3ifw3ls-corrupt'
deleting `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/trash'
deleting unused links...
note: currently hard linking saves 19.82 MiB
actual-value: (/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/w817wqsslcqawq0zqfbf741wy3ifw3ls-corrupt)
result: PASS
test-name: build-things, check mode
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:827
source:
+ (test-assert
+ "build-things, check mode"
+ (with-store
+ store
+ (call-with-temporary-output-file
+ (lambda (entropy entropy-port)
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (let* ((drv (build-expression->derivation
+ store
+ "non-deterministic"
+ `(begin
+ (use-modules (rnrs io ports))
+ (let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port)
+ (display
+ (call-with-input-file
+ ,entropy
+ get-string-all)
+ port)))
+ #t))
+ #:guile-for-build
+ (package-derivation
+ store
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (and (build-things
+ store
+ (list (derivation-file-name drv)))
+ (begin
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (guard (c ((nix-protocol-error? c)
+ (pk 'determinism-exception c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "deterministic"))))
+ (build-things
+ store
+ (list (derivation-file-name drv))
+ (build-mode check))
+ #f))))))))
substitute: warning: authentication and authorization of substitutes disabled!
substitute: guix substitute: warning: ACL for archive imports seems to be uninitialized, substitutes may be unavailable
building path(s) `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cm4a9srr8p7scv30ny4d6wbgk3a6fh4k-non-deterministic'
checking path(s) `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cm4a9srr8p7scv30ny4d6wbgk3a6fh4k-non-deterministic'
warning: rewriting hashes in `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cm4a9srr8p7scv30ny4d6wbgk3a6fh4k-non-deterministic'; cross fingers
;;; (determinism-exception #<condition &nix-protocol-error [message: "derivation `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/lkgqnwrm32i9a7w36iakp2yv8yd0m2ik-non-deterministic.drv' may not be deterministic: output `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cm4a9srr8p7scv30ny4d6wbgk3a6fh4k-non-deterministic' differs" status: 1] 55cb73fc27b0>)
actual-value: 110
result: PASS
test-name: build multiple times
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:864
source:
+ (test-assert
+ "build multiple times"
+ (with-store
+ store
+ (set-build-options
+ store
+ #:rounds
+ 2
+ #:use-substitutes?
+ #f)
+ (call-with-temporary-output-file
+ (lambda (entropy entropy-port)
+ (write (random-text) entropy-port)
+ (force-output entropy-port)
+ (let* ((drv (build-expression->derivation
+ store
+ "non-deterministic"
+ `(begin
+ (use-modules (rnrs io ports))
+ (let ((out (assoc-ref %outputs "out")))
+ (call-with-output-file
+ out
+ (lambda (port)
+ (display
+ (call-with-input-file
+ ,entropy
+ get-string-all)
+ port)
+ (call-with-output-file
+ ,entropy
+ (lambda (port) (write 'foobar port)))))
+ #t))
+ #:guile-for-build
+ (package-derivation
+ store
+ %bootstrap-guile
+ (%current-system))))
+ (file (derivation->output-path drv)))
+ (guard (c ((nix-protocol-error? c)
+ (pk 'multiple-build c)
+ (and (not (zero? (nix-protocol-error-status c)))
+ (string-contains
+ (nix-protocol-error-message c)
+ "deterministic"))))
+ (current-build-output-port (current-error-port))
+ (build-things
+ store
+ (list (derivation-file-name drv)))
+ #f))))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/ky//jmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv.bz2
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/ky//jmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv.bz2
output ?/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kkiyz70mg0crsmgjj1c0xsb3l17sgx75-non-deterministic? of ?/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv? differs from previous round
@ build-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv - 1 output ?/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kkiyz70mg0crsmgjj1c0xsb3l17sgx75-non-deterministic? of ?/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv? differs from previous round
;;; (multiple-build #<condition &nix-protocol-error [message: "build of `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kyjmpl8fwzb223l04a9xqjmmqxncawvd-non-deterministic.drv' failed" status: 1] 55cb740eee70>)
actual-value: 108
result: PASS
test-name: store-lower
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:902
source:
+ (test-equal
+ "store-lower"
+ "Lowered."
+ (let* ((add (store-lower text-file))
+ (file (add %store "foo" "Lowered.")))
+ (call-with-input-file file get-string-all)))
expected-value: Lowered.
actual-value: Lowered.
result: PASS
test-name: current-system
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:908
source:
+ (test-equal
+ "current-system"
+ "bar"
+ (parameterize
+ ((%current-system "frob"))
+ (run-with-store
+ %store
+ (mbegin
+ %store-monad
+ (set-current-system "bar")
+ (current-system))
+ #:system
+ "foo")))
expected-value: bar
actual-value: bar
result: PASS
test-name: query-path-info
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:917
source:
+ (test-assert
+ "query-path-info"
+ (let* ((ref (add-text-to-store %store "ref" "foo"))
+ (item (add-text-to-store
+ %store
+ "item"
+ "bar"
+ (list ref)))
+ (info (query-path-info %store item)))
+ (and (equal? (path-info-references info) (list ref))
+ (equal?
+ (path-info-hash info)
+ (sha256
+ (string->utf8
+ (call-with-output-string
+ (cut write-file item <>))))))))
actual-value: #t
result: PASS
test-name: path-info-deriver
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/store.scm:927
source:
+ (test-assert
+ "path-info-deriver"
+ (let* ((b (add-text-to-store
+ %store
+ "build"
+ "echo $foo > $out"
+ '()))
+ (s (add-to-store
+ %store
+ "bash"
+ #t
+ "sha256"
+ (search-bootstrap-binary
+ "bash"
+ (%current-system))))
+ (d (derivation
+ %store
+ "the-thing"
+ s
+ `("-e" ,b)
+ #:env-vars
+ `(("foo" unquote (random-text)))
+ #:inputs
+ `((,b) (,s))))
+ (o (derivation->output-path d)))
+ (and (build-derivations %store (list d))
+ (not (path-info-deriver (query-path-info %store b)))
+ (string=?
+ (derivation-file-name d)
+ (path-info-deriver (query-path-info %store o))))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/567dr91bk9x54yb0yhsbxff2jq8nnrwy-the-thing.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/56//7dr91bk9x54yb0yhsbxff2jq8nnrwy-the-thing.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/567dr91bk9x54yb0yhsbxff2jq8nnrwy-the-thing.drv -
actual-value: #t
result: PASS
SKIP: tests/gexp
================
test-name: no refs
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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 origin
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:95
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:106
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:118
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:137
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/guix/base32.scm
actual-value: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/guix/base32.scm
result: PASS
test-name: local-file, #:select?
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:145
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:160
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:170
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:182
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: ungexp + ungexp-native
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:210
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:233
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:277 558447447000> out)) <> ((#<package coreutils@8.25 gnu/packages/base.scm:263 5584490a23c0> out)))
actual-value: (((#<package guile-bootstrap@2.0 gnu/packages/bootstrap.scm:277 558447447000> out)) <> ((#<package coreutils@8.25 gnu/packages/base.scm:263 5584490a23c0> out)))
result: PASS
test-name: input list
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:239
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:252
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:274
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:288
source:
+ (test-assert
+ "input list splicing + ungexp-native-splicing"
+ (let* ((inputs
+ (list (gexp-input glibc "debug")
+ %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: output list
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:298
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:304
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:313
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:320
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:330
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 ((store-lift references) out)))
+ (return
+ (and (equal? sexp (call-with-input-file out read))
+ (equal? (list guile) refs))))
+ #:guile-for-build
+ (%guile-for-build)))
random seed for tests: 1476378200
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/7hm186rp8bv4m2vp1m4chrp5y7zvxwk6-foo.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/7h//m186rp8bv4m2vp1m4chrp5y7zvxwk6-foo.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/7hm186rp8bv4m2vp1m4chrp5y7zvxwk6-foo.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:341
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 ((store-lift references) out))
+ (refs2 ((store-lift 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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/15kq2jw35by4nf00jc9xaq36mwyp8c8a-foo.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/15//kq2jw35by4nf00jc9xaq36mwyp8c8a-foo.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/15kq2jw35by4nf00jc9xaq36mwyp8c8a-foo.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation vs. grafts
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:365
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:384
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/fw2yc7cid79z2ilipav446p8rpcnsqwx-foo.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/fw//2yc7cid79z2ilipav446p8rpcnsqwx-foo.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/fw2yc7cid79z2ilipav446p8rpcnsqwx-foo.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation, default system
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:400
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:411
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/y7z0pq4fabfbrcck9vam1zvqmayhifk8-local-file.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/y7//z0pq4fabfbrcck9vam1zvqmayhifk8-local-file.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/y7z0pq4fabfbrcck9vam1zvqmayhifk8-local-file.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation, cross-compilation
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:425
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 ((store-lift 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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:439
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:449
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 ((store-lift 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: (/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/d9p7xvhmfgwg8rlcb5g45rhxxwhfx8jv-glibc-2.23.drv /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/v7lnk4av4rmw93x2b5qz3s9zas4cw2c3-coreutils-8.25.drv)
result: PASS
test-name: gexp->derivation, ungexp-native + composed gexps
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:463
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:474
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/z5aqv2ilizc5ldw4rg3q6yhimi574h0b-module-import.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/z5//aqv2ilizc5ldw4rg3q6yhimi574h0b-module-import.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/z5aqv2ilizc5ldw4rg3q6yhimi574h0b-module-import.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kh8i06aa6xp8sl3sdib8h608cf8pj520-one.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/kh//8i06aa6xp8sl3sdib8h608cf8pj520-one.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/kh8i06aa6xp8sl3sdib8h608cf8pj520-one.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cby5fjyis8pigf56aczkcdgqfxnniw9g-module-import-compiled.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/cb//y5fjyis8pigf56aczkcdgqfxnniw9g-module-import-compiled.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/cby5fjyis8pigf56aczkcdgqfxnniw9g-module-import-compiled.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/dn0rrbs4i89w8x99d5r885rlajw9ihsr-two.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/dn//0rrbs4i89w8x99d5r885rlajw9ihsr-two.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/dn0rrbs4i89w8x99d5r885rlajw9ihsr-two.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vz4ap0whvfhlvd8vhnfyp2cmd0sca434-store-copy.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/vz//4ap0whvfhlvd8vhnfyp2cmd0sca434-store-copy.drv.bz2
`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/sa3n3vd31zmjwfrnylbz7ma5579lrg9m-one' -> `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/8cg6km66zzqpl2kr90b3cfmcii7pd905-store-copy/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/sa3n3vd31zmjwfrnylbz7ma5579lrg9m-one'
`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/n8qvlhxfqbna12aqcqxv9az0ylxn3ckp-two/two' -> `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/8cg6km66zzqpl2kr90b3cfmcii7pd905-store-copy/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/n8qvlhxfqbna12aqcqxv9az0ylxn3ckp-two/two'
`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/n8qvlhxfqbna12aqcqxv9az0ylxn3ckp-two/one' -> `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/8cg6km66zzqpl2kr90b3cfmcii7pd905-store-copy/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/n8qvlhxfqbna12aqcqxv9az0ylxn3ckp-two/one'
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vz4ap0whvfhlvd8vhnfyp2cmd0sca434-store-copy.drv -
actual-value: #t
result: PASS
test-name: imported-files
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:509
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/bvviphh6y43jicsd2sbi7vlb76wwsqjv-file-import.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/bv//viphh6y43jicsd2sbi7vlb76wwsqjv-file-import.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/bvviphh6y43jicsd2sbi7vlb76wwsqjv-file-import.drv -
actual-value: #t
result: PASS
test-name: gexp-modules & ungexp
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:529
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:535
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->derivation #:modules
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:541
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/mwm3x7vj228z2d35g3mjli9bxknjlf9n-test-with-modules.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/mw//m3x7vj228z2d35g3mjli9bxknjlf9n-test-with-modules.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/mwm3x7vj228z2d35g3mjli9bxknjlf9n-test-with-modules.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation & with-imported-modules
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:555
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:570
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vmrny8n71gshlgqgmalc2bskacgwf028-module-import.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/vm//rny8n71gshlgqgmalc2bskacgwf028-module-import.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vmrny8n71gshlgqgmalc2bskacgwf028-module-import.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ri89zvh1aqkib4hj01cmnlb67y7pmrls-module-import-compiled.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/ri//89zvh1aqkib4hj01cmnlb67y7pmrls-module-import-compiled.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ri89zvh1aqkib4hj01cmnlb67y7pmrls-module-import-compiled.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/siah1lspb2mzhsiqkrm9gqs4cjvb3hnq-test-with-modules.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/si//ah1lspb2mzhsiqkrm9gqs4cjvb3hnq-test-with-modules.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/siah1lspb2mzhsiqkrm9gqs4cjvb3hnq-test-with-modules.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation #:references-graphs
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:599
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/bnjvp5m73q9zkk7d5phkn5wlyvjsyj4p-two.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/bn//jvp5m73q9zkk7d5phkn5wlyvjsyj4p-two.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/bnjvp5m73q9zkk7d5phkn5wlyvjsyj4p-two.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/4z32agc8rnlsyw1fl5gfvw3lbnahb6gp-ref-graphs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/4z//32agc8rnlsyw1fl5gfvw3lbnahb6gp-ref-graphs.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/4z32agc8rnlsyw1fl5gfvw3lbnahb6gp-ref-graphs.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation #:allowed-references
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:643
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/x4sngfh5w583dzm23d7adkrdqlkwibdr-allowed-refs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/x4//sngfh5w583dzm23d7adkrdqlkwibdr-allowed-refs.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/x4sngfh5w583dzm23d7adkrdqlkwibdr-allowed-refs.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation #:allowed-references, specific output
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:655
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/02ql2ar7s5j5akgs22z5mw7s8lzpaw21-thing.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/02//ql2ar7s5j5akgs22z5mw7s8lzpaw21-thing.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/02ql2ar7s5j5akgs22z5mw7s8lzpaw21-thing.drv -
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/v5han1b8k8c0xlzv2gj6m2apwb9x7jnl-allowed-refs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/v5//han1b8k8c0xlzv2gj6m2apwb9x7jnl-allowed-refs.drv.bz2
;;; ("/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/yi5sfwgp2qplppr8dffbxdiayv4h1vp6-thing-not-ok")
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/v5han1b8k8c0xlzv2gj6m2apwb9x7jnl-allowed-refs.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation #:allowed-references, disallowed
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:672
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 /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vy1f3zds486db2v44f2wvcliyi73fpy8-allowed-refs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/vy//1f3zds486db2v44f2wvcliyi73fpy8-allowed-refs.drv.bz2
output (`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/xsj9hfgwdrwkw9bdj1zwijz3ck95kg13-allowed-refs') is not allowed to refer to path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ixfn9w693z8gzcknavq93ppabwqds527-guile-bootstrap-2.0'
@ build-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/vy1f3zds486db2v44f2wvcliyi73fpy8-allowed-refs.drv - 1 output (`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/xsj9hfgwdrwkw9bdj1zwijz3ck95kg13-allowed-refs') is not allowed to refer to path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ixfn9w693z8gzcknavq93ppabwqds527-guile-bootstrap-2.0'
actual-value: #t
result: PASS
test-name: gexp->derivation #:disallowed-references, allowed
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:684
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/v59qgf9sslxls59i4c1a3x4b9zf0hr3b-disallowed-refs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/v5//9qgf9sslxls59i4c1a3x4b9zf0hr3b-disallowed-refs.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/v59qgf9sslxls59i4c1a3x4b9zf0hr3b-disallowed-refs.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation #:disallowed-references
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:696
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 /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/f7b82ipc92w68fqa7mga0y9w2iyqvnxy-disallowed-refs.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/f7//b82ipc92w68fqa7mga0y9w2iyqvnxy-disallowed-refs.drv.bz2
output (`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ayd9p2rjy9sf4rj2j18slwgz8sz1ryix-disallowed-refs') is not allowed to refer to path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ixfn9w693z8gzcknavq93ppabwqds527-guile-bootstrap-2.0'
@ build-failed /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/f7b82ipc92w68fqa7mga0y9w2iyqvnxy-disallowed-refs.drv - 1 output (`/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ayd9p2rjy9sf4rj2j18slwgz8sz1ryix-disallowed-refs') is not allowed to refer to path `/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/ixfn9w693z8gzcknavq93ppabwqds527-guile-bootstrap-2.0'
actual-value: #t
result: PASS
test-name: gexp->script
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:716
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:733
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:750
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 ((store-lift references) out)))
+ (return
+ (and (equal? refs (list text))
+ (equal?
+ `(list "foo" ,text)
+ (call-with-input-file out read))))))))
+ #:guile-for-build
+ (%guile-for-build)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/srqqnjgiqsr8xssbrnihbjhpp929nlhx-bar.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/sr//qqnjgiqsr8xssbrnihbjhpp929nlhx-bar.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/srqqnjgiqsr8xssbrnihbjhpp929nlhx-bar.drv -
actual-value: #t
result: PASS
test-name: text-file*
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:763
source:
+ (test-assert
+ "text-file*"
+ (let ((references (store-lift references)))
+ (run-with-store
+ %store
+ (mlet* %store-monad
+ ((drv (package->derivation %bootstrap-guile))
+ (guile -> (derivation->output-path drv))
+ (file (text-file "bar" "This is bar."))
+ (text (text-file*
+ "foo"
+ %bootstrap-guile
+ "/bin/guile "
+ (gexp-input %bootstrap-guile "out")
+ "/bin/guile "
+ drv
+ "/bin/guile "
+ file))
+ (done (built-derivations (list text)))
+ (out -> (derivation->output-path text))
+ (refs (references out)))
+ (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))))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/7ags9yf37sf26xbxz5dzm4jjq2lfg6w7-foo.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/7a//gs9yf37sf26xbxz5dzm4jjq2lfg6w7-foo.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/7ags9yf37sf26xbxz5dzm4jjq2lfg6w7-foo.drv -
actual-value: #t
result: PASS
test-name: mixed-text-file
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:787
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 ((store-lift 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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/z9wbzx3v0la5r3fcvhh8bigmgpx5ggzp-mixed.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/z9//wbzx3v0la5r3fcvhh8bigmgpx5ggzp-mixed.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/z9wbzx3v0la5r3fcvhh8bigmgpx5ggzp-mixed.drv -
actual-value: #t
result: PASS
test-name: gexp->derivation vs. %current-target-system
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:802
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:813
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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:820
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)))
@ build-started /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/abh524h778mxypfapfvg5r3ml963pwka-computed.drv - x86_64-linux /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/var/log/guix/drvs/ab//h524h778mxypfapfvg5r3ml963pwka-computed.drv.bz2
@ build-succeeded /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/abh524h778mxypfapfvg5r3ml963pwka-computed.drv -
actual-value: #t
result: PASS
test-name: printer
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:839
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.25 gnu/packages/base.scm:263 5584490a23c0>:out> "/bin/uname") 55844a7c6b10> (0 . 132))
result: PASS
test-name: printer vs. ungexp-splicing
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:848
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 55844a040480> (0 . 21))
result: PASS
test-name: sugar
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/gexp.scm:856
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
SKIP: tests/gremlin
===================
test-name: elf-dynamic-info-needed, executable
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/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
FAIL: tests/lint
================
test-name: description: not a string
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:145
source:
+ (test-assert
+ "description: not a string"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (description 'foobar))))
+ (check-description-style pkg)))
+ "invalid description")))
actual-value: #t
result: PASS
test-name: description: not empty
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:153
source:
+ (test-assert
+ "description: not empty"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (description ""))))
+ (check-description-style pkg)))
+ "description should not be empty")))
actual-value: #t
result: PASS
test-name: description: valid Texinfo markup
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:161
source:
+ (test-assert
+ "description: valid Texinfo markup"
+ (->bool
+ (string-contains
+ (with-warnings
+ (check-description-style
+ (dummy-package "x" (description "f{oo}b@r"))))
+ "Texinfo markup in description is invalid")))
actual-value: #t
result: PASS
test-name: description: does not start with an upper-case letter
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:168
source:
+ (test-assert
+ "description: does not start with an upper-case letter"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (description "bad description."))))
+ (check-description-style pkg)))
+ "description should start with an upper-case letter")))
actual-value: #t
result: PASS
test-name: description: may start with a digit
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:176
source:
+ (test-assert
+ "description: may start with a digit"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (description "2-component library."))))
+ (check-description-style pkg)))))
actual-value: #t
result: PASS
test-name: description: may start with lower-case package name
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:183
source:
+ (test-assert
+ "description: may start with lower-case package name"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (description "x is a dummy package."))))
+ (check-description-style pkg)))))
actual-value: #t
result: PASS
test-name: description: two spaces after end of sentence
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:190
source:
+ (test-assert
+ "description: two spaces after end of sentence"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (description "Bad. Quite bad."))))
+ (check-description-style pkg)))
+ "sentences in description should be followed by two spaces")))
actual-value: #t
result: PASS
test-name: description: end-of-sentence detection with abbreviations
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:198
source:
+ (test-assert
+ "description: end-of-sentence detection with abbreviations"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (description
+ "E.g. Foo, i.e. Bar resp. Baz (a.k.a. DVD)."))))
+ (check-description-style pkg)))))
actual-value: #t
result: PASS
test-name: synopsis: not a string
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:206
source:
+ (test-assert
+ "synopsis: not a string"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis #f))))
+ (check-synopsis-style pkg)))
+ "invalid synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: not empty
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:214
source:
+ (test-assert
+ "synopsis: not empty"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis ""))))
+ (check-synopsis-style pkg)))
+ "synopsis should not be empty")))
actual-value: #t
result: PASS
test-name: synopsis: does not start with an upper-case letter
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:222
source:
+ (test-assert
+ "synopsis: does not start with an upper-case letter"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis "bad synopsis."))))
+ (check-synopsis-style pkg)))
+ "synopsis should start with an upper-case letter")))
actual-value: #t
result: PASS
test-name: synopsis: may start with a digit
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:230
source:
+ (test-assert
+ "synopsis: may start with a digit"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (synopsis "5-dimensional frobnicator"))))
+ (check-synopsis-style pkg)))))
actual-value: #t
result: PASS
test-name: synopsis: ends with a period
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:237
source:
+ (test-assert
+ "synopsis: ends with a period"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis "Bad synopsis."))))
+ (check-synopsis-style pkg)))
+ "no period allowed at the end of the synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: ends with 'etc.'
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:245
source:
+ (test-assert
+ "synopsis: ends with 'etc.'"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis "Foo, bar, etc."))))
+ (check-synopsis-style pkg)))))
actual-value: #t
result: PASS
test-name: synopsis: starts with 'A'
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:251
source:
+ (test-assert
+ "synopsis: starts with 'A'"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (synopsis "A bad synop\u015dis"))))
+ (check-synopsis-style pkg)))
+ "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: starts with 'An'
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:259
source:
+ (test-assert
+ "synopsis: starts with 'An'"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (synopsis "An awful synopsis"))))
+ (check-synopsis-style pkg)))
+ "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: starts with 'a'
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:267
source:
+ (test-assert
+ "synopsis: starts with 'a'"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package "x" (synopsis "a bad synopsis"))))
+ (check-synopsis-style pkg)))
+ "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: starts with 'an'
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:275
source:
+ (test-assert
+ "synopsis: starts with 'an'"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (synopsis "an awful synopsis"))))
+ (check-synopsis-style pkg)))
+ "no article allowed at the beginning of the synopsis")))
actual-value: #t
result: PASS
test-name: synopsis: too long
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:283
source:
+ (test-assert
+ "synopsis: too long"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (synopsis (make-string 80 #\x)))))
+ (check-synopsis-style pkg)))
+ "synopsis should be less than 80 characters long")))
actual-value: #t
result: PASS
test-name: synopsis: start with package name
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:291
source:
+ (test-assert
+ "synopsis: start with package name"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (name "foo")
+ (synopsis "foo, a nice package"))))
+ (check-synopsis-style pkg)))
+ "synopsis should not start with the package name")))
actual-value: #t
result: PASS
test-name: synopsis: start with package name prefix
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:300
source:
+ (test-assert
+ "synopsis: start with package name prefix"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "arb"
+ (synopsis "Arbitrary precision"))))
+ (check-synopsis-style pkg)))))
actual-value: #t
result: PASS
test-name: synopsis: start with abbreviation
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:307
source:
+ (test-assert
+ "synopsis: start with abbreviation"
+ (string-null?
+ (with-warnings
+ (let ((pkg (dummy-package
+ "uucp"
+ (synopsis "UUCP implementation")
+ (description "Imagine this is Taylor UUCP."))))
+ (check-synopsis-style pkg)))))
actual-value: #t
result: PASS
test-name: inputs: pkg-config is probably a native input
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:316
source:
+ (test-assert
+ "inputs: pkg-config is probably a native input"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (inputs `(("pkg-config" ,pkg-config))))))
+ (check-inputs-should-be-native pkg)))
+ "'pkg-config' should probably be a native input")))
actual-value: #t
result: PASS
test-name: inputs: glib:bin is probably a native input
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:325
source:
+ (test-assert
+ "inputs: glib:bin is probably a native input"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (inputs `(("glib" ,glib "bin"))))))
+ (check-inputs-should-be-native pkg)))
+ "'glib:bin' should probably be a native input")))
actual-value: #t
result: PASS
test-name: patches: file names
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:334
source:
+ (test-assert
+ "patches: file names"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (source
+ (dummy-origin
+ (patches (list "/path/to/y.patch")))))))
+ (check-patch-file-names pkg)))
+ "file names of patches should start with the package name")))
actual-value: #t
result: PASS
test-name: patches: not found
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:345
source:
+ (test-assert
+ "patches: not found"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (source
+ (dummy-origin
+ (patches
+ (list (search-patch
+ "this-patch-does-not-exist!"))))))))
+ (check-patch-file-names pkg)))
+ "patch not found")))
actual-value: #t
result: PASS
test-name: derivation: invalid arguments
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:357
source:
+ (test-assert
+ "derivation: invalid arguments"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (arguments
+ '(#:imported-modules (invalid-module))))))
+ (check-derivation pkg)))
+ "failed to create derivation")))
actual-value: #t
result: PASS
test-name: license: invalid license
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:367
source:
+ (test-assert
+ "license: invalid license"
+ (string-contains
+ (with-warnings
+ (check-license (dummy-package "x" (license #f))))
+ "invalid license"))
actual-value: 74
result: PASS
test-name: home-page: wrong home-page
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:373
source:
+ (test-assert
+ "home-page: wrong home-page"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page #f))))
+ (check-home-page pkg)))
+ "invalid")))
actual-value: #t
result: PASS
test-name: home-page: invalid URI
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:383
source:
+ (test-assert
+ "home-page: invalid URI"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page "foobar"))))
+ (check-home-page pkg)))
+ "invalid home page URL")))
actual-value: #t
result: PASS
test-name: home-page: host not found
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:393
source:
+ (test-assert
+ "home-page: host not found"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page "http://does-not-exist"))))
+ (check-home-page pkg)))
+ "domain not found")))
actual-value: #f
result: FAIL
test-name: home-page: Connection refused
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:404
source:
+ (test-assert
+ "home-page: Connection refused"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page %local-url))))
+ (check-home-page pkg)))
+ "Connection refused")))
actual-value: #t
result: PASS
test-name: home-page: 200
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:415
source:
+ (test-equal
+ "home-page: 200"
+ ""
+ (with-warnings
+ (with-http-server
+ 200
+ %long-string
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page %local-url))))
+ (check-home-page pkg)))))
expected-value:
actual-value:
result: PASS
test-name: home-page: 200 but short length
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:425
source:
+ (test-assert
+ "home-page: 200 but short length"
+ (->bool
+ (string-contains
+ (with-warnings
+ (with-http-server
+ 200
+ "This is too small."
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page %local-url))))
+ (check-home-page pkg))))
+ "suspiciously small")))
actual-value: #t
result: PASS
test-name: home-page: 404
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:437
source:
+ (test-assert
+ "home-page: 404"
+ (->bool
+ (string-contains
+ (with-warnings
+ (with-http-server
+ 404
+ %long-string
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (home-page %local-url))))
+ (check-home-page pkg))))
+ "not reachable: 404")))
actual-value: #t
result: PASS
test-name: source-file-name
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:448
source:
+ (test-assert
+ "source-file-name"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "http://www.example.com/3.2.1.tar.gz")
+ (sha256 %null-sha256))))))
+ (check-source-file-name pkg)))
+ "file name should contain the package name")))
actual-value: #t
result: PASS
test-name: source-file-name: v prefix
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:462
source:
+ (test-assert
+ "source-file-name: v prefix"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "http://www.example.com/v3.2.1.tar.gz")
+ (sha256 %null-sha256))))))
+ (check-source-file-name pkg)))
+ "file name should contain the package name")))
actual-value: #t
result: PASS
test-name: source-file-name: bad checkout
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:476
source:
+ (test-assert
+ "source-file-name: bad checkout"
+ (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (version "3.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://www.example.com/x.git")
+ (commit "0")))
+ (sha256 %null-sha256))))))
+ (check-source-file-name pkg)))
+ "file name should contain the package name")))
actual-value: #t
result: PASS
test-name: source-file-name: good checkout
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:492
source:
+ (test-assert
+ "source-file-name: good checkout"
+ (not (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (version "3.2.1")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "http://git.example.com/x.git")
+ (commit "0")))
+ (file-name (string-append "x-" version))
+ (sha256 %null-sha256))))))
+ (check-source-file-name pkg)))
+ "file name should contain the package name"))))
actual-value: #t
result: PASS
test-name: source-file-name: valid
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:510
source:
+ (test-assert
+ "source-file-name: valid"
+ (not (->bool
+ (string-contains
+ (with-warnings
+ (let ((pkg (dummy-package
+ "x"
+ (version "3.2.1")
+ (source
+ (origin
+ (method url-fetch)
+ (uri "http://www.example.com/x-3.2.1.tar.gz")
+ (sha256 %null-sha256))))))
+ (check-source-file-name pkg)))
+ "file name should contain the package name"))))
actual-value: #t
result: PASS
test-name: source: 200
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:526
source:
+ (test-equal
+ "source: 200"
+ ""
+ (with-warnings
+ (with-http-server
+ 200
+ %long-string
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (source
+ (origin
+ (method url-fetch)
+ (uri %local-url)
+ (sha256 %null-sha256))))))
+ (check-source pkg)))))
expected-value:
actual-value:
result: PASS
test-name: source: 200 but short length
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:539
source:
+ (test-assert
+ "source: 200 but short length"
+ (->bool
+ (string-contains
+ (with-warnings
+ (with-http-server
+ 200
+ "This is too small."
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (source
+ (origin
+ (method url-fetch)
+ (uri %local-url)
+ (sha256 %null-sha256))))))
+ (check-source pkg))))
+ "suspiciously small")))
actual-value: #t
result: PASS
test-name: source: 404
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:554
source:
+ (test-assert
+ "source: 404"
+ (->bool
+ (string-contains
+ (with-warnings
+ (with-http-server
+ 404
+ %long-string
+ (let ((pkg (package
+ (inherit (dummy-package "x"))
+ (source
+ (origin
+ (method url-fetch)
+ (uri %local-url)
+ (sha256 %null-sha256))))))
+ (check-source pkg))))
+ "not reachable: 404")))
actual-value: #t
result: PASS
test-name: cve
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:568
source:
+ (test-assert
+ "cve"
+ (mock ((guix scripts lint)
+ package-vulnerabilities
+ (const '()))
+ (string-null?
+ (with-warnings
+ (check-vulnerabilities (dummy-package "x"))))))
actual-value: #t
result: PASS
test-name: cve: one vulnerability
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:573
source:
+ (test-assert
+ "cve: one vulnerability"
+ (mock ((guix scripts lint)
+ package-vulnerabilities
+ (lambda (package)
+ (list (make-struct
+ (@@ (guix cve) <vulnerability>)
+ 0
+ "CVE-2015-1234"
+ (list (cons (package-name package)
+ (package-version package)))))))
+ (string-contains
+ (with-warnings
+ (check-vulnerabilities
+ (dummy-package "pi" (version "3.14"))))
+ "vulnerable to CVE-2015-1234")))
actual-value: 87
result: PASS
test-name: cve: one patched vulnerability
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:585
source:
+ (test-assert
+ "cve: one patched vulnerability"
+ (mock ((guix scripts lint)
+ package-vulnerabilities
+ (lambda (package)
+ (list (make-struct
+ (@@ (guix cve) <vulnerability>)
+ 0
+ "CVE-2015-1234"
+ (list (cons (package-name package)
+ (package-version package)))))))
+ (string-null?
+ (with-warnings
+ (check-vulnerabilities
+ (dummy-package
+ "pi"
+ (version "3.14")
+ (source
+ (dummy-origin
+ (patches (list "/a/b/pi-CVE-2015-1234.patch"))))))))))
actual-value: #t
result: PASS
test-name: cve: patched vulnerability in replacement
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:602
source:
+ (test-assert
+ "cve: patched vulnerability in replacement"
+ (mock ((guix scripts lint)
+ package-vulnerabilities
+ (lambda (package)
+ (list (make-struct
+ (@@ (guix cve) <vulnerability>)
+ 0
+ "CVE-2015-1234"
+ (list (cons (package-name package)
+ (package-version package)))))))
+ (string-null?
+ (with-warnings
+ (check-vulnerabilities
+ (dummy-package
+ "pi"
+ (version "3.14")
+ (source (dummy-origin))
+ (replacement
+ (dummy-package
+ "pi"
+ (version "3.14")
+ (source
+ (dummy-origin
+ (patches
+ (list "/a/b/pi-CVE-2015-1234.patch"))))))))))))
actual-value: #t
result: PASS
test-name: formatting: lonely parentheses
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:621
source:
+ (test-assert
+ "formatting: lonely parentheses"
+ (string-contains
+ (with-warnings
+ (check-formatting
+ (dummy-package "ugly as hell!")))
+ "lonely"))
actual-value: 112
result: PASS
test-name: formatting: tabulation
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:631
source:
+ (test-assert
+ "formatting: tabulation"
+ (string-contains
+ (with-warnings
+ (check-formatting
+ (dummy-package "leave the tab here:\t")))
+ "tabulation"))
actual-value: 93
result: PASS
test-name: formatting: trailing white space
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:637
source:
+ (test-assert
+ "formatting: trailing white space"
+ (string-contains
+ (with-warnings
+ (check-formatting (dummy-package "x")))
+ "trailing white space"))
actual-value: 74
result: PASS
test-name: formatting: long line
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:644
source:
+ (test-assert
+ "formatting: long line"
+ (string-contains
+ (with-warnings
+ (check-formatting (dummy-package "x")))
+ "too long"))
actual-value: 89
result: PASS
test-name: formatting: alright
location: /tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/tests/lint.scm:652
source:
+ (test-assert
+ "formatting: alright"
+ (string-null?
+ (with-warnings
+ (check-formatting (dummy-package "x")))))
actual-value: #t
result: PASS
random seed for tests: 1476371298
FAIL: tests/guix-download
=========================
+ guix download --version
guix download (GNU Guix) 0.11.0
Copyright (C) 2016 the Guix authors
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
+ guix download http://does.not/exist
accepted connection from pid 31572, user dave
Starting download of /tmp/guix-file.EFmc9e
From http://does.not/exist...
\r^[[K exist 0B/s 00:00 | 0B transferred\r^[[K exist 1001KiB/s 00:00 | 333B transferred
/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/test-tmp/store/9qq1hrycl6l8i0plp2il2xl2pcjrs1j4-exist
1yi31kb19m808zq7ggm3x0kq60qnl0w81has8llim060pvkqg910
+ false
./test-env: line 1: 31475 Terminated "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/pre-inst-env" "/tmp/yaourt-tmp-dave/aur-guix/src/guix-0.11.0/guix-daemon" --disable-chroot --substitute-urls="$GUIX_BINARY_SUBSTITUTE_URL"
FAIL tests/guix-download.sh (exit status: 1)
next reply other threads:[~2016-10-14 1:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-10-13 21:39 David McInnis [this message]
2016-10-14 13:03 ` bug#24687: Tests fail building on Arch Linux Ludovic Courtès
2019-11-22 11:58 ` bug#24687: Bug #24687 Hunting: " zimoun
2019-11-26 20:27 ` zimoun
2019-11-26 20:55 ` David McInnis
2019-11-27 11:22 ` zimoun
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=9ae8b5dc-d877-b30d-301c-9d250383dd80@eagles.ewu.edu \
--to=davidm@eagles.ewu.edu \
--cc=24687@debbugs.gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).