================================================== GNU Guix 1.3.0.17414-e777c: ./test-suite.log ================================================== # TOTAL: 2145 # PASS: 2136 # SKIP: 7 # XFAIL: 1 # FAIL: 1 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 SKIP: tests/cpio ================ test-name: file->cpio-header + write-cpio-header + read-cpio-header location: /home/denyosef/guix/tests/cpio.scm:37 source: + (test-assert + "file->cpio-header + write-cpio-header + read-cpio-header" + (let* ((file (search-path %load-path "guix.scm")) + (header (file->cpio-header file))) + (call-with-values + (lambda () (open-bytevector-output-port)) + (lambda (port get-bv) + (write-cpio-header header port) + (let ((port (open-bytevector-input-port (get-bv)))) + (equal? header (read-cpio-header port))))))) actual-value: #t result: PASS test-name: bit-identical to GNU cpio's output location: /home/denyosef/guix/tests/cpio.scm:49 source: + (test-assert + "bit-identical to GNU cpio's output" + (call-with-temporary-output-file + (lambda (link _) + (delete-file link) + (symlink "chbouib" link) + (let ((files (cons* "/" + (canonicalize-path + (dirname (search-path %load-path "guix.scm"))) + link + (map (compose + canonicalize-path + (cut search-path %load-path <>)) + '("guix.scm" + "guix/build/syscalls.scm" + "guix/packages.scm"))))) + (call-with-temporary-output-file + (lambda (ref-file _) + (let ((pipe (open-pipe* + OPEN_WRITE + %cpio-program + "-o" + "-O" + ref-file + "-H" + "newc" + "--null"))) + (for-each + (lambda (file) (format pipe "~a\x00" file)) + files) + (and (zero? (close-pipe pipe)) + (call-with-temporary-output-file + (lambda (file port) + (write-cpio-archive files port) + (close-port port) + (or (file=? ref-file file) + (throw 'cpio-archives-differ + files + ref-file + file + (stat:size (stat ref-file)) + (stat:size (stat file)))))))))))))) result: SKIP SKIP: tests/crate ================= test-name: guix-package->crate-name location: /home/denyosef/guix/tests/crate.scm:326 source: + (test-equal + "guix-package->crate-name" + "rustc-serialize" + (guix-package->crate-name + (dummy-package + "rust-rustc-serialize" + (source + (dummy-origin + (uri (crate-uri "rustc-serialize" "1.0"))))))) expected-value: "rustc-serialize" actual-value: "rustc-serialize" result: PASS test-name: crate->guix-package location: /home/denyosef/guix/tests/crate.scm:335 source: + (test-assert + "crate->guix-package" + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://crates.io/api/v1/crates/foo" + (open-input-string test-foo-crate)) + ("https://crates.io/api/v1/crates/foo/1.0.3/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/foo/1.0.3/dependencies" + (open-input-string test-foo-dependencies)) + ("https://crates.io/api/v1/crates/leaf-alice" + (open-input-string test-leaf-alice-crate)) + ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/dependencies" + (open-input-string test-leaf-alice-dependencies)) + (_ (error "Unexpected URL: " url))))) + (match (crate->guix-package "foo") + ((define-public 'rust-foo-1 + (package + (name "rust-foo") + (version "1.0.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "foo" 'version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system 'cargo-build-system) + (arguments + ('quasiquote + (#:skip-build? + #t + #:cargo-inputs + (("rust-leaf-alice" + ('unquote 'rust-leaf-alice-0.7)))))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0)))) + (string=? test-source-hash hash)) + (x (pk 'fail x #f))))) result: SKIP test-name: cargo-recursive-import location: /home/denyosef/guix/tests/crate.scm:388 source: + (test-assert + "cargo-recursive-import" + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://crates.io/api/v1/crates/root" + (open-input-string test-root-crate)) + ("https://crates.io/api/v1/crates/root/1.0.4/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/root/1.0.4/dependencies" + (open-input-string test-root-dependencies)) + ("https://crates.io/api/v1/crates/intermediate-a" + (open-input-string test-intermediate-a-crate)) + ("https://crates.io/api/v1/crates/intermediate-a/1.0.42/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/intermediate-a/1.0.42/dependencies" + (open-input-string + test-intermediate-a-dependencies)) + ("https://crates.io/api/v1/crates/intermediate-b" + (open-input-string test-intermediate-b-crate)) + ("https://crates.io/api/v1/crates/intermediate-b/1.2.3/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/intermediate-b/1.2.3/dependencies" + (open-input-string + test-intermediate-b-dependencies)) + ("https://crates.io/api/v1/crates/leaf-alice" + (open-input-string test-leaf-alice-crate)) + ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/leaf-alice/0.7.5/dependencies" + (open-input-string test-leaf-alice-dependencies)) + ("https://crates.io/api/v1/crates/leaf-bob" + (open-input-string test-leaf-bob-crate)) + ("https://crates.io/api/v1/crates/leaf-bob/3.0.1/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/leaf-bob/3.0.1/dependencies" + (open-input-string test-leaf-bob-dependencies)) + (_ (error "Unexpected URL: " url))))) + (match (crate-recursive-import "root") + (((define-public 'rust-leaf-alice-0.7 + (package + (name "rust-leaf-alice") + (version "0.7.5") + (source + (origin + (method url-fetch) + (uri (crate-uri "leaf-alice" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments ('quasiquote (#:skip-build? #t))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0)))) + (define-public 'rust-leaf-bob-3 + (package + (name "rust-leaf-bob") + (version "3.0.1") + (source + (origin + (method url-fetch) + (uri (crate-uri "leaf-bob" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments ('quasiquote (#:skip-build? #t))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0)))) + (define-public 'rust-intermediate-b-1 + (package + (name "rust-intermediate-b") + (version "1.2.3") + (source + (origin + (method url-fetch) + (uri (crate-uri "intermediate-b" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments + ('quasiquote + (#:skip-build? + #t + #:cargo-inputs + (("rust-leaf-bob" ('unquote rust-leaf-bob-3)))))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0)))) + (define-public 'rust-intermediate-a-1 + (package + (name "rust-intermediate-a") + (version "1.0.42") + (source + (origin + (method url-fetch) + (uri (crate-uri "intermediate-a" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments + ('quasiquote + (#:skip-build? + #t + #:cargo-inputs + (("rust-intermediate-b" + ('unquote rust-intermediate-b-1)) + ("rust-leaf-alice" + ('unquote 'rust-leaf-alice-0.7)) + ("rust-leaf-bob" ('unquote rust-leaf-bob-3)))))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0)))) + (define-public 'rust-root-1 + (package + (name "rust-root") + (version "1.0.4") + (source + (origin + (method url-fetch) + (uri (crate-uri "root" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments + ('quasiquote + (#:cargo-inputs + (("rust-intermediate-a" + ('unquote rust-intermediate-a-1)) + ("rust-intermediate-b" + ('unquote rust-intermediate-b-1)) + ("rust-leaf-alice" + ('unquote 'rust-leaf-alice-0.7)) + ("rust-leaf-bob" ('unquote rust-leaf-bob-3)))))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0))))) + #t) + (x (pk 'fail x #f))))) result: SKIP test-name: licenses: MIT OR Apache-2.0 location: /home/denyosef/guix/tests/crate.scm:562 source: + (test-equal + "licenses: MIT OR Apache-2.0" + '(license:expat license:asl2.0) + (string->license "MIT OR Apache-2.0")) expected-value: (license:expat license:asl2.0) actual-value: (license:expat license:asl2.0) result: PASS test-name: licenses: Apache-2.0 / MIT location: /home/denyosef/guix/tests/crate.scm:566 source: + (test-equal + "licenses: Apache-2.0 / MIT" + '(license:asl2.0 license:expat) + (string->license "Apache-2.0 / MIT")) expected-value: (license:asl2.0 license:expat) actual-value: (license:asl2.0 license:expat) result: PASS test-name: licenses: Apache-2.0 WITH LLVM-exception location: /home/denyosef/guix/tests/crate.scm:570 source: + (test-equal + "licenses: Apache-2.0 WITH LLVM-exception" + '(license:asl2.0 unknown-license!) + (string->license + "Apache-2.0 WITH LLVM-exception")) expected-value: (license:asl2.0 unknown-license!) actual-value: (license:asl2.0 unknown-license!) result: PASS test-name: licenses: MIT/Apache-2.0 AND BSD-2-Clause location: /home/denyosef/guix/tests/crate.scm:574 source: + (test-equal + "licenses: MIT/Apache-2.0 AND BSD-2-Clause" + '(license:expat license:asl2.0 unknown-license!) + (string->license + "MIT/Apache-2.0 AND BSD-2-Clause")) expected-value: (license:expat license:asl2.0 unknown-license!) actual-value: (license:expat license:asl2.0 unknown-license!) result: PASS test-name: licenses: MIT/Apache-2.0 location: /home/denyosef/guix/tests/crate.scm:578 source: + (test-equal + "licenses: MIT/Apache-2.0" + '(license:expat license:asl2.0) + (string->license "MIT/Apache-2.0")) expected-value: (license:expat license:asl2.0) actual-value: (license:expat license:asl2.0) result: PASS test-name: self-test: rust-docopt 0.8.x is gone, please adjust the test case location: /home/denyosef/guix/tests/crate.scm:619 source: + (test-assert + "self-test: rust-docopt 0.8.x is gone, please adjust the test case" + (not (null? (find-packages-by-name "rust-docopt" "0.8")))) actual-value: #t result: PASS test-name: cargo-recursive-import-hoors-existing-packages location: /home/denyosef/guix/tests/crate.scm:623 source: + (test-assert + "cargo-recursive-import-hoors-existing-packages" + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://crates.io/api/v1/crates/doctool" + (open-input-string test-doctool-crate)) + ("https://crates.io/api/v1/crates/doctool/2.2.2/download" + (set! test-source-hash + (bytevector->nix-base32-string + (sha256 + (string->bytevector "empty file\n" "utf-8")))) + (open-input-string "empty file\n")) + ("https://crates.io/api/v1/crates/doctool/2.2.2/dependencies" + (open-input-string test-doctool-dependencies)) + (_ (error "Unexpected URL: " url))))) + (match (crate-recursive-import "doctool") + (((define-public 'rust-doctool-2 + (package + (name "rust-doctool") + (version "2.2.2") + (source + (origin + (method url-fetch) + (uri (crate-uri "doctool" version)) + (file-name + (string-append name "-" version ".tar.gz")) + (sha256 (base32 (? string? hash))))) + (build-system cargo-build-system) + (arguments + ('quasiquote + (#:cargo-inputs + (("rust-docopt" ('unquote 'rust-docopt-0.8)))))) + (home-page "http://example.com") + (synopsis "summary") + (description "summary") + (license (list license:expat license:asl2.0))))) + #t) + (x (pk 'fail x #f))))) result: SKIP SKIP: tests/hackage =================== Starting download of /tmp/guix-file.Gr118I From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.Gr118I From https://web.archive.org/web/20220407163350/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163350/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.Gr118I... could not load Disarchive failed to download "/tmp/guix-file.Gr118I" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 1 location: /home/denyosef/guix/tests/hackage.scm:189 source: + (test-assert + "hackage->guix-package test 1" + (eval-test-with-cabal test-cabal-1 match-ghc-foo)) actual-value: #t result: PASS Starting download of /tmp/guix-file.1MerzI From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.1MerzI From https://web.archive.org/web/20220407163354/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163354/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.1MerzI... could not load Disarchive failed to download "/tmp/guix-file.1MerzI" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 2 location: /home/denyosef/guix/tests/hackage.scm:192 source: + (test-assert + "hackage->guix-package test 2" + (eval-test-with-cabal test-cabal-2 match-ghc-foo)) actual-value: #t result: PASS Starting download of /tmp/guix-file.18u4mt From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.18u4mt From https://web.archive.org/web/20220407163356/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163356/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.18u4mt... could not load Disarchive failed to download "/tmp/guix-file.18u4mt" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 3 location: /home/denyosef/guix/tests/hackage.scm:195 source: + (test-assert + "hackage->guix-package test 3" + (eval-test-with-cabal + test-cabal-3 + match-ghc-foo + #:cabal-environment + '(("impl" . "ghc-7.8")))) actual-value: #t result: PASS Starting download of /tmp/guix-file.aPwFT2 From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.aPwFT2 From https://web.archive.org/web/20220407163358/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163358/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.aPwFT2... could not load Disarchive failed to download "/tmp/guix-file.aPwFT2" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 4 location: /home/denyosef/guix/tests/hackage.scm:199 source: + (test-assert + "hackage->guix-package test 4" + (eval-test-with-cabal + test-cabal-4 + match-ghc-foo + #:cabal-environment + '(("impl" . "ghc-7.8")))) actual-value: #t result: PASS Starting download of /tmp/guix-file.s0ngNG From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.s0ngNG From https://web.archive.org/web/20220407163359/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163359/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.s0ngNG... could not load Disarchive failed to download "/tmp/guix-file.s0ngNG" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 5 location: /home/denyosef/guix/tests/hackage.scm:203 source: + (test-assert + "hackage->guix-package test 5" + (eval-test-with-cabal + test-cabal-5 + match-ghc-foo + #:cabal-environment + '(("impl" . "ghc-7.8")))) actual-value: #t result: PASS Starting download of /tmp/guix-file.01A49L From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.01A49L From https://web.archive.org/web/20220407163401/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163401/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.01A49L... could not load Disarchive failed to download "/tmp/guix-file.01A49L" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test 6 location: /home/denyosef/guix/tests/hackage.scm:226 source: + (test-assert + "hackage->guix-package test 6" + (eval-test-with-cabal + test-cabal-6 + match-ghc-foo-6)) actual-value: #t result: PASS Starting download of /tmp/guix-file.upmQXb From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.upmQXb From https://web.archive.org/web/20220407163403/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163403/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.upmQXb... could not load Disarchive failed to download "/tmp/guix-file.upmQXb" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test multiline desc (layout) location: /home/denyosef/guix/tests/hackage.scm:244 source: + (test-assert + "hackage->guix-package test multiline desc (layout)" + (eval-test-with-cabal + test-cabal-multiline-layout + match-ghc-foo)) actual-value: #t result: PASS Starting download of /tmp/guix-file.Pil2RQ From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.Pil2RQ From https://web.archive.org/web/20220407163405/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163405/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.Pil2RQ... could not load Disarchive failed to download "/tmp/guix-file.Pil2RQ" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test multiline desc (braced) location: /home/denyosef/guix/tests/hackage.scm:264 source: + (test-assert + "hackage->guix-package test multiline desc (braced)" + (eval-test-with-cabal + test-cabal-multiline-braced + match-ghc-foo)) actual-value: #t result: PASS Syntax error: unexpected token : (ghc-options (-Wall)) (at line 11, column 2) Syntax error: unexpected end of input ;;; (fail #f #f) test-name: hackage->guix-package test mixed layout location: /home/denyosef/guix/tests/hackage.scm:284 source: + (test-assert + "hackage->guix-package test mixed layout" + (eval-test-with-cabal + test-cabal-mixed-layout + match-ghc-foo)) actual-value: #f result: XFAIL Starting download of /tmp/guix-file.0ABQVs From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.0ABQVs From https://web.archive.org/web/20220407163407/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163407/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.0ABQVs... could not load Disarchive failed to download "/tmp/guix-file.0ABQVs" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test flag executable location: /home/denyosef/guix/tests/hackage.scm:309 source: + (test-assert + "hackage->guix-package test flag executable" + (eval-test-with-cabal + test-cabal-flag-executable + match-ghc-foo)) actual-value: #t result: PASS Starting download of /tmp/guix-file.OfbhHv From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.OfbhHv From https://web.archive.org/web/20220407163410/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163410/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.OfbhHv... could not load Disarchive failed to download "/tmp/guix-file.OfbhHv" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test cabal revision location: /home/denyosef/guix/tests/hackage.scm:349 source: + (test-assert + "hackage->guix-package test cabal revision" + (eval-test-with-cabal + test-cabal-revision + match-ghc-foo-revision)) actual-value: #t result: PASS test-name: read-cabal test 1 location: /home/denyosef/guix/tests/hackage.scm:352 source: + (test-assert + "read-cabal test 1" + (match (call-with-input-string + test-read-cabal-1 + read-cabal) + ((("name" ("test-me")) + ('section + 'library + (('if + ('flag "base4point8") + (("build-depends" ("base >= 4.8 && < 5"))) + (('if + ('flag "base4") + (("build-depends" ("base >= 4 && < 4.8"))) + (('if + ('flag "base3") + (("build-depends" ("base >= 3 && < 4"))) + (("build-depends" ("base < 3")))))))) + ('if + ('or + ('flag "base4point8") + ('and ('flag "base4") ('flag "base3"))) + (("build-depends" ("random"))) + ()) + ("build-depends" ("containers")) + ("exposed-modules" ("Test.QuickCheck.Exception"))))) + #t) + (x (pk 'fail x #f)))) actual-value: #t result: PASS Starting download of /tmp/guix-file.2legIP From https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "Not Found" Starting download of /tmp/guix-file.2legIP From https://web.archive.org/web/20220407163411/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz... download failed "https://web.archive.org/web/20220407163411/https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" 404 "NOT FOUND" Trying to use Disarchive to assemble /tmp/guix-file.2legIP... could not load Disarchive failed to download "/tmp/guix-file.2legIP" from "https://hackage.haskell.org/package/foo/foo-1.0.0.tar.gz" test-name: hackage->guix-package test cabal import location: /home/denyosef/guix/tests/hackage.scm:406 source: + (test-assert + "hackage->guix-package test cabal import" + (eval-test-with-cabal + test-cabal-import + match-ghc-foo-import)) actual-value: #t result: PASS SKIP: tests/inferior ==================== test-name: open-inferior location: /home/denyosef/guix/tests/inferior.scm:54 source: + (test-equal + "open-inferior" + '(42 #t) + (let ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (and (inferior? inferior) + (let ((a (inferior-eval '(apply * '(6 7)) inferior)) + (b (inferior-eval + '(@ (gnu packages base) coreutils) + inferior))) + (close-inferior inferior) + (list a (inferior-object? b)))))) expected-value: (42 #t) actual-value: (42 #t) result: PASS test-name: &inferior-exception location: /home/denyosef/guix/tests/inferior.scm:65 source: + (test-equal + "&inferior-exception" + '(a b c d) + (let ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (and (eq? inferior (inferior-exception-inferior c)) + (match (inferior-exception-stack c) + (((_ (files lines columns)) ..1) + (member "guix/repl.scm" files))) + (inferior-exception-arguments c)))) + (inferior-eval '(throw 'a 'b 'c 'd) inferior) + 'badness))) expected-value: (a b c d) actual-value: (a b c d) result: PASS test-name: &inferior-exception, legacy mode location: /home/denyosef/guix/tests/inferior.scm:79 source: + (test-equal + "&inferior-exception, legacy mode" + '(a b c d) + (let ((inferior (open-inferior %top-builddir))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (and (eq? inferior (inferior-exception-inferior c)) + (inferior-exception-arguments c)))) + (inferior-eval '(throw 'a 'b 'c 'd) inferior) + 'badness))) expected-value: (a b c d) actual-value: (a b c d) result: PASS test-name: inferior-packages location: /home/denyosef/guix/tests/inferior.scm:91 source: + (test-equal + "inferior-packages" + (take (sort (fold-packages + (lambda (package lst) + (cons (list (package-name package) + (package-version package) + (package-home-page package) + (package-location package)) + lst)) + '()) + (lambda (x y) (string file: "gnu/packages/games.scm" line: 6613 column: 2>) ("0ad-data" "0.0.25b-alpha" "https://play0ad.com" #< file: "gnu/packages/games.scm" line: 6566 column: 2>) ("0xffff" "0.9" "https://github.com/pali/0xFFFF" #< file: "gnu/packages/flashing-tools.scm" line: 106 column: 2>) ("389-ds-base" "1.4.4.17" "https://directory.fedoraproject.org" #< file: "gnu/packages/openldap.scm" line: 245 column: 2>) ("4dtris" "0.4.3" "https://launchpad.net/4dtris/" #< file: "gnu/packages/games.scm" line: 8660 column: 2>) ("4store" "1.1.6" "https://github.com/4store/4store" #< file: "gnu/packages/databases.scm" line: 180 column: 2>) ("4ti2" "1.6.9" "http://www.4ti2.de/" #< file: "gnu/packages/maths.scm" line: 691 column: 2>) ("7kaa" "2.15.4p1" "https://7kfans.com/" #< file: "gnu/packages/games.scm" line: 12025 column: 2>) ("a2jmidid" "9" "https://github.com/jackaudio/a2jmidid" #< file: "gnu/packages/music.scm" line: 6745 column: 2>) ("a2ps" "4.14" "https://www.gnu.org/software/a2ps/" #< file: "gnu/packages/pretty-print.scm" line: 51 column: 2>)) actual-value: (("0ad" "0.0.25b-alpha" "https://play0ad.com" #< file: "gnu/packages/games.scm" line: 6613 column: 2>) ("0ad-data" "0.0.25b-alpha" "https://play0ad.com" #< file: "gnu/packages/games.scm" line: 6566 column: 2>) ("0xffff" "0.9" "https://github.com/pali/0xFFFF" #< file: "gnu/packages/flashing-tools.scm" line: 106 column: 2>) ("389-ds-base" "1.4.4.17" "https://directory.fedoraproject.org" #< file: "gnu/packages/openldap.scm" line: 245 column: 2>) ("4dtris" "0.4.3" "https://launchpad.net/4dtris/" #< file: "gnu/packages/games.scm" line: 8660 column: 2>) ("4store" "1.1.6" "https://github.com/4store/4store" #< file: "gnu/packages/databases.scm" line: 180 column: 2>) ("4ti2" "1.6.9" "http://www.4ti2.de/" #< file: "gnu/packages/maths.scm" line: 691 column: 2>) ("7kaa" "2.15.4p1" "https://7kfans.com/" #< file: "gnu/packages/games.scm" line: 12025 column: 2>) ("a2jmidid" "9" "https://github.com/jackaudio/a2jmidid" #< file: "gnu/packages/music.scm" line: 6745 column: 2>) ("a2ps" "4.14" "https://www.gnu.org/software/a2ps/" #< file: "gnu/packages/pretty-print.scm" line: 51 column: 2>)) result: PASS test-name: inferior-available-packages location: /home/denyosef/guix/tests/inferior.scm:120 source: + (test-equal + "inferior-available-packages" + (take (sort (fold-available-packages + (lambda* (name + version + result + #:key + supported? + deprecated? + #:allow-other-keys) + (if (and supported? (not deprecated?)) + (alist-cons name version result) + result)) + '()) + (lambda (x y) (stringlist + (lambda (package) + (list (package-name package) + (package-version package) + (package-location package))))) + (list (map ->list (find-packages-by-name "guile" #f)) + (map ->list + (find-packages-by-name "guile" "2.2")))) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (->list + (lambda (package) + (list (inferior-package-name package) + (inferior-package-version package) + (inferior-package-location package)))) + (lst1 (map ->list + (lookup-inferior-packages inferior "guile"))) + (lst2 (map ->list + (lookup-inferior-packages inferior "guile" "2.2")))) + (close-inferior inferior) + (list lst1 lst2))) expected-value: ((("guile" "3.0.8" #< file: "gnu/packages/guile.scm" line: 392 column: 2>) ("guile" "3.0.7" #< file: "gnu/packages/guile.scm" line: 310 column: 2>) ("guile" "2.2.7" #< file: "gnu/packages/guile.scm" line: 250 column: 2>) ("guile" "2.2.4" #< file: "gnu/packages/guile.scm" line: 297 column: 2>) ("guile" "2.0.14" #< file: "gnu/packages/guile.scm" line: 147 column: 2>) ("guile" "1.8.8" #< file: "gnu/packages/guile.scm" line: 76 column: 2>)) (("guile" "2.2.7" #< file: "gnu/packages/guile.scm" line: 250 column: 2>) ("guile" "2.2.4" #< file: "gnu/packages/guile.scm" line: 297 column: 2>))) actual-value: ((("guile" "3.0.8" #< file: "gnu/packages/guile.scm" line: 392 column: 2>) ("guile" "3.0.7" #< file: "gnu/packages/guile.scm" line: 310 column: 2>) ("guile" "2.2.7" #< file: "gnu/packages/guile.scm" line: 250 column: 2>) ("guile" "2.2.4" #< file: "gnu/packages/guile.scm" line: 297 column: 2>) ("guile" "2.0.14" #< file: "gnu/packages/guile.scm" line: 147 column: 2>) ("guile" "1.8.8" #< file: "gnu/packages/guile.scm" line: 76 column: 2>)) (("guile" "2.2.7" #< file: "gnu/packages/guile.scm" line: 250 column: 2>) ("guile" "2.2.4" #< file: "gnu/packages/guile.scm" line: 297 column: 2>))) result: PASS test-name: lookup-inferior-packages and eq?-ness location: /home/denyosef/guix/tests/inferior.scm:161 source: + (test-assert + "lookup-inferior-packages and eq?-ness" + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (lst1 (lookup-inferior-packages inferior "guile")) + (lst2 (lookup-inferior-packages inferior "guile"))) + (close-inferior inferior) + (every eq? lst1 lst2))) actual-value: #t result: PASS test-name: inferior-package-inputs location: /home/denyosef/guix/tests/inferior.scm:169 source: + (test-equal + "inferior-package-inputs" + (let ((->list + (match-lambda + ((label (? package? package) . rest) + `(,label + (package + ,(package-name package) + ,(package-version package) + ,(package-location package)) + ,@rest))))) + (list (map ->list (package-inputs guile-3.0-latest)) + (map ->list + (package-native-inputs guile-3.0-latest)) + (map ->list + (package-propagated-inputs guile-3.0-latest)))) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (guile (first (lookup-inferior-packages inferior "guile"))) + (->list + (match-lambda + ((label (? inferior-package? package) . rest) + `(,label + (package + ,(inferior-package-name package) + ,(inferior-package-version package) + ,(inferior-package-location package)) + ,@rest)))) + (result + (list (map ->list (inferior-package-inputs guile)) + (map ->list + (inferior-package-native-inputs guile)) + (map ->list + (inferior-package-propagated-inputs guile))))) + (close-inferior inferior) + result)) expected-value: ((("libffi" (package "libffi" "3.3" #< file: "gnu/packages/libffi.scm" line: 44 column: 2>)) ("bash" (package "bash-minimal" "5.1.8" #< file: "gnu/packages/bash.scm" line: 215 column: 2>))) (("pkgconfig" (package "pkg-config" "0.29.2" #< file: "gnu/packages/pkg-config.scm" line: 36 column: 2>))) (("libunistring" (package "libunistring" "0.9.10" #< file: "gnu/packages/libunistring.scm" line: 35 column: 2>)) ("bdw-gc" (package "libgc" "8.0.4" #< file: "gnu/packages/bdw-gc.scm" line: 33 column: 2>)))) actual-value: ((("libffi" (package "libffi" "3.3" #< file: "gnu/packages/libffi.scm" line: 44 column: 2>)) ("bash" (package "bash-minimal" "5.1.8" #< file: "gnu/packages/bash.scm" line: 215 column: 2>))) (("pkgconfig" (package "pkg-config" "0.29.2" #< file: "gnu/packages/pkg-config.scm" line: 36 column: 2>))) (("libunistring" (package "libunistring" "0.9.10" #< file: "gnu/packages/libunistring.scm" line: 35 column: 2>)) ("bdw-gc" (package "libgc" "8.0.4" #< file: "gnu/packages/bdw-gc.scm" line: 33 column: 2>)))) result: PASS test-name: inferior-package-search-paths location: /home/denyosef/guix/tests/inferior.scm:199 source: + (test-equal + "inferior-package-search-paths" + (package-native-search-paths guile-3.0) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (guile (first (lookup-inferior-packages inferior "guile"))) + (result + (inferior-package-native-search-paths guile))) + (close-inferior inferior) + result)) expected-value: (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) actual-value: (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) result: PASS test-name: inferior-eval-with-store location: /home/denyosef/guix/tests/inferior.scm:208 source: + (test-equal + "inferior-eval-with-store" + (add-text-to-store %store "foo" "Hello, world!") + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (inferior-eval-with-store + inferior + %store + '(lambda (store) + (add-text-to-store store "foo" "Hello, world!"))))) expected-value: "/home/denyosef/guix/test-tmp/store/z2my8kmzh49vm38554dahhl3zipcylgc-foo" actual-value: "/home/denyosef/guix/test-tmp/store/z2my8kmzh49vm38554dahhl3zipcylgc-foo" result: PASS test-name: inferior-eval-with-store, &store-protocol-error location: /home/denyosef/guix/tests/inferior.scm:217 source: + (test-assert + "inferior-eval-with-store, &store-protocol-error" + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (guard (c ((store-protocol-error? c) + (string-contains + (store-protocol-error-message c) + "invalid character"))) + (inferior-eval-with-store + inferior + %store + '(lambda (store) + (add-text-to-store store "we|rd/?!@" "uh uh"))) + #f))) actual-value: 0 result: PASS test-name: inferior-eval-with-store, exception location: /home/denyosef/guix/tests/inferior.scm:229 source: + (test-equal + "inferior-eval-with-store, exception" + '(the-answer = 42) + (let ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (inferior-exception-arguments c))) + (inferior-eval-with-store + inferior + %store + '(lambda (store) (throw 'the-answer '= 42)))))) expected-value: (the-answer = 42) actual-value: (the-answer = 42) result: PASS test-name: inferior-eval-with-store, not a procedure location: /home/denyosef/guix/tests/inferior.scm:240 source: + (test-equal + "inferior-eval-with-store, not a procedure" + 'wrong-type-arg + (let ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix"))) + (guard (c ((inferior-exception? c) + (close-inferior inferior) + (car (inferior-exception-arguments c)))) + (inferior-eval-with-store + inferior + %store + '(+ 1 2))))) expected-value: wrong-type-arg actual-value: wrong-type-arg result: PASS test-name: inferior-package-derivation location: /home/denyosef/guix/tests/inferior.scm:249 source: + (test-equal + "inferior-package-derivation" + (map derivation-file-name + (list (package-derivation + %store + %bootstrap-guile + "x86_64-linux") + (package-derivation + %store + %bootstrap-guile + "armhf-linux"))) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (packages (inferior-packages inferior)) + (guile (find (lambda (package) + (string=? + (package-name %bootstrap-guile) + (inferior-package-name package))) + packages))) + (map derivation-file-name + (list (inferior-package-derivation + %store + guile + "x86_64-linux") + (inferior-package-derivation + %store + guile + "armhf-linux"))))) expected-value: ("/home/denyosef/guix/test-tmp/store/dmz2f8w9hv7h0nrrxskxz3rqs28v30qy-guile-bootstrap-2.0.drv" "/home/denyosef/guix/test-tmp/store/y8apysj7ivbv7lw2cjw6b39yv6gz6p19-guile-bootstrap-2.0.drv") actual-value: ("/home/denyosef/guix/test-tmp/store/dmz2f8w9hv7h0nrrxskxz3rqs28v30qy-guile-bootstrap-2.0.drv" "/home/denyosef/guix/test-tmp/store/y8apysj7ivbv7lw2cjw6b39yv6gz6p19-guile-bootstrap-2.0.drv") result: PASS test-name: inferior-package-replacement location: /home/denyosef/guix/tests/inferior.scm:267 source: + (test-equal + "inferior-package-replacement" + (package-derivation + %store + (package-replacement sqlite) + "x86_64-linux") + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (packages (inferior-packages inferior))) + (match (lookup-inferior-packages + inferior + (package-name sqlite) + (package-version sqlite)) + ((inferior-sqlite rest ...) + (inferior-package-derivation + %store + (inferior-package-replacement inferior-sqlite) + "x86_64-linux"))))) result: SKIP test-name: inferior-package->manifest-entry location: /home/denyosef/guix/tests/inferior.scm:283 source: + (test-equal + "inferior-package->manifest-entry" + (manifest-entry->list + (package->manifest-entry + (first (find-best-packages-by-name "guile" #f)))) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (guile (first (lookup-inferior-packages inferior "guile"))) + (entry (inferior-package->manifest-entry guile))) + (close-inferior inferior) + (manifest-entry->list entry))) expected-value: ("guile" "3.0.8" "out" (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) (("libunistring" "0.9.10" "out" () ()) ("libgc" "8.0.4" "out" () ()))) actual-value: ("guile" "3.0.8" "out" (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) (("libunistring" "0.9.10" "out" () ()) ("libgc" "8.0.4" "out" () ()))) result: PASS test-name: packages->manifest location: /home/denyosef/guix/tests/inferior.scm:293 source: + (test-equal + "packages->manifest" + (map manifest-entry->list + (manifest-entries + (packages->manifest + (find-best-packages-by-name "guile" #f)))) + (let* ((inferior + (open-inferior + %top-builddir + #:command + "scripts/guix")) + (guile (first (lookup-inferior-packages inferior "guile"))) + (manifest (packages->manifest (list guile)))) + (close-inferior inferior) + (map manifest-entry->list + (manifest-entries manifest)))) expected-value: (("guile" "3.0.8" "out" (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) (("libunistring" "0.9.10" "out" () ()) ("libgc" "8.0.4" "out" () ())))) actual-value: (("guile" "3.0.8" "out" (#< variable: "GUILE_LOAD_PATH" files: ("share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f> #< variable: "GUILE_LOAD_COMPILED_PATH" files: ("lib/guile/3.0/site-ccache" "share/guile/site/3.0") separator: ":" file-type: directory file-pattern: #f>) (("libunistring" "0.9.10" "out" () ()) ("libgc" "8.0.4" "out" () ())))) result: PASS SKIP: tests/pypi ================ test-name: guix-package->pypi-name, old URL style location: /home/denyosef/guix/tests/pypi.scm:137 source: + (test-equal + "guix-package->pypi-name, old URL style" + "psutil" + (guix-package->pypi-name + (dummy-package + "foo" + (source + (dummy-origin + (uri "https://pypi.org/packages/source/p/psutil/psutil-4.3.0.tar.gz")))))) expected-value: "psutil" actual-value: "psutil" result: PASS test-name: guix-package->pypi-name, new URL style location: /home/denyosef/guix/tests/pypi.scm:145 source: + (test-equal + "guix-package->pypi-name, new URL style" + "certbot" + (guix-package->pypi-name + (dummy-package + "foo" + (source + (dummy-origin + (uri "https://pypi.org/packages/a2/3b/4756e6a0ceb14e084042a2a65c615d68d25621c6fd446d0fc10d14c4ce7d/certbot-0.8.1.tar.gz")))))) expected-value: "certbot" actual-value: "certbot" result: PASS test-name: guix-package->pypi-name, several URLs location: /home/denyosef/guix/tests/pypi.scm:153 source: + (test-equal + "guix-package->pypi-name, several URLs" + "cram" + (guix-package->pypi-name + (dummy-package + "foo" + (source + (dummy-origin + (uri (list "https://bitheap.org/cram/cram-0.7.tar.gz" + (pypi-uri "cram" "0.7")))))))) expected-value: "cram" actual-value: "cram" result: PASS test-name: guix-package->pypi-name, honor 'upstream-name' location: /home/denyosef/guix/tests/pypi.scm:162 source: + (test-equal + "guix-package->pypi-name, honor 'upstream-name'" + "bar-3" + (guix-package->pypi-name + (dummy-package + "foo" + (properties '((upstream-name . "bar-3")))))) expected-value: "bar-3" actual-value: "bar-3" result: PASS test-name: specification->requirement-name location: /home/denyosef/guix/tests/pypi.scm:169 source: + (test-equal + "specification->requirement-name" + '("Fizzy" + "PickyThing" + "SomethingWithMarker" + "requests" + "pip") + (map specification->requirement-name + test-specifications)) expected-value: ("Fizzy" "PickyThing" "SomethingWithMarker" "requests" "pip") actual-value: ("Fizzy" "PickyThing" "SomethingWithMarker" "requests" "pip") result: PASS test-name: parse-requires.txt location: /home/denyosef/guix/tests/pypi.scm:173 source: + (test-equal + "parse-requires.txt" + (list '("foo" "bar") '("pytest")) + (mock ((ice-9 ports) + call-with-input-file + call-with-input-string) + (parse-requires.txt test-requires.txt))) expected-value: (("foo" "bar") ("pytest")) actual-value: (("foo" "bar") ("pytest")) result: PASS test-name: parse-requires.txt - Beaker location: /home/denyosef/guix/tests/pypi.scm:179 source: + (test-equal + "parse-requires.txt - Beaker" + (list '() '("Mock" "coverage")) + (mock ((ice-9 ports) + call-with-input-file + call-with-input-string) + (parse-requires.txt test-requires.txt-beaker))) expected-value: (() ("Mock" "coverage")) actual-value: (() ("Mock" "coverage")) result: PASS test-name: parse-wheel-metadata, with extras location: /home/denyosef/guix/tests/pypi.scm:185 source: + (test-equal + "parse-wheel-metadata, with extras" + (list '("wrapt" "bar") '("tox" "bumpversion")) + (mock ((ice-9 ports) + call-with-input-file + call-with-input-string) + (parse-wheel-metadata test-metadata-with-extras))) expected-value: (("wrapt" "bar") ("tox" "bumpversion")) actual-value: (("wrapt" "bar") ("tox" "bumpversion")) result: PASS test-name: parse-wheel-metadata, with extras - Jedi location: /home/denyosef/guix/tests/pypi.scm:191 source: + (test-equal + "parse-wheel-metadata, with extras - Jedi" + (list '("parso") '("pytest")) + (mock ((ice-9 ports) + call-with-input-file + call-with-input-string) + (parse-wheel-metadata + test-metadata-with-extras-jedi))) expected-value: (("parso") ("pytest")) actual-value: (("parso") ("pytest")) result: PASS test-name: find-project-url, with numpy location: /home/denyosef/guix/tests/pypi.scm:197 source: + (test-equal + "find-project-url, with numpy" + "numpy" + (find-project-url + "numpy" + "https://files.pythonhosted.org/packages/0a/c8/a62767a6b374a0dfb02d2a0456e5f56a372cdd1689dbc6ffb6bf1ddedbc0/numpy-1.22.1.zip")) expected-value: "numpy" actual-value: "numpy" result: PASS test-name: find-project-url, uWSGI location: /home/denyosef/guix/tests/pypi.scm:203 source: + (test-equal + "find-project-url, uWSGI" + "uwsgi" + (find-project-url + "uWSGI" + "https://files.pythonhosted.org/packages/24/fd/93851e4a076719199868d4c918cc93a52742e68370188c1c570a6e42a54f/uwsgi-2.0.20.tar.gz")) expected-value: "uwsgi" actual-value: "uwsgi" result: PASS test-name: find-project-url, flake8-array-spacing location: /home/denyosef/guix/tests/pypi.scm:209 source: + (test-equal + "find-project-url, flake8-array-spacing" + "flake8_array_spacing" + (find-project-url + "flake8-array-spacing" + "https://files.pythonhosted.org/packages/a4/21/ff29b901128b681b7de7a2787b3aeb3e1f3cba4a8c0cffa9712cbff016bc/flake8_array_spacing-0.2.0.tar.gz")) expected-value: "flake8_array_spacing" actual-value: "flake8_array_spacing" result: PASS test-name: find-project-url, foo/goo location: /home/denyosef/guix/tests/pypi.scm:215 source: + (test-equal + "find-project-url, foo/goo" + "foo" + (find-project-url + "foo" + "https://files.pythonhosted.org/packages/f0/f00/goo-0.0.0.tar.gz")) expected-value: "foo" actual-value: "foo" result: PASS test-name: pypi->guix-package, no wheel location: /home/denyosef/guix/tests/pypi.scm:221 source: + (test-assert + "pypi->guix-package, no wheel" + (mock ((guix import utils) + url-fetch + (lambda (url file-name) + (match url + ("https://example.com/foo-1.0.0.tar.gz" + (begin + (mkdir-p "foo-1.0.0/src/bizarre.egg-info") + (with-output-to-file + "foo-1.0.0/src/bizarre.egg-info/requires.txt" + (lambda () (display test-requires.txt))) + (parameterize + ((current-output-port (%make-void-port "rw+"))) + (system* "tar" "czvf" file-name "foo-1.0.0/")) + (delete-file-recursively "foo-1.0.0") + (set! test-source-hash + (call-with-input-file file-name port-sha256)))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://pypi.org/pypi/foo/json" + (values + (open-input-string test-json-1) + (string-length test-json-1))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (match (pypi->guix-package "foo") + (('package + ('name "python-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('pypi-uri "foo" 'version)) + ('sha256 ('base32 (? string? hash))))) + ('build-system 'python-build-system) + ('propagated-inputs + ('list 'python-bar 'python-foo)) + ('native-inputs ('list 'python-pytest)) + ('home-page "http://example.com") + ('synopsis "summary") + ('description "summary") + ('license 'license:lgpl2.0)) + (and (string=? + (bytevector->nix-base32-string test-source-hash) + hash) + (equal? + (pypi->guix-package "foo" #:version "1.0.0") + (pypi->guix-package "foo")) + (guard (c ((error? c) #t)) + (pypi->guix-package + "foo" + #:version + "42")))) + (x (pk 'fail x #f)))))) actual-value: #t result: PASS test-name: pypi->guix-package, wheels location: /home/denyosef/guix/tests/pypi.scm:276 source: + (test-assert + "pypi->guix-package, wheels" + (mock ((guix import utils) + url-fetch + (lambda (url file-name) + (match url + ("https://example.com/foo-1.0.0.tar.gz" + (begin + (mkdir-p "foo-1.0.0/foo.egg-info/") + (with-output-to-file + "foo-1.0.0/foo.egg-info/requires.txt" + (lambda () + (display + "wrong data to make sure we're testing wheels "))) + (parameterize + ((current-output-port (%make-void-port "rw+"))) + (system* "tar" "czvf" file-name "foo-1.0.0/")) + (delete-file-recursively "foo-1.0.0") + (set! test-source-hash + (call-with-input-file file-name port-sha256)))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + (begin + (mkdir "foo-1.0.0.dist-info") + (with-output-to-file + "foo-1.0.0.dist-info/METADATA" + (lambda () (display test-metadata))) + (let ((zip-file (string-append file-name ".zip"))) + (system* + "zip" + "-q" + zip-file + "foo-1.0.0.dist-info/METADATA") + (rename-file zip-file file-name)) + (delete-file-recursively "foo-1.0.0.dist-info"))) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://pypi.org/pypi/foo/json" + (values + (open-input-string test-json-1) + (string-length test-json-1))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (invalidate-memoization! pypi->guix-package) + (match (pypi->guix-package "foo") + (('package + ('name "python-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('pypi-uri "foo" 'version)) + ('sha256 ('base32 (? string? hash))))) + ('build-system 'python-build-system) + ('propagated-inputs + ('list 'python-bar 'python-baz)) + ('native-inputs ('list 'python-pytest)) + ('home-page "http://example.com") + ('synopsis "summary") + ('description "summary") + ('license 'license:lgpl2.0)) + (string=? + (bytevector->nix-base32-string test-source-hash) + hash)) + (x (pk 'fail x #f)))))) result: SKIP test-name: pypi->guix-package, no usable requirement file. location: /home/denyosef/guix/tests/pypi.scm:339 source: + (test-assert + "pypi->guix-package, no usable requirement file." + (mock ((guix import utils) + url-fetch + (lambda (url file-name) + (match url + ("https://example.com/foo-1.0.0.tar.gz" + (mkdir-p "foo-1.0.0/foo.egg-info/") + (parameterize + ((current-output-port (%make-void-port "rw+"))) + (system* "tar" "czvf" file-name "foo-1.0.0/")) + (delete-file-recursively "foo-1.0.0") + (set! test-source-hash + (call-with-input-file file-name port-sha256))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://pypi.org/pypi/foo/json" + (values + (open-input-string test-json-1) + (string-length test-json-1))) + ("https://example.com/foo-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (invalidate-memoization! pypi->guix-package) + (match (pypi->guix-package "foo") + (('package + ('name "python-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('pypi-uri "foo" 'version)) + ('sha256 ('base32 (? string? hash))))) + ('build-system 'python-build-system) + ('home-page "http://example.com") + ('synopsis "summary") + ('description "summary") + ('license 'license:lgpl2.0)) + (string=? + (bytevector->nix-base32-string test-source-hash) + hash)) + (x (pk 'fail x #f)))))) actual-value: #t result: PASS test-name: pypi->guix-package, package name contains "-" followed by digits location: /home/denyosef/guix/tests/pypi.scm:385 source: + (test-assert + "pypi->guix-package, package name contains \"-\" followed by digits" + (mock ((guix import utils) + url-fetch + (lambda (url file-name) + (match url + ("https://example.com/foo-99-1.0.0.tar.gz" + (begin + (mkdir-p "foo-99-1.0.0/src/bizarre.egg-info") + (with-output-to-file + "foo-99-1.0.0/src/bizarre.egg-info/requires.txt" + (lambda () (display test-requires.txt))) + (parameterize + ((current-output-port (%make-void-port "rw+"))) + (system* "tar" "czvf" file-name "foo-99-1.0.0/")) + (delete-file-recursively "foo-99-1.0.0") + (set! test-source-hash + (call-with-input-file file-name port-sha256)))) + ("https://example.com/foo-99-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://pypi.org/pypi/foo-99/json" + (values + (open-input-string test-json-2) + (string-length test-json-2))) + ("https://example.com/foo-99-1.0.0-py2.py3-none-any.whl" + #f) + (_ (error "Unexpected URL: " url))))) + (match (pypi->guix-package "foo-99") + (('package + ('name "python-foo-99") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('pypi-uri "foo-99" 'version)) + ('sha256 ('base32 (? string? hash))))) + ('properties + ('quote (("upstream-name" . "foo-99")))) + ('build-system 'python-build-system) + ('propagated-inputs + ('list 'python-bar 'python-foo)) + ('native-inputs ('list 'python-pytest)) + ('home-page "http://example.com") + ('synopsis "summary") + ('description "summary") + ('license 'license:lgpl2.0)) + (string=? + (bytevector->nix-base32-string test-source-hash) + hash)) + (x (pk 'fail x #f)))))) actual-value: #t result: PASS warning: project name foo does not appear verbatim in the PyPI URI hint: The PyPI URI is: `https://files.pythonhosted.org/packages/f0/f00/goo-0.0.0.tar.gz'. You should review the pypi-uri declaration in the generated package. You may need to replace "foo" with a substring of the PyPI URI that identifies the package. warning: Cannot guess requirements from source archive: no requires.txt file found. RUN: tests/services/configuration ================================= test-name: default value, no serialization location: /home/denyosef/guix/tests/services/configuration.scm:39 source: + (test-equal + "default value, no serialization" + 80 + (port-configuration-port (port-configuration))) expected-value: 80 actual-value: 80 result: PASS test-name: default value, custom serializer location: /home/denyosef/guix/tests/services/configuration.scm:46 source: + (test-equal + "default value, custom serializer" + 80 + (port-configuration-cs-port + (port-configuration-cs))) expected-value: 80 actual-value: 80 result: PASS test-name: no default value, provided location: /home/denyosef/guix/tests/services/configuration.scm:54 source: + (test-equal + "no default value, provided" + 55 + (port-configuration-ndv-port + (port-configuration-ndv (port 55)))) expected-value: 55 actual-value: 55 result: PASS test-name: no default value, not provided location: /home/denyosef/guix/tests/services/configuration.scm:59 source: + (test-assert + "no default value, not provided" + (guard (c ((configuration-error? c) #t)) + (port-configuration-ndv-port + (port-configuration-ndv)))) actual-value: #t result: PASS test-name: serialize-configuration location: /home/denyosef/guix/tests/services/configuration.scm:70 source: + (test-assert + "serialize-configuration" + (gexp? (let ((config (serializable-configuration))) + (serialize-configuration + config + serializable-configuration-fields)))) actual-value: #t result: PASS test-name: serialize-configuration with no-serialization location: /home/denyosef/guix/tests/services/configuration.scm:79 source: + (test-assert + "serialize-configuration with no-serialization" + (not (false-if-exception + (let ((config (serializable-configuration))) + (serialize-configuration + config + serializable-configuration-fields))))) actual-value: #t result: PASS test-name: serialize-configuration with prefix location: /home/denyosef/guix/tests/services/configuration.scm:92 source: + (test-assert + "serialize-configuration with prefix" + (gexp? (let ((config (configuration-with-prefix))) + (serialize-configuration + config + configuration-with-prefix-fields)))) actual-value: #t result: PASS test-name: maybe value serialization location: /home/denyosef/guix/tests/services/configuration.scm:109 source: + (test-equal + "maybe value serialization" + "port=80" + (serialize-maybe-number "port" 80)) expected-value: "port=80" actual-value: "port=80" result: PASS test-name: maybe value without serialization no procedure bound location: /home/denyosef/guix/tests/services/configuration.scm:119 source: + (test-assert + "maybe value without serialization no procedure bound" + (not (defined? 'serialize-maybe-string))) actual-value: #t result: PASS SKIP: tests/upstream ==================== test-name: coalesce-sources same version location: /home/denyosef/guix/tests/upstream.scm:38 source: + (test-equal + "coalesce-sources same version" + (list (upstream-source + (package "foo") + (version "1") + (urls '("ftp://example.org/foo-1.tar.xz" + "ftp://example.org/foo-1.tar.gz")) + (signature-urls + '("ftp://example.org/foo-1.tar.xz.sig" + "ftp://example.org/foo-1.tar.gz.sig")))) + (coalesce-sources + (list (upstream-source + (package "foo") + (version "1") + (urls '("ftp://example.org/foo-1.tar.gz")) + (signature-urls + '("ftp://example.org/foo-1.tar.gz.sig"))) + (upstream-source + (package "foo") + (version "1") + (urls '("ftp://example.org/foo-1.tar.xz")) + (signature-urls + '("ftp://example.org/foo-1.tar.xz.sig")))))) result: SKIP test-name: changed-inputs returns no changes location: /home/denyosef/guix/tests/upstream.scm:105 source: + (test-equal + "changed-inputs returns no changes" + '() + (changed-inputs test-package test-package-sexp)) expected-value: () actual-value: () result: PASS test-name: changed-inputs returns changes to labelled input list location: /home/denyosef/guix/tests/upstream.scm:109 source: + (test-assert + "changed-inputs returns changes to labelled input list" + (let ((changes + (changed-inputs + (package + (inherit test-package) + (inputs `(("hello" ,hello) ("sed" ,sed)))) + test-package-sexp))) + (match changes + (((? upstream-input-change? item)) + (and (equal? + (upstream-input-change-type item) + 'regular) + (equal? + (upstream-input-change-action item) + 'remove) + (string=? + (upstream-input-change-name item) + "sed"))) + (else (pk else #f))))) actual-value: #t result: PASS test-name: changed-inputs returns changes to all labelled input lists location: /home/denyosef/guix/tests/upstream.scm:127 source: + (test-assert + "changed-inputs returns changes to all labelled input lists" + (let ((changes + (changed-inputs + (package + (inherit test-package) + (inputs '()) + (native-inputs '()) + (propagated-inputs '())) + test-package-sexp))) + (match changes + (((? upstream-input-change? items) ...) + (and (equal? + (map upstream-input-change-type items) + '(regular native native propagated)) + (equal? + (map upstream-input-change-action items) + '(add add add add)) + (equal? + (map upstream-input-change-name items) + '("hello" "sed" "tar" "grep")))) + (else (pk else #f))))) actual-value: #t result: PASS test-name: changed-inputs returns changes to plain input list location: /home/denyosef/guix/tests/upstream.scm:178 source: + (test-assert + "changed-inputs returns changes to plain input list" + (let ((changes + (changed-inputs + (package + (inherit test-new-package) + (inputs (list hello sed))) + test-new-package-sexp))) + (match changes + (((? upstream-input-change? item)) + (and (equal? + (upstream-input-change-type item) + 'regular) + (equal? + (upstream-input-change-action item) + 'remove) + (string=? + (upstream-input-change-name item) + "sed"))) + (else (pk else #f))))) actual-value: #t result: PASS test-name: changed-inputs returns changes to all plain input lists location: /home/denyosef/guix/tests/upstream.scm:195 source: + (test-assert + "changed-inputs returns changes to all plain input lists" + (let ((changes + (changed-inputs + (package + (inherit test-new-package) + (inputs '()) + (native-inputs '()) + (propagated-inputs '())) + test-new-package-sexp))) + (match changes + (((? upstream-input-change? items) ...) + (and (equal? + (map upstream-input-change-type items) + '(regular native native propagated)) + (equal? + (map upstream-input-change-action items) + '(add add add add)) + (equal? + (map upstream-input-change-name items) + '("hello" "sed" "tar" "grep")))) + (else (pk else #f))))) actual-value: #t result: PASS RUN: tests/offload ================== test-name: #f location: /home/denyosef/guix/tests/offload.scm:55 source: + (test-assert + (machine-matches? + (deprecated-build-machine "i686-linux") + (build-requirements (system "i686-linux")))) actual-value: #t result: PASS test-name: #f location: /home/denyosef/guix/tests/offload.scm:60 source: + (test-assert + (machine-matches? + (new-build-machine '("i686-linux")) + (build-requirements (system "i686-linux")))) actual-value: #t result: PASS test-name: #f location: /home/denyosef/guix/tests/offload.scm:66 source: + (test-assert + (machine-matches? + (new-build-machine + '("armhf-linux" + "aarch64-linux" + "i686-linux" + "x86_64-linux")) + (build-requirements (system "armhf-linux")))) actual-value: #t result: PASS /home/denyosef/guix/tests/offload.scm:41:2: warning: The 'system' field is deprecated, please use 'systems' instead. FAIL: tests/guix-hash ===================== + guix hash --version guix hash (GNU Guix) 1.3.0.17414-e777c Copyright (C) 2022 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. + tmpdir=guix-hash-17836 + trap 'rm -rf "$tmpdir"' EXIT ++ guix hash /dev/null + test 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 ++ echo -n ++ guix hash - + test 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 ++ guix hash -f nix-base32 /dev/null + test 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 = 0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 ++ guix hash -f hex /dev/null + test e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 = e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 ++ guix hash -f base32 /dev/null + test 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfeswmrw6csxbkq = 4oymiquy7qobjgx36tejs35zeqt24qpemsnzgtfeswmrw6csxbkq ++ guix hash -H sha512 -f hex /dev/null + test cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e = cf83e1357eefb8bdf1542850d66d8007d620e4050b5715dc83f4a921d36ce9ce47d0d13c5d85f2b0ff8318d2877eec2f63b931bd47417a81a538327af927da3e ++ guix hash -H sha1 -f base64 /dev/null + test 2jmj7l5rSw0yVb/vlWAYkK/YBwk= = 2jmj7l5rSw0yVb/vlWAYkK/YBwk= ++ guix hash /dev/null /home/denyosef/guix/README ++ guix hash /dev/null ++ guix hash /home/denyosef/guix/README + test '0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 14qjv26jsbh4v648g095ig6ahczk7c9bas23ci1i60ljy8m1gx8p' = '0mdqa9w1p6cmli6976v4wi0sw9r4p5prkj7lzfd1877wk11c9c73 14qjv26jsbh4v648g095ig6ahczk7c9bas23ci1i60ljy8m1gx8p' + guix hash guix hash: error: no arguments specified ++ guix hash -S git -H sha1 -f hex /dev/null ;;; Failed to autoload git-hash-file in (disarchive git-hash): ;;; no code for module (disarchive git-hash) Backtrace: In ice-9/boot-9.scm: 1752:10 12 (with-exception-handler _ _ #:unwind? _ # _) In unknown file: 11 (apply-smob/0 #) In ice-9/boot-9.scm: 724:2 10 (call-with-prompt _ _ #) In ice-9/eval.scm: 619:8 9 (_ #(#(#))) In guix/ui.scm: 2247:7 8 (run-guix . _) 2210:10 7 (run-guix-command _ . _) In srfi/srfi-1.scm: 634:9 6 (for-each # …) In unknown file: 5 (_ # …) In guix/scripts/hash.scm: 197:7 4 (formatted-hash _) In ice-9/boot-9.scm: 1747:15 3 (with-exception-handler # …) 1752:10 2 (with-exception-handler _ _ #:unwind? _ # _) In guix/scripts/hash.scm: 69:7 1 (git-hash "/dev/null" _ _) In ice-9/boot-9.scm: 1685:16 0 (raise-exception _ #:continuable? _) ice-9/boot-9.scm:1685:16: In procedure raise-exception: error: git-hash-file: unbound variable + test = e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 ./tests/guix-hash.sh: line 44: test: =: unary operator expected + rm -rf guix-hash-17836 FAIL tests/guix-hash.sh (exit status: 2)