summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* file-systems: Do not use (gnu packages …).Ludovic Courtès2017-03-211-1/+11
| | | | | | | | | | | | | | Fixes a regression introduced in 7208995426714c9fc3ad59cadc3cc0f52df0f018 whereby (gnu system file-systems) would pull in (gnu packages …) module, which in turn breaks when importing things like (gnu build shepherd). * gnu/system/file-systems.scm (file-system-type-predicate): Export. (file-system-packages): Move to... * gnu/system/linux-initrd.scm (file-system-packages): ... here. Add docstring. * gnu/services/base.scm: Use it. * tests/file-systems.scm ("does not pull (gnu packages …)"): New test.
* gnu: Rename "guile-next" to "guile".Ludovic Courtès2017-03-191-2/+2
| | | | | | | | | | | | | | * gnu/packages/guile.scm (guile-next): Rename to... (guile-2.2): ... this. Update users. [name]: Change to "guile". [synopsis]: Remove. [properties]: Remove 'upstream-name', 'ftp-server', and 'ftp-directory'. * gnu/packages/bioinformatics.scm (rcas-web): Update accordingly. * gnu/packages/tls.scm (gnutls/guile-2.2): Likewise. * tests/guix-build.sh: Use 'guile@2.2' instead of 'guile-next'. * doc/guix.texi (Package Transformation Options): Update examples that referred to "guile-next".
* build: Require Guile >= 2.0.9.Ludovic Courtès2017-03-181-11/+1
| | | | | | | | | | | | | | | | * configure.ac: Bump requirement to 2.0.9. * doc/guix.texi (Requirements): Adjust accordingly. * README (Requirements): Likewise. * build-aux/download.scm: Remove workaround for <http://bugs.gnu.org/13095>. * guix/build/download.scm: Likewise. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/http-client.scm: Remove workaround for <http://bugs.gnu.org/13095>. (http-fetch)[post-2.0.7?]: Remove. Remove conditional code for not POST-2.0.7?. * guix/serialization.scm (read-latin1-string): Remove mention of 2.0.9. * tests/nar.scm: Use (ice-9 control). (let/ec): Remove.
* profiles: Packages in a profile can be cross-compiled.Ludovic Courtès2017-03-171-1/+30
| | | | | | * guix/profiles.scm (profile-derivation): Add #:target parameter; pass it to 'gexp->derivation'. * tests/profiles.scm ("profile-derivation, cross-compilation"): New test.
* pack: Move absolute file name to <compressor>.Ludovic Courtès2017-03-171-1/+2
| | | | | | | | | | * guix/scripts/pack.scm (<compressor>)[package]: Remove. [command]: Document as being a gexp with an absolute file name. (%compressors): Adjust accordingly. (self-contained-tarball): Simplify PATH expression. Move 'string-join' for the compressor command on the build side. (docker-image): Simplify PATH expression. * tests/pack.scm (%gzip-compressor): Adjust accordingly.
* gexp: Add '=>' syntax to import computed modules.Ludovic Courtès2017-03-161-0/+39
| | | | | | | | | | * guix/gexp.scm (imported-files)[file-pair]: Add case for pairs where the cdr is not a string. (imported-modules): Support '=>' syntax in MODULES. * tests/gexp.scm ("imported-files with file-like objects") ("gexp->derivation & with-imported-module & computed module"): New tests. * doc/guix.texi (G-Expressions): Document '=>' syntax for 'with-imported-modules'.
* utils: Move base16 procedures to (guix base16).Ludovic Courtès2017-03-164-10/+38
| | | | | | | | | | | | | | | * guix/utils.scm (bytevector->base16-string, base16-string->bytevector): Move to... * guix/base16.scm: ... here. New file. * tests/utils.scm ("bytevector->base16-string->bytevector"): Move to... * tests/base16.scm: ... here. New file. * Makefile.am (MODULES): Add guix/base16.scm. (SCM_TESTS): Add tests/base16.scm. * build-aux/download.scm, guix/derivations.scm, guix/docker.scm, guix/import/snix.scm, guix/pk-crypto.scm, guix/scripts/authenticate.scm, guix/scripts/download.scm, guix/scripts/hash.scm, guix/store.scm, tests/hash.scm, tests/pk-crypto.scm: Adjust imports accordingly.
* tests: Expect less accurate location info in 2.2.0.Ludovic Courtès2017-03-151-1/+8
| | | | * tests/guix-system.sh: Work around inaccurate location info in 2.2.0.
* store: Adjust UTF-8 test to Guile 2.2.Ludovic Courtès2017-03-151-1/+3
| | | | | * tests/store.scm ("current-build-output-port, UTF-8 + garbage"): On Guile 2.2, expect REPLACEMENT CHARACTER instead of '?'.
* zlib: Don't rely on EBADF being ignored by 'fport_close'.Ludovic Courtès2017-03-151-1/+10
| | | | | | | | | | | | | In 2.2, 'fport_close' no longer swallows EBADF and instead raises a 'system-error' for this. This commit adjusts for 2.2. * guix/zlib.scm (close-procedure): Remove. (make-gzip-input-port): Use 'port->fdes' instead of 'fileno'. Use 'gzclose' instead of 'close-procedure'. (make-gzip-output-port): Likewise. * tests/zlib.scm ("compression/decompression pipe"): Don't check whether PARENT is closed using 'port-closed?'. Instead, use 'seek' on the underlying FD and check for EBADF.
* pack: Add unit test.Ludovic Courtès2017-03-141-0/+79
| | | | | | | * guix/scripts/pack.scm (self-contained-tarball): Add #:tar option. [build](tar-supports-sort?): New variable. Use it. * tests/pack.scm: New file. * Makefile.am (SCM_TESTS): Add it.
* ui: Don't use '%default-port-encoding' to set the encoding of string ports.Ludovic Courtès2017-03-081-4/+7
| | | | | | | | * guix/ui.scm (right-arrow): Call 'set-port-encoding!' to set PORT's encoding; remove use of 'with-fluids'. This is for compatibility with Guile 2.2 where the encoding of string ports is not influenced by %DEFAULT-PORT-ENCODING. * tests/ui.scm ("show-manifest-transaction"): Likewise.
* tests: Avoid zero-expression 'begin' form.Ludovic Courtès2017-03-081-1/+2
| | | | | * tests/cran.scm ("description->package"): Add body after the expected pattern in 'match'.
* hash: Close or flush sha256 output ports before calling their 'get' procedure.Ludovic Courtès2017-03-082-2/+4
| | | | | | | | | | Slightly different buffering of custom binary output ports in Guile 2.1.7 would lead tests missing 'close-port' or 'force-output' to fail. * tests/hash.scm ("open-sha256-port, hello"): Add call to 'force-output' before call to 'get'. * tests/nar.scm ("write-file puts file in C locale collation order"): Call 'close-port' before calling 'get-hash'.
* tests: Adjust for 'http-fetch' change in (guix import json).Ludovic Courtès2017-02-134-5/+5
| | | | | | | | | | | This is a followup to commit 81e0bc1834490a1a8092c75a0733b15c2b407285. * tests/cpan.scm ("cpan->guix-package"): Add a 'rest' argument to the lambda that mocks 'http-fetch'. * tests/crate.scm ("crate->guix-package"): Likewise. * tests/gem.scm ("gem->guix-package"): Likewise. * tests/pypi.scm ("pypi->guix-package"): Likewise. ("pypi->guix-package, wheels"): Likewise.
* tests: Relax test on utmpx entries.Ludovic Courtès2017-02-111-1/+2
| | | | | | | | Partly fixes <http://bugs.gnu.org/25476>. Reported by Paul Garlick <pgarlick@tourbillion-technology.com>. * tests/syscalls.scm ("utmpx-entries"): Check whether ENTRY is of type 'BOOT_TIME', in which case PID may be 0.
* import: pypi: Correctly handle multiple-URL origins.Ludovic Courtès2017-02-081-0/+10
| | | | | | | | | | Fixes <https://bugs.gnu.org/25635>. Reported by Sergei Trofimovich <slyfox@inbox.ru>. * guix/import/pypi.scm (guix-package->pypi-name)[url->pypi-name]: New procedure. Rewrite body to match lists in addition to strings. * tests/pypi.scm ("guix-package->pypi-name, several URLs"): New test.
* linux-container: Add 'container-excursion*'.Ludovic Courtès2017-02-071-0/+27
| | | | | | * gnu/build/linux-container.scm (container-excursion*): New procedure. * tests/containers.scm ("container-excursion*") ("container-excursion*, same namespaces"): New tests.
* file-systems: Remove dependency on (guix store).Ludovic Courtès2017-02-041-0/+8
| | | | | | | | | (gnu system file-systems) is used on the "build" side since commit 5970e8e248f6327c41c83b86bb2c89be7c3b1b4e. * gnu/system/file-systems.scm: Remove dependency on (guix store). (%store-prefix): New procedure. * tests/file-systems.scm ("does not pull (guix config)"): New test.
* tests: Really skip /var/run/utmpx test when needed.Paul Garlick2017-01-311-1/+1
| | | | | | * tests/syscalls.scm: Change 'test-ski' to 'test-skip'. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* store: Add 'add-data-to-store'.Ludovic Courtès2017-01-301-0/+5
| | | | | | | | | * guix/serialization.scm (write-bytevector): New procedure. (write-string): Rewrite in terms of 'write-bytevector'. * guix/store.scm (write-arg): Add 'bytevector' case. (add-data-to-store): New procedure, from former 'add-text-to-store'. (add-text-to-store): Rewrite in terms of 'add-data-to-store'. * tests/store.scm ("add-data-to-store"): New test.
* tests: Adjust pypi test to recent importer change.Carlo Zancanaro2017-01-281-4/+2
| | | | | | | | | | This is a followup to 2f977d92d3ae517788d3dee98f63680ca149aa1a. * tests/pypi.scm ("pypi->guix-package"): Don't expect 'python-setuptools' in 'propagated-inputs'. ("pypi->guix-package, wheels"): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* bournish: Extend 'rm' command.Ricardo Wurmus2017-01-261-0/+12
| | | | | | * guix/build/bournish.scm (rm-command): New procedure. (%commands): Use it. * tests/bournish.scm: Add tests for "rm" and "rm -r".
* grafts: Do not pull derivation outputs not depended on.Ludovic Courtès2017-01-251-2/+116
| | | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/24886>. Previously, the grafting derivation of, say, brdf-explorer would pull in qt:doc even though brdf-explorer depends only on qt:out, not qt:doc. * guix/grafts.scm (with-cache): Use 'vhash-assoc' and 'vhash-cons' instead of 'vhash-assq' and 'vhash-consq'. (cumulative-grafts): Pass #:outputs to 'graft-derivation/shallow'. Use OUTPUTS instead of (derivation-output-names drv). (graft-derivation): Add #:outputs parameter; pass it to 'cumulative-grafts'. * tests/grafts.scm (make-derivation-input): New variable. ("graft-derivation, replaced derivation has multiple outputs"): Make sure P2:zzz is not part of the outputs of P3D. ("graft-derivation with #:outputs") ("graft-derivation, unused outputs not depended on"): New tests.
* syscalls: Export 'read-utmpx'.Ludovic Courtès2017-01-241-0/+9
| | | | | | * guix/build/syscalls.scm (read-utmpx-from-port): New procedure. * tests/syscalls.scm ("read-utmpx, EOF") ("read-utmpx"): New tests.
* syscalls: Add utmpx procedures and data structure.Ludovic Courtès2017-01-191-1/+12
| | | | | | | * guix/build/syscalls.scm (<utmpx-entry>): New record type. (%utmpx): New C struct. (login-type): New bits. (setutxent, endutxent, getutxent, utmpx-entries): New procedures.
* guix environment, build: Allow absolute file names with '--root'.Ludovic Courtès2017-01-191-1/+6
| | | | | | | | | Reported by Chris Webber. * guix/scripts/build.scm (register-root): If ROOT is absolute, keep it as is. * guix/scripts/environment.scm (register-gc-root): Likewise. * tests/guix-environment.sh (expected): Add test.
* file-systems: 'file-system-needed-for-boot?' is #t for parents of the store.Ludovic Courtès2017-01-161-1/+23
| | | | | | | | | | | | Suggested by John Darrington <john@darrington.wattle.id.au>. * gnu/system/file-systems.scm (%not-slash): New variable. (file-prefix?): New procedure. (file-system-needed-for-boot?): Use it to check whether FS holds the store. * tests/file-systems.scm ("file-system-needed-for-boot?"): New test. * gnu/tests/install.scm (%separate-store-os)[file-systems]: Remove 'needed-for-boot?' field for "/gnu".
* daemon: Client settings no longer override daemon settings.Ludovic Courtès2017-01-152-2/+54
| | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/20217>. * nix/libstore/worker-protocol.hh (PROTOCOL_VERSION): Bump to 0x161. * nix/nix-daemon/nix-daemon.cc (performOp): "build-max-jobs", "build-max-silent-time", and "build-cores" are no longer read upfront; instead, read them from the key/value list at the end. * nix/nix-daemon/guix-daemon.cc (main): Explicitly set 'settings.maxBuildJobs'. * guix/store.scm (%protocol-version): Bump to #x161. (set-build-options): #:max-build-jobs, #:max-silent-time, and #:build-cores now default to #f. Adjust handshake to new protocol. * tests/store.scm ("build-cores"): New test. * tests/guix-daemon.sh: Add test for default "build-cores" value.
* challenge: Return comparison reports instead of just discrepancies.Ludovic Courtès2017-01-141-9/+53
| | | | | | | | | | | | | | | | | | | | | | This makes it easier to distinguish between matches, mismatches, and the various cases of inconclusive reports. * guix/scripts/challenge.scm (<discrepancy>): Rename to... (<comparison-report>): ... this. Add 'result' field. (comparison-report): New macro. (comparison-report-predicate, comparison-report-mismatch?) (comparison-report-match?) (comparison-report-inconclusive?): New procedures. (discrepancies): Rename to... (compare-contents): ... this. Change to return a list of <comparison-report>. Remove calls to 'warning'. (summarize-discrepancy): Rename to... (summarize-report): ... this. Adjust to <comparison-report>. (guix-challenge): Likewise. * tests/challenge.scm ("no discrepancies") ("one discrepancy"): Adjust to new API. ("inconclusive: no substitutes") ("inconclusive: no local build"): New tests.
* daemon: Allow check builds of 'builtin:download' derivations.Ludovic Courtès2017-01-111-1/+26
| | | | | | | | | | | | | | | | | | Fixes <http://bugs.gnu.org/25089>. Reported by Leo Famulari <leo@famulari.name>. * nix/libstore/build.cc (DerivationGoal::runChild): In the 'isBuiltin' case, check whether DRV's output is in 'redirectedOutputs', and pass an 'output' argument to the built-in builder. (DerivationGoal::addHashRewrite): Add 'printMsg' call. * nix/libstore/builtins.hh (derivationBuilder): Add 'output' parameter. * nix/libstore/builtins.cc (builtinDownload): Likewise. Add OUTPUT to ARGV. * guix/scripts/perform-download.scm (perform-download): Add 'output' parameter. (guix-perform-download): Adjust 'match' clauses accordingly. * tests/derivations.scm ("'download' built-in builder, check mode"): New test.
* guix package: Fix version and output for 'guix package -i /gnu/store/…'.Ludovic Courtès2017-01-111-1/+9
| | | | | | | | | * guix/utils.scm (package-name->name+version): Add optional 'delimiter' parameter. * guix/scripts/package.scm (store-item->manifest-entry): Pass #\- as the delimiter for 'package-name->name+version'. Use "out" instead of #f for the 'output' field. * tests/guix-package.sh: Add test.
* graph: Add '%reverse-package-node-type'.Ludovic Courtès2017-01-041-1/+13
| | | | | | | | | * guix/scripts/graph.scm (%reverse-package-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse package DAG"): New test. * doc/guix.texi (Invoking guix refresh): Add cross-reference to "Invoking guix graph". (Invoking guix graph): Document 'reverse-package'.
* gexp: Support 'ungexp' forms in improper lists.Ludovic Courtès2017-01-011-1/+11
| | | | | | | * guix/gexp.scm (gexp)[collect-escapes, substitute-references]: Replace the (exp0 exp ...) patterns with (exp0 . exp) to match improper lists. Adjust clause bodies accordingly. * tests/gexp.scm ("one input package, dotted list"): New test.
* build-system: cargo: Handle Cargo.lock file not present.David Craven2017-01-011-1/+1
| | | | | | | | | | | | | | | | | | * guix/build-system/cargo.scm (cargo-build): Add src output. (private-keywords): Add #:outputs. * guix/build/cargo-build-system.scm (configure): Use /share/rust-source when replacing inputs. (build, check): Don't do anything when there isn't a Cargo.lock file present. (install): Install sources to src output. When a Cargo.lock file is present use cargo install to install binaries to out. * guix/import/crate.scm (make-crate-sexp): Importer uses the src output for crate inputs by default. * guix/import/utils.scm (package-names->package-inputs, maybe-inputs, maybe-native-inputs): Take an optional output argument. * tests/crate.scm (crate->guix-package test): Update. Problem reported by Francisco Gómez García <espectalll@kydara.com>.
* import: crate: Provide a default home-page value.David Craven2017-01-011-0/+1
| | | | | | | | * guix/import/crate.scm (make-crate-sexp): Provide a default home-page value. * tests/crate.scm (test-crate): Add repository field. Problem reported by ng0 <ng0@libertad.pw>.
* guix build: '--with-source' overrides the 'replacement' of a package.Ludovic Courtès2016-12-211-0/+13
| | | | | | * guix/scripts/build.scm (package-with-source): Set 'replacement' to #f. * tests/scripts-build.scm ("options->transformation, with-source, replacement"): New test.
* environment: Add '--root' option.Ludovic Courtès2016-12-201-1/+16
| | | | | | | | | * guix/scripts/environment.scm (show-help, %options): Add --root. (register-gc-root): New procedure. (guix-environment): Call 'register-gc-root' when OPTS has a 'gc-root' option. * doc/guix.texi (Invoking guix environment): Document it. * tests/guix-environment.sh: Add tests.
* gexp: Native inputs of nested gexps are properly accounted for.Ludovic Courtès2016-12-191-1/+10
| | | | | | | | | | | | | | | | | | | Previously, 'gexp-native-inputs' would not return the native inputs of nested gexps. For example, this: (gexp-native-inputs #~(foo #$#~(bar #+coreutils))) would return '(). * guix/gexp.scm (gexp-inputs)[add-reference-inputs]: In the non-recursive cases, check whether N? and NATIVE? are the same, and act accordingly. [native-input?]: Remove. Fold over all of (gexp-references exp). * tests/gexp.scm ("ungexp + ungexp-native, nested, special mixture"): New test. * tests/gexp.scm ("input list splicing + ungexp-native-splicing"): Pass #:native? #t to 'gexp-input'.
* tests: Mock up http-fetch.Ricardo Wurmus2016-12-181-28/+35
| | | | | | | This is a follow-up to commit 63773200d7ac68fcaee6efd9ffe8ea7aa3fafa38. * tests/cpan.scm ("cpan->guix-package"): Add mock definition of http-fetch.
* tests: Adjust cpan tests.Ricardo Wurmus2016-12-181-4/+6
| | | | | | | This is a follow-up to commit ff55fe559951b88bfd691b9dada3a0f26002c4cb. * tests/cpan.scm (source-url-http, source-url-https): Use cpan-source-url.
* tests: Mock up http-fetch in import test.Ricardo Wurmus2016-12-181-30/+34
| | | | | | | This is a follow-up to commit 63773200d7ac68fcaee6efd9ffe8ea7aa3fafa38. * tests/pypi.scm ("pypi->guix-package, wheels"): Add mock definition of "http-fetch".
* tests: Mock up http-fetch in import tests.Ricardo Wurmus2016-12-182-50/+55
| | | | | | | | | This is a follow-up to commit 63773200d7ac68fcaee6efd9ffe8ea7aa3fafa38. * tests/gem.scm ("gem->guix-package"): Replace mock definition of "url-fetch" with "http-fetch". * tests/pypi.scm ("pypi->guix-package"): Add mock definition of "http-fetch".
* profiles: Remove dependency on 'glibc-utf8-locales' for tests.Ludovic Courtès2016-12-172-7/+14
| | | | | | | | | | | | | | | | | | Commit 1af0860e8be81c01ad405c1226d6bc4516e62863 added a mandatory dependency on 'glibc-utf8-locales', which entails long rebuilds for tests. * guix/profiles.scm (profile-derivation): Add #:locales? parameter. Add 'set-utf8-locale' variable. Use it when LOCALES? is true. (link-to-empty-profile): Pass #:locales? #f. * guix/scripts/environment.scm (inputs->profile-derivation): Pass #:locales?. * guix/scripts/package.scm (build-and-use-profile): Likewise. * tests/packages.scm ("--search-paths with pattern"): Pass #:locales? #f. * tests/profiles.scm ("profile-derivation") ("profile-derivation, inputs", "profile-manifest, search-paths") ("etc/profile", "etc/profile when etc/ already exists"): ("etc/profile when etc/ is a symlink"): Likewise.
* graph: Backend must have name and description.Ricardo Wurmus2016-12-141-1/+2
| | | | | | | | | * guix/graph.scm (<graph-backend>): Add fields "name" and "description". (%graphviz-backend): Provide values for name and description. (export-graph): Ignore name and description when matching backends. (graph-backend-name, graph-backend-description): New procedures. * tests/graph.scm (make-recording-backend): Initialize name and description fields of test graph-backend.
* import: Add importer for rust crates.David Craven2016-12-141-0/+102
| | | | | | | | | * guix/import/crate.scm: New file. * guix/scripts/import/crate.scm: New file. * guix/scripts/import.scm (importers): Add crate importer. * tests/crate.scm: New file. * doc/guix.texi: Add crate importer to table. * Makefile.am (MODULES, SCM_TESTS): Add files.
* store: 'open-connection' no longer raises '&nar-error' for protocol errors.Ludovic Courtès2016-12-081-0/+9
| | | | | | * guix/store.scm (open-connection): Guard body against 'nar-error?' and re-raise as '&nix-connection-error'. * tests/store.scm ("connection handshake error"): New test.
* Merge branch 'master' into python-build-systemLeo Famulari2016-11-255-125/+192
|\
| * syscalls: Add 'add-network-route/gateway' and 'delete-network-route'.Ludovic Courtès2016-11-211-0/+24
| | | | | | | | | | | | | | | | | | * guix/build/syscalls.scm (SIOCADDRT, SIOCDELRT): New variables. (%rtentry): New C struct. (RTF_UP, RTF_GATEWAY, %sockaddr-any): New variables. (add-network-route/gateway, delete-network-route): New procedures. * tests/syscalls.scm ("add-network-route/gateway") ("delete-network-route"): New tests.
| * lint: Add 'mirror-url' checker.Ludovic Courtès2016-11-191-0/+19
| | | | | | | | | | | | | | | | | | | | * guix/scripts/lint.scm (origin-uris): New procedure. (check-source): Use it. (check-mirror-url): New procedure. (%checkers): Add 'mirror-url' checker. * tests/lint.scm ("mirror-url") ("mirror-url: one suggestion"): New tests. * doc/guix.texi (Invoking guix lint): Document it.