=================================================== GNU Guix 1.3.0.22336-479d9e: ./test-suite.log =================================================== # TOTAL: 19 # PASS: 13 # SKIP: 4 # XFAIL: 0 # FAIL: 2 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: tests/channels ==================== test-name: channel-instance-metadata returns default if .guix-channel does not exist location: /home/ck/tmp/guix/tests/channels.scm:117 source: + (test-equal + "channel-instance-metadata returns default if .guix-channel does not exist" + '("/" ()) + (let ((metadata + (channel-instance-metadata instance--boring))) + (list (channel-metadata-directory metadata) + (channel-metadata-dependencies metadata)))) expected-value: ("/" ()) actual-value: ("/" ()) result: PASS test-name: channel-instance-metadata and default dependencies location: /home/ck/tmp/guix/tests/channels.scm:123 source: + (test-equal + "channel-instance-metadata and default dependencies" + '() + (channel-metadata-dependencies + (channel-instance-metadata instance--no-deps))) expected-value: () actual-value: () result: PASS test-name: channel-instance-metadata and directory location: /home/ck/tmp/guix/tests/channels.scm:127 source: + (test-equal + "channel-instance-metadata and directory" + "/modules" + (channel-metadata-directory + (channel-instance-metadata + instance--sub-directory))) expected-value: "/modules" actual-value: "/modules" result: PASS test-name: channel-instance-metadata rejects unsupported version location: /home/ck/tmp/guix/tests/channels.scm:132 source: + (test-equal + "channel-instance-metadata rejects unsupported version" + 1 + (guard (c ((and (message-condition? c) (error-location? c)) + (location-line (error-location c)))) + (channel-instance-metadata + instance--unsupported-version))) expected-value: 1 actual-value: 1 result: PASS test-name: channel-instance-metadata returns location: /home/ck/tmp/guix/tests/channels.scm:138 source: + (test-assert + "channel-instance-metadata returns " + (every (@@ (guix channels) channel-metadata?) + (map channel-instance-metadata + (list instance--no-deps + instance--simple + instance--with-dupes)))) actual-value: #t result: PASS test-name: channel-instance-metadata dependencies are channels location: /home/ck/tmp/guix/tests/channels.scm:145 source: + (test-assert + "channel-instance-metadata dependencies are channels" + (let ((deps ((@@ (guix channels) + channel-metadata-dependencies) + (channel-instance-metadata instance--simple)))) + (match deps (((? channel? dep)) #t) (_ #f)))) actual-value: #t result: PASS test-name: latest-channel-instances includes channel dependencies location: /home/ck/tmp/guix/tests/channels.scm:152 source: + (test-assert + "latest-channel-instances includes channel dependencies" + (let* ((channel (channel (name 'test) (url "test"))) + (test-dir + (channel-instance-checkout instance--simple))) + (mock ((guix git) + update-cached-checkout + (lambda* (url #:key ref starting-commit) + (match url + ("test" (values test-dir "caf3cabba9e" #f)) + (_ (values + (channel-instance-checkout instance--no-deps) + "abcde1234" + #f))))) + (with-store + store + (let ((instances + (latest-channel-instances store (list channel)))) + (and (eq? 2 (length instances)) + (lset= eq? + '(test test-channel) + (map (compose + channel-name + channel-instance-channel) + instances)))))))) actual-value: #t result: PASS test-name: latest-channel-instances excludes duplicate channel dependencies location: /home/ck/tmp/guix/tests/channels.scm:171 source: + (test-assert + "latest-channel-instances excludes duplicate channel dependencies" + (let* ((channel (channel (name 'test) (url "test"))) + (test-dir + (channel-instance-checkout instance--with-dupes))) + (mock ((guix git) + update-cached-checkout + (lambda* (url #:key ref starting-commit) + (match url + ("test" (values test-dir "caf3cabba9e" #f)) + (_ (values + (channel-instance-checkout instance--no-deps) + "abcde1234" + #f))))) + (with-store + store + (let ((instances + (latest-channel-instances store (list channel)))) + (and (= 2 (length instances)) + (lset= eq? + '(test test-channel) + (map (compose + channel-name + channel-instance-channel) + instances)) + (find (lambda (instance) + (and (eq? (channel-name + (channel-instance-channel instance)) + 'test-channel) + (string=? + (channel-commit + (channel-instance-channel instance)) + "abc1234"))) + instances))))))) actual-value: #< channel: #< name: test-channel url: "https://example.com/test-channel" branch: "master" commit: "abc1234" introduction: #f location: ((filename . "guix/channels.scm") (line . 262) (column . 19))> commit: "abcde1234" checkout: "/home/ck/tmp/guix/test-tmp/store/c2xcqhay4kldm6pncih8hfljyl1qyzxg-test-channel-abcde12"> result: PASS hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.uBzMmx/.git/ [master (root-commit) 71b1ca8] first commit 1 file changed, 1 insertion(+) create mode 100644 a.txt [master a56a83a] second commit 1 file changed, 1 insertion(+) create mode 100644 b.scm test-name: latest-channel-instances #:validate-pull location: /home/ck/tmp/guix/tests/channels.scm:201 source: + (test-equal + "latest-channel-instances #:validate-pull" + 'descendant + (let/ec + return + (with-temporary-git-repository + directory + '((add "a.txt" "A") + (commit "first commit") + (add "b.scm" "#t") + (commit "second commit")) + (with-repository + directory + repository + (let* ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (spec (channel + (url (string-append "file://" directory)) + (name 'foo))) + (new (channel + (inherit spec) + (commit (oid->string (commit-id commit2))))) + (old (channel + (inherit spec) + (commit (oid->string (commit-id commit1)))))) + (define (validate-pull channel current commit relation) + (return + (and (eq? channel old) + (string=? + (oid->string (commit-id commit2)) + current) + (string=? + (oid->string (commit-id commit1)) + commit) + relation))) + (with-store + store + (latest-channel-instances + store + (list old) + #:current-channels + (list new) + #:validate-pull + validate-pull))))))) expected-value: descendant actual-value: descendant result: PASS test-name: channel-instances->manifest location: /home/ck/tmp/guix/tests/channels.scm:234 source: + (test-assert + "channel-instances->manifest" + (let* ((spec (lambda deps + `(channel + (version 0) + (dependencies + ,@(map (lambda (dep) + `(channel + (name ,dep) + (url "http://example.org"))) + deps))))) + (guix (make-instance #:name 'guix)) + (instance0 (make-instance #:name 'a)) + (instance1 + (make-instance #:name 'b #:spec (spec 'a))) + (instance2 + (make-instance #:name 'c #:spec (spec 'b))) + (instance3 + (make-instance #:name 'd #:spec (spec 'c 'a)))) + (%graft? #f) + (let ((source (channel-instance-checkout guix))) + (mkdir (string-append source "/build-aux")) + (call-with-output-file + (string-append + source + "/build-aux/build-self.scm") + (lambda (port) + (write '(begin + (use-modules (guix) (gnu packages bootstrap)) + (lambda _ (package->derivation %bootstrap-guile))) + port)))) + (with-store + store + (let () + (define manifest + (run-with-store + store + (channel-instances->manifest + (list guix + instance0 + instance1 + instance2 + instance3)))) + (define entries (manifest-entries manifest)) + (define (depends? drv in out) + (let ((set (list->set + (requisites + store + (list (derivation-file-name drv))))) + (in (map derivation-file-name in)) + (out (map derivation-file-name out))) + (and (every (cut set-contains? set <>) in) + (not (any (cut set-contains? set <>) out))))) + (define (lookup name) + (run-with-store + store + (lower-object + (manifest-entry-item + (manifest-lookup + manifest + (manifest-pattern (name name))))))) + (let ((drv-guix (lookup "guix")) + (drv0 (lookup "a")) + (drv1 (lookup "b")) + (drv2 (lookup "c")) + (drv3 (lookup "d"))) + (and (depends? + drv-guix + '() + (list drv0 drv1 drv2 drv3)) + (depends? drv0 (list) (list drv1 drv2 drv3)) + (depends? drv1 (list drv0) (list drv2 drv3)) + (depends? drv2 (list drv1) (list drv3)) + (depends? drv3 (list drv2 drv0) (list)))))))) actual-value: #t result: PASS hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.PVLRKX/.git/ [master (root-commit) 3af316b] the commit 1 file changed, 1 insertion(+) create mode 100644 a.txt test-name: channel-news, no news location: /home/ck/tmp/guix/tests/channels.scm:311 source: + (test-equal + "channel-news, no news" + '() + (with-temporary-git-repository + directory + '((add "a.txt" "A") (commit "the commit")) + (with-repository + directory + repository + (let ((channel + (channel + (url (string-append "file://" directory)) + (name 'foo))) + (latest (reference-name->oid repository "HEAD"))) + (channel-news-for-commit + channel + (oid->string latest)))))) expected-value: () actual-value: () result: PASS hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.rKMEVZ/.git/ [master (root-commit) b144c36] first commit 1 file changed, 1 insertion(+) create mode 100644 .guix-channel [master 842b1fb] second commit 1 file changed, 1 insertion(+) create mode 100644 src/a.txt [master b6bba6f] third commit 1 file changed, 1 insertion(+) create mode 100644 news.scm [master fa33342] fourth commit 1 file changed, 1 insertion(+) create mode 100644 src/b.txt [master b20d3d5] fifth commit 1 file changed, 1 insertion(+), 1 deletion(-) test-name: channel-news, one entry location: /home/ck/tmp/guix/tests/channels.scm:323 source: + (test-assert + "channel-news, one entry" + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel (version 0) (news-file "news.scm")))) + (commit "first commit") + (add "src/a.txt" "A") + (commit "second commit") + (tag "tag-for-first-news-entry") + (add "news.scm" + ,(lambda (repository) + (let ((previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (commit ,(oid->string previous)) + (title (en "New file!") (eo "Nova dosiero!")) + (body (en "Yeah, a.txt.")))))))) + (commit "third commit") + (add "src/b.txt" "B") + (commit "fourth commit") + (add "news.scm" + ,(lambda (repository) + (let ((second + (commit-id + (find-commit repository "second commit"))) + (previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (commit ,(oid->string previous)) + (title (en "Another file!")) + (body (en "Yeah, b.txt."))) + (entry (tag "tag-for-first-news-entry") + (title (en "Old news.") (eo "Malnova?oj.")) + (body (en "For a.txt")))))))) + (commit "fifth commit")) + (with-repository + directory + repository + (define (find-commit* message) + (oid->string + (commit-id (find-commit repository message)))) + (let ((channel + (channel + (url (string-append "file://" directory)) + (name 'foo))) + (commit1 (find-commit* "first commit")) + (commit2 (find-commit* "second commit")) + (commit3 (find-commit* "third commit")) + (commit4 (find-commit* "fourth commit")) + (commit5 (find-commit* "fifth commit"))) + (and (null? (channel-news-for-commit channel commit2)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5)) + (list commit2 commit4)) + (lset= equal? + (map channel-news-entry-title + (channel-news-for-commit channel commit5)) + '((("en" . "Another file!")) + (("en" . "Old news.") ("eo" . "Malnova?oj.")))) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3)) + (list commit2)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit3 commit1)) + (list commit2)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit3)) + (list commit4)) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit5 commit1)) + (list commit4 commit2)) + (lset= equal? + (map channel-news-entry-tag + (channel-news-for-commit channel commit5 commit1)) + '(#f "tag-for-first-news-entry"))))))) actual-value: #f result: FAIL hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.uJnVw7/.git/ [master (root-commit) 50fcf19] first commit 2 files changed, 2 insertions(+) create mode 100644 .guix-channel create mode 100644 src/a.txt [master 7cdd555] second commit 1 file changed, 1 insertion(+) create mode 100644 news.scm test-name: channel-news, annotated tag location: /home/ck/tmp/guix/tests/channels.scm:411 source: + (test-assert + "channel-news, annotated tag" + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel (version 0) (news-file "news.scm")))) + (add "src/a.txt" "A") + (commit "first commit") + (tag "tag-for-first-news-entry" + "This is an annotated tag.") + (add "news.scm" + ,(lambda (repository) + (let ((previous + (reference-name->oid repository "HEAD"))) + (object->string + `(channel-news + (version 0) + (entry (tag "tag-for-first-news-entry") + (title (en "New file!")) + (body (en "Yeah, a.txt.")))))))) + (commit "second commit")) + (with-repository + directory + repository + (define (find-commit* message) + (oid->string + (commit-id (find-commit repository message)))) + (let ((channel + (channel + (url (string-append "file://" directory)) + (name 'foo))) + (commit1 (find-commit* "first commit")) + (commit2 (find-commit* "second commit"))) + (and (null? (channel-news-for-commit channel commit1)) + (lset= equal? + (map channel-news-entry-title + (channel-news-for-commit channel commit2)) + '((("en" . "New file!")))) + (lset= string=? + (map channel-news-entry-tag + (channel-news-for-commit channel commit2)) + (list "tag-for-first-news-entry")) + (lset= string=? + (map channel-news-entry-commit + (channel-news-for-commit channel commit2)) + (list commit1))))))) actual-value: #t result: PASS hint: Using 'master' as the name for the initial branch. This default branch name hint: is subject to change. To configure the initial branch name to use in all hint: of your new repositories, which will suppress this warning, call: hint: hint: git config --global init.defaultBranch hint: hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and hint: 'development'. The just-created branch can be renamed via this command: hint: hint: git branch -m Initialized empty Git repository in /tmp/guix-directory.bnMluk/.git/ [master (root-commit) 5918529] first commit 1 file changed, 1 insertion(+) create mode 100644 a.txt [master 353ea72] second commit 1 file changed, 1 insertion(+) create mode 100644 b.scm test-name: latest-channel-instances, missing introduction for 'guix' location: /home/ck/tmp/guix/tests/channels.scm:458 source: + (test-assert + "latest-channel-instances, missing introduction for 'guix'" + (with-temporary-git-repository + directory + '((add "a.txt" "A") + (commit "first commit") + (add "b.scm" "#t") + (commit "second commit")) + (with-repository + directory + repository + (let* ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (channel + (channel + (url (string-append "file://" directory)) + (name 'guix)))) + (guard (c ((formatted-message? c) + (->bool + (string-contains + (formatted-message-string c) + "introduction")))) + (with-store + store + (latest-channel-instances store (list channel)) + #f)))))) actual-value: #t result: PASS test-name: authenticate-channel, wrong first commit signer location: /home/ck/tmp/guix/tests/channels.scm:479 source: + (test-equal + "authenticate-channel, wrong first commit signer" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-secret-key-file) + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel + (version 0) + (keyring-reference "master")))) + (add ".guix-authorizations" + ,(object->string + `(authorizations + (version 0) + ((,(key-fingerprint %ed25519-public-key-file) + (name "Charlie")))))) + (add "signer.key" + ,(call-with-input-file + %ed25519-public-key-file + get-string-all)) + (commit + "first commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (add "random" ,(random-text)) + (commit + "second commit" + (signer + ,(key-fingerprint %ed25519-public-key-file)))) + (with-repository + directory + repository + (let* ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (intro (make-channel-introduction + (commit-id-string commit1) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-2-public-key-file)))) + (channel + (channel + (name 'example) + (url (string-append "file://" directory)) + (introduction intro)))) + (guard (c ((formatted-message? c) + (and (string-contains + (formatted-message-string c) + "initial commit") + (equal? + (formatted-message-arguments c) + (list (oid->string (commit-id commit1)) + (key-fingerprint %ed25519-public-key-file) + (key-fingerprint + %ed25519-2-public-key-file)))))) + (authenticate-channel + channel + directory + (commit-id-string commit2) + #:keyring-reference-prefix + "") + 'failed)))))) result: SKIP test-name: authenticate-channel, not a descendant of introductory commit location: /home/ck/tmp/guix/tests/channels.scm:529 source: + (test-equal + "authenticate-channel, not a descendant of introductory commit" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-secret-key-file) + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel + (version 0) + (keyring-reference "master")))) + (add ".guix-authorizations" + ,(object->string + `(authorizations + (version 0) + ((,(key-fingerprint %ed25519-public-key-file) + (name "Charlie")))))) + (add "signer.key" + ,(call-with-input-file + %ed25519-public-key-file + get-string-all)) + (commit + "first commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (branch "alternate-branch") + (checkout "alternate-branch") + (add "something.txt" ,(random-text)) + (commit + "intro commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (checkout "master") + (add "random" ,(random-text)) + (commit + "second commit" + (signer + ,(key-fingerprint %ed25519-public-key-file)))) + (with-repository + directory + repository + (let* ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (commit0 + (commit-lookup + repository + (reference-target + (branch-lookup repository "alternate-branch")))) + (intro (make-channel-introduction + (commit-id-string commit0) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-public-key-file)))) + (channel + (channel + (name 'example) + (url (string-append "file://" directory)) + (introduction intro)))) + (guard (c ((formatted-message? c) + (and (string-contains + (formatted-message-string c) + "not a descendant") + (equal? + (formatted-message-arguments c) + (list (oid->string (commit-id commit2)) + (oid->string (commit-id commit0))))))) + (authenticate-channel + channel + directory + (commit-id-string commit2) + #:keyring-reference-prefix + "") + 'failed)))))) result: SKIP test-name: authenticate-channel, .guix-authorizations location: /home/ck/tmp/guix/tests/channels.scm:587 source: + (test-equal + "authenticate-channel, .guix-authorizations" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file + %ed25519-2-public-key-file + %ed25519-2-secret-key-file) + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + '(channel + (version 0) + (keyring-reference "channel-keyring")))) + (add ".guix-authorizations" + ,(object->string + `(authorizations + (version 0) + ((,(key-fingerprint %ed25519-public-key-file) + (name "Charlie")))))) + (commit "zeroth commit") + (add "a.txt" "A") + (commit + "first commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (add "b.txt" "B") + (commit + "second commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (add "c.txt" "C") + (commit + "third commit" + (signer + ,(key-fingerprint %ed25519-2-public-key-file))) + (branch "channel-keyring") + (checkout "channel-keyring") + (add "signer.key" + ,(call-with-input-file + %ed25519-public-key-file + get-string-all)) + (add "other.key" + ,(call-with-input-file + %ed25519-2-public-key-file + get-string-all)) + (commit "keyring commit") + (checkout "master")) + (with-repository + directory + repository + (let* ((commit1 (find-commit repository "first")) + (commit2 (find-commit repository "second")) + (commit3 (find-commit repository "third")) + (intro (make-channel-introduction + (commit-id-string commit1) + (openpgp-public-key-fingerprint + (read-openpgp-packet %ed25519-public-key-file)))) + (channel + (channel + (name 'example) + (url (string-append "file://" directory)) + (introduction intro)))) + (and (authenticate-channel + channel + directory + (commit-id-string commit2) + #:keyring-reference-prefix + "") + (guard (c ((unauthorized-commit-error? c) + (and (oid=? (git-authentication-error-commit c) + (commit-id commit3)) + (bytevector=? + (openpgp-public-key-fingerprint + (unauthorized-commit-error-signing-key c)) + (openpgp-public-key-fingerprint + (read-openpgp-packet + %ed25519-2-public-key-file)))))) + (authenticate-channel + channel + directory + (commit-id-string commit3) + #:keyring-reference-prefix + "") + 'failed))))))) result: SKIP test-name: latest-channel-instances, authenticate dependency location: /home/ck/tmp/guix/tests/channels.scm:656 source: + (test-equal + "latest-channel-instances, authenticate dependency" + #t + (with-fresh-gnupg-setup + (list %ed25519-public-key-file + %ed25519-secret-key-file) + (with-temporary-git-repository + dependency-directory + `((add ".guix-channel" + ,(object->string + '(channel + (version 0) + (keyring-reference "master")))) + (add ".guix-authorizations" + ,(object->string `(authorizations (version 0) ()))) + (add "signer.key" + ,(call-with-input-file + %ed25519-public-key-file + get-string-all)) + (commit + "zeroth commit" + (signer + ,(key-fingerprint %ed25519-public-key-file))) + (add "foo.txt" "evil") + (commit "unsigned commit")) + (with-repository + dependency-directory + dependency + (let* ((commit0 (find-commit dependency "zeroth")) + (commit1 (find-commit dependency "unsigned")) + (intro `(channel-introduction + (version 0) + (commit ,(commit-id-string commit0)) + (signer + ,(openpgp-format-fingerprint + (openpgp-public-key-fingerprint + (read-openpgp-packet + %ed25519-public-key-file))))))) + (with-temporary-git-repository + directory + `((add ".guix-channel" + ,(object->string + `(channel + (version 0) + (dependencies + (channel + (name test-channel) + (url ,dependency-directory) + (introduction ,intro)))))) + (commit "single commit")) + (let ((channel (channel (name 'test) (url directory)))) + (guard (c ((unsigned-commit-error? c) + (oid=? (git-authentication-error-commit c) + (commit-id commit1)))) + (with-store + store + (latest-channel-instances store (list channel)) + 'failed))))))))) result: SKIP Updating channel 'test' from Git repository at 'test'... Updating channel 'test-channel' from Git repository at 'https://example.com/test-channel'... Updating channel 'test' from Git repository at 'test'... Updating channel 'test-channel' from Git repository at 'https://example.com/test-channel'... Updating channel 'test-channel' from Git repository at 'https://example.com/test-channel'... Updating channel 'foo' from Git repository at 'file:///tmp/guix-directory.uBzMmx'... Updating channel 'guix' from Git repository at 'file:///tmp/guix-directory.bnMluk'... FAIL: tests/texlive =================== (package (inherit (simple-texlive-package "texlive-texsis" (list "bibtex/bst/texsis/" "doc/man/man1/" "doc/otherformats/texsis/base/" "tex/texsis/base/" "tex/texsis/config/") (base32 "17ckkii656y2g1h5h8lc1bsy10a0bfgnsakhxii4hxfmvrfvc097") #:trivial? #t)) (version "59745") (propagated-inputs (list texlive-cm texlive-hyphen-base texlive-knuth-lib texlive-plain texlive-tex)) (home-page "https://www.tug.org/texlive/") (synopsis "Plain TeX macros for Physicists") (description "TeXsis is a TeX macro package which provides useful features for typesetting\nresearch papers and related documents. For example, it includes support\nspecifically for: Automatic numbering of equations, figures, tables and\nreferences; Simplified control of type sizes, line spacing, footnotes, running\nheadlines and footlines, and tables of contents, figures and tables; Specialized\ndocument formats for research papers, preprints and \"e-prints\", conference\nproceedings, theses, books, referee reports, letters, and memoranda; Simplified\nmeans of constructing an index for a book or thesis; Easy to use double column\nformatting; Specialized environments for lists, theorems and proofs, centered or\nnon-justified text, and listing computer code; Specialized macros for easily\nconstructing ruled tables. TeXsis was originally developed for physicists, but\nothers may also find it useful. It is completely compatible with Plain TeX.") (license lppl)) ;;; (fail (package (inherit (simple-texlive-package "texlive-texsis" (list "bibtex/bst/texsis/" "doc/man/man1/" "doc/otherformats/texsis/base/" "tex/texsis/base/" "tex/texsis/config/") (base32 "17ckkii656y2g1h5h8lc1bsy10a0bfgnsakhxii4hxfmvrfvc097") #:trivial? #t)) (version "59745") (propagated-inputs (list texlive-cm texlive-hyphen-base texlive-knuth-lib texlive-plain texlive-tex)) (home-page "https://www.tug.org/texlive/") (synopsis "Plain TeX macros for Physicists") (description "TeXsis is a TeX macro package which provides useful features for typesetting\nresearch papers and related documents. For example, it includes support\nspecifically for: Automatic numbering of equations, figures, tables and\nreferences; Simplified control of type sizes, line spacing, footnotes, running\nheadlines and footlines, and tables of contents, figures and tables; Specialized\ndocument formats for research papers, preprints and \"e-prints\", conference\nproceedings, theses, books, referee reports, letters, and memoranda; Simplified\nmeans of constructing an index for a book or thesis; Easy to use double column\nformatting; Specialized environments for lists, theorems and proofs, centered or\nnon-justified text, and listing computer code; Specialized macros for easily\nconstructing ruled tables. TeXsis was originally developed for physicists, but\nothers may also find it useful. It is completely compatible with Plain TeX.") (license lppl)) #f) test-name: texlive->guix-package location: /home/ck/tmp/guix/tests/texlive.scm:161 source: + (test-assert + "texlive->guix-package" + (mock ((guix build svn) + svn-fetch + (lambda* (url + revision + directory + #:key + (svn-command "svn") + (user-name #f) + (password #f) + (recursive? #t)) + (mkdir-p directory) + (with-output-to-file + (string-append directory "/foo") + (lambda () (display "source"))))) + (let ((result + (texlive->guix-package + "texsis" + #:package-database + (lambda _ %fake-tlpdb)))) + (match result + (('package + ('inherit + ('simple-texlive-package + "texlive-texsis" + ('list + "bibtex/bst/texsis/" + "doc/man/man1/" + "doc/otherformats/texsis/base/" + "tex/texsis/base/" + "tex/texsis/config/") + ('base32 (? string? hash)) + #:trivial? + #t)) + ('propagated-inputs + ('list + 'texlive-cm + 'texlive-hyphen-base + 'texlive-knuth-lib + 'texlive-plain + 'texlive-tex)) + ('home-page "https://www.tug.org/texlive/") + ('synopsis "Plain TeX macros for Physicists") + ('description (? string? description)) + ('license 'lppl)) + #t) + (_ (begin + (format #t "~s~%" result) + (pk 'fail result #f))))))) actual-value: #f result: FAIL