======================================= 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 (#< 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 # ...] substitute: In unknown file: substitute: ?: 8 [apply-smob/1 #] 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 #] substitute: 4056: 4 [#] substitute: 1727: 3 [%start-stack load-stack ...] substitute: 1732: 2 [#] 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 "" actual-value: #f actual-error: + (srfi-34 + #) 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)...  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)...  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)...  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 #) 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 #) 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)...  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 #) 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 #) 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: (((# out)) <> ((# out))) actual-value: (((# out)) <> ((# 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 + "^#$" + (with-output-to-string + (lambda () + (write (gexp (string-append (ungexp coreutils) "/bin/uname"))))))) actual-value: #(#: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 + "^#$" + (with-output-to-string + (lambda () + (write (gexp (begin (ungexp-splicing (gexp ()))))))))) actual-value: #(# (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) ) + 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) ) + 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) ) + 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 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...  exist 0B/s 00:00 | 0B transferred  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)