commit: 767a0a18d88479c713f1b9b034bd06eedfe71a80 (or rather the previous commit, there are some small unrelated changes in gnu/packages/idris.scm)
make check TESTS="tests/swh.scm tests/pypi.scm tests/gem.scm tests/crate.scm tests/cpan.scm" SCM_LOG_DRIVER_FLAGS="--brief=no" ================================================= GNU Guix 1.0.1.1832-23243: ./test-suite.log ================================================= # TOTAL: 21 # PASS: 12 # SKIP: 1 # XFAIL: 0 # FAIL: 8 # XPASS: 0 # ERROR: 0 .. contents:: :depth: 2 FAIL: tests/swh =============== test-name: lookup-origin location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:49 source: + (test-equal + "lookup-origin" + (list 42 "git" "http://example.org/guix.git") + (with-json-result + %origin + (let ((origin + (lookup-origin "http://example.org/guix.git"))) + (list (origin-id origin) + (origin-type origin) + (origin-url origin))))) expected-value: (42 "git" "http://example.org/guix.git") actual-value: (#f #f #f) result: FAIL test-name: lookup-origin, not found location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:57 source: + (test-equal + "lookup-origin, not found" + #f + (with-http-server + 404 + "Nope." + (parameterize + ((%swh-base-url (%local-url))) + (lookup-origin "http://example.org/whatever")))) expected-value: #f actual-value: #f result: PASS test-name: lookup-directory location: /home/raingloom/Projects/Guix/guix-source/tests/swh.scm:63 source: + (test-equal + "lookup-directory" + '(("one" 123) ("two" 456)) + (with-json-result + %directory-entries + (map (lambda (entry) + (list (directory-entry-name entry) + (directory-entry-length entry))) + (lookup-directory "123")))) expected-value: (("one" 123) ("two" 456)) actual-value: #f actual-error: + (wrong-type-arg + #f + "Wrong type (expecting ~A): ~S" + ("array" + (#<hash-table f97f40 4/31> + #<hash-table f97b00 4/31>)) + ((#<hash-table f97f40 4/31> + #<hash-table f97b00 4/31>))) result: FAIL FAIL: tests/pypi ================ test-name: guix-package->pypi-name, old URL style location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:122 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:130 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:138 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: specification->requirement-name location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:147 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:151 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:157 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:163 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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:169 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: pypi->guix-package, no wheel location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:175 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) + (string-length test-json))) + ("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 + ('quasiquote + (("python-bar" ('unquote 'python-bar)) + ("python-foo" ('unquote 'python-foo))))) + ('native-inputs + ('quasiquote + (("python-pytest" ('unquote '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: #f actual-error: + (wrong-type-arg + #f + "Wrong type (expecting ~A): ~S" + ("array" #f) + (#f)) result: FAIL test-name: pypi->guix-package, wheels location: /home/raingloom/Projects/Guix/guix-source/tests/pypi.scm:231 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) + (string-length test-json))) + ("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 + ('quasiquote + (("python-bar" ('unquote 'python-bar)) + ("python-baz" ('unquote 'python-baz))))) + ('native-inputs + ('quasiquote + (("python-pytest" ('unquote '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/raingloom/Projects/Guix/guix-source/tests/pypi.scm:299 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) + (string-length test-json))) + ("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: #f actual-error: + (wrong-type-arg + #f + "Wrong type (expecting ~A): ~S" + ("array" #f) + (#f)) result: FAIL random seed for tests: 1564442102 FAIL: tests/gem =============== test-name: gem->guix-package location: /home/raingloom/Projects/Guix/guix-source/tests/gem.scm:77 source: + (test-assert + "gem->guix-package" + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://rubygems.org/api/v1/gems/foo.json" + (values + (open-input-string test-foo-json) + (string-length test-foo-json))) + (_ (error "Unexpected URL: " url))))) + (match (gem->guix-package "foo") + (('package + ('name "ruby-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "foo" 'version)) + ('sha256 + ('base32 + "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk")))) + ('build-system 'ruby-build-system) + ('propagated-inputs + ('quasiquote + (("bundler" ('unquote 'bundler)) + ("ruby-bar" ('unquote 'ruby-bar))))) + ('synopsis "A cool gem") + ('description "This package provides a cool gem") + ('home-page "https://example.com") + ('license ('list 'license:expat 'license:asl2.0))) + #t) + (x (pk 'fail x #f))))) actual-value: #f actual-error: + (wrong-type-arg + "string-prefix?" + "Wrong type argument in position ~A (expecting ~A): ~S" + (2 "string" #f) + (#f)) result: FAIL test-name: gem-recursive-import location: /home/raingloom/Projects/Guix/guix-source/tests/gem.scm:109 source: + (test-assert + "gem-recursive-import" + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://rubygems.org/api/v1/gems/foo.json" + (values + (open-input-string test-foo-json) + (string-length test-foo-json))) + ("https://rubygems.org/api/v1/gems/bar.json" + (values + (open-input-string test-bar-json) + (string-length test-bar-json))) + ("https://rubygems.org/api/v1/gems/bundler.json" + (values + (open-input-string test-bundler-json) + (string-length test-bundler-json))) + (_ (error "Unexpected URL: " url))))) + (match (stream->list (gem-recursive-import "foo")) + ((('package + ('name "ruby-foo") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "foo" 'version)) + ('sha256 + ('base32 + "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk")))) + ('build-system 'ruby-build-system) + ('propagated-inputs + ('quasiquote + (("bundler" ('unquote 'bundler)) + ("ruby-bar" ('unquote 'ruby-bar))))) + ('synopsis "A cool gem") + ('description "This package provides a cool gem") + ('home-page "https://example.com") + ('license ('list 'license:expat 'license:asl2.0))) + ('package + ('name "ruby-bundler") + ('version "1.14.2") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "bundler" 'version)) + ('sha256 + ('base32 + "1446xiz7zg0bz7kgx9jv84y0s4hpsg61dj5l3qb0i00avc1kxd9v")))) + ('build-system 'ruby-build-system) + ('synopsis "Ruby gem bundler") + ('description "Ruby gem bundler") + ('home-page "https://bundler.io/") + ('license 'license:expat)) + ('package + ('name "ruby-bar") + ('version "1.0.0") + ('source + ('origin + ('method 'url-fetch) + ('uri ('rubygems-uri "bar" 'version)) + ('sha256 + ('base32 + "1a270mlajhrmpqbhxcqjqypnvgrq4pgixpv3w9gwp1wrrapnwrzk")))) + ('build-system 'ruby-build-system) + ('propagated-inputs + ('quasiquote (('"bundler" ('unquote 'bundler))))) + ('synopsis "Another cool gem") + ('description "Another cool gem") + ('home-page "https://example.com") + ('license ('list 'license:expat 'license:asl2.0)))) + #t) + (x (pk 'fail x #f))))) actual-value: #f actual-error: + (wrong-type-arg + "string-prefix?" + "Wrong type argument in position ~A (expecting ~A): ~S" + (2 "string" #f) + (#f)) result: FAIL random seed for tests: 1564442069 FAIL: tests/crate ================= test-name: guix-package->crate-name location: /home/raingloom/Projects/Guix/guix-source/tests/crate.scm:57 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/raingloom/Projects/Guix/guix-source/tests/crate.scm:65 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-crate)) + ("https://crates.io/api/v1/crates/foo/1.0.0/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.0/dependencies" + (open-input-string test-dependencies)) + (_ (error "Unexpected URL: " url))))) + (match (crate->guix-package "foo") + (('package + ('name "rust-foo") + ('version "1.0.0") + ('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 + ('#:cargo-inputs + (("rust-bar" ('unquote rust-bar)))))) + ('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))))) ;;; (fail #f #f) actual-value: #f result: FAIL random seed for tests: 1564441648 FAIL: tests/cpan ================ random seed for tests: 1564441618 test-name: cpan->guix-package location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:61 source: + (test-assert + "cpan->guix-package" + (mock ((guix build download) + url-fetch + (lambda* (url + file-name + #:key + (mirrors '()) + verify-certificate?) + (with-output-to-file + file-name + (lambda () + (display + (match url + ("http://example.com/Foo-Bar-0.1.tar.gz" + test-source) + (_ (error "Unexpected URL: " url)))))))) + (mock ((guix http-client) + http-fetch + (lambda (url . rest) + (match url + ("https://fastapi.metacpan.org/v1/release/Foo-Bar" + (values + (open-input-string test-json) + (string-length test-json))) + ("https://fastapi.metacpan.org/v1/module/Test::Script?fields=distribution" + (let ((result + "{ \"distribution\" : \"Test-Script\" }")) + (values + (open-input-string result) + (string-length result)))) + (_ (error "Unexpected URL: " url))))) + (match (cpan->guix-package "Foo::Bar") + (('package + ('name "perl-foo-bar") + ('version "0.1") + ('source + ('origin + ('method 'url-fetch) + ('uri + ('string-append + "http://example.com/Foo-Bar-" + 'version + ".tar.gz")) + ('sha256 ('base32 (? string? hash))))) + ('build-system 'perl-build-system) + ('propagated-inputs + ('quasiquote + (("perl-test-script" + ('unquote 'perl-test-script))))) + ('home-page + "https://metacpan.org/release/Foo-Bar") + ('synopsis "Fizzle Fuzz") + ('description 'fill-in-yourself!) + ('license 'perl-license)) + (string=? + (bytevector->nix-base32-string + (call-with-input-string test-source port-sha256)) + hash)) + (x (pk 'fail x #f)))))) actual-value: #f actual-error: + (wrong-type-arg + "string-prefix?" + "Wrong type argument in position ~A (expecting ~A): ~S" + (2 "string" #f) + (#f)) result: FAIL test-name: source-url-http location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:110 source: + (test-equal + "source-url-http" + ((@@ (guix import cpan) cpan-source-url) + `(("download_url" + . + "http://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) + "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") expected-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz" actual-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz" result: PASS test-name: source-url-https location: /home/raingloom/Projects/Guix/guix-source/tests/cpan.scm:116 source: + (test-equal + "source-url-https" + ((@@ (guix import cpan) cpan-source-url) + `(("download_url" + . + "https://cpan.metacpan.org/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz"))) + "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz") expected-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz" actual-value: "mirror://cpan/authors/id/T/TE/TEST/Foo-Bar-0.1.tar.gz" result: PASS