summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2020-03-12gexp: Add 'with-parameters'.Ludovic Courtès
* guix/gexp.scm (<parameterized>): New record type. (with-parameters): New macro. (compile-parameterized): New gexp compiler. * tests/gexp.scm ("with-parameters for %current-system") ("with-parameters for %current-target-system") ("with-parameters + file-append"): New tests. * doc/guix.texi (G-Expressions): Document it.
2020-03-12inferior: Distinguish inferior exceptions.Ludovic Courtès
This avoids ambiguities when looking at a backtrace where the exception was actually thrown by an inferior in a very different context. * guix/inferior.scm (&inferior-exception): New condition type. (read-repl-response): Add optional 'inferior' parameter. Raise '&inferior-exception' instead of rethrowing to KEY when receiving an 'exception' message. (read-inferior-response): Pass INFERIOR to 'read-repl-response'. * tests/inferior.scm ("&inferior-exception"): New test.
2020-03-12import: pypi: Rewrite to use 'define-json-mapping'.Ludovic Courtès
* guix/import/pypi.scm (non-empty-string-or-false): New procedure. (<pypi-project>, <project-info>, <distribution>): New record types. (pypi-fetch): Call 'json->pypi-project'. (latest-source-release, latest-wheel-release): Use the new record accessors instead of 'assoc-ref*'. (pypi->guix-package, latest-release): Likewise. * tests/pypi.scm (test-json): Add mandatory fields.
2020-03-08gexp: Default to current target.Mathieu Othacehe
* guix/gexp.scm (lower-object): Set target argument to 'current by default and look for the current target system at bind time if needed, (gexp->file): ditto, (gexp->script): ditto, (lower-gexp): make sure lowered extensions are not cross-compiled. * tests/gexp.scm: Add cross-compilation test-cases for gexp->script and gexp->file with a target passed explicitely and with a default target.
2020-03-05guix build: Allow non-package objects in manifest.Ludovic Courtès
* guix/scripts/build.scm (options->things-to-build)[manifest->packages]: Remove. Inline map of 'manifest-entry-item'. * tests/guix-build.sh: Add test for "guix build -m" with non-package object.
2020-02-27swh: Adjust 'origin' test.Ludovic Courtès
This is a followup to 3d2f29382de2d0ee852745cc002dfe2b5d22e1c2. * tests/swh.scm (%origin): Remove "id". ("lookup-origin"): Remove use of 'origin-id'.
2020-02-23ui: (size->number "1.M") is correctly parsed.Ludovic Courtès
Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/ui.scm (size->number)[unit-pos]: Add #\. to CHAR-SET:DIGIT. * tests/ui.scm ("size->number, 1.M"): New test.
2020-02-14guix build: Add '--manifest' option.Marius Bakke
* guix/scripts/build.scm (show-help): Document --manifest argument. (options->things-to-build): When given a manifest, evaluate all the entries. * tests/guix-build.sh: Add test for --manifest. * doc/guix.texi (Additional Build Options): Mention --manifest. * etc/completion/bash/guix: Complete file name if 'guix build' argument is -m.
2020-02-11syscalls: Re-enable 'pivot-root' test.Ludovic Courtès
Fixes <https://bugs.gnu.org/25476>. Reported by Paul Garlick <pgarlick@tourbillion-technology.com>. * tests/syscalls.scm ("pivot-root"): Skip only when PERFORM-CONTAINER-TESTS? is true. Rewrite to use a socket pair instead of a pipe. Synchronize parent and child so that the parent can initialize the child's UID and GID mappings before continuing.
2020-02-05import: gem: Deal with unavailable licensing info.Ludovic Courtès
Fixes <https://bugs.gnu.org/39404>. Reported by Seth <lee.seth@tuta.io>. * guix/import/gem.scm (<gem>)[licenses]: Adjust for non-vector licenses. * tests/gem.scm (test-bar-json): Change "licenses" to 'null'. ("gem-recursive-import"): Adjust accordingly.
2020-02-05tests: Adjust reverse-bag graph test to recent OCaml changes.Ludovic Courtès
This is a followup to 87858bc526a9d577760f55d05a51cb56630f845b. Partly fixes <https://bugs.gnu.org/39374>. Reported by Ellen Papsch <ellen.papsch@wine-logistix.de>. * tests/graph.scm ("reverse bag DAG"): Adjust test to latest OCaml changes.
2020-01-31gnu: Add earlyoom-service-type.Maxim Cournoyer
* gnu/services/linux.scm: New file. * tests/services/linux.scm: Add test. * Makefile.am (SCM_TESTS): Register test. * doc/guix.texi (Linux Services): Add a new section and document the new service and its configuration.
2020-01-17guix system: Add workaround in test for Guile 3.0.0.Ludovic Courtès
* tests/guix-system.sh: For the 'GRUB-config' test, add workaround for the reported line number in Guile 3.0.0.
2020-01-17import: texlive: Avoid uses of '@@' in tests.Ludovic Courtès
* guix/import/texlive.scm (fetch-sxml, sxml->package): Export. * tests/texlive.scm <top level>: Call '%http-server-port'. ("fetch-sxml: returns SXML for valid XML"): Use 'with-http-server' and set 'current-http-proxy' instead of using 'mock'. ("sxml->package"): Remove use of '@@'.
2020-01-17import: opam: Avoid uses of '@@' in tests.Ludovic Courtès
* guix/import/opam.scm (string-pat, multiline-string, list-pat) (dict, condition): Export. (opam-fetch): Add optional 'repository' parameter. (opam->guix-package): Add #:repository parameter and pass it to 'opam-fetch'. * tests/opam.scm ("opam->guix-package"): Remove use of 'mock' and pass TEST-REPO to 'opam->guix-package' instead. ("parse-strings", "parse-multiline-strings") ("parse-lists", "parse-dicts", "parse-conditions"): Remove uses of '@@', which are no longer needed.
2020-01-17lint: vulnerabilities: Avoid 'mock' in test.Ludovic Courtès
* guix/lint.scm (check-vulnerabilities): Add 'package-vulnerabilities' optional parameter. * tests/lint.scm ("cve: one vulnerability"): Use it instead of 'mock'.
2020-01-16import: elpa: Rewrite test to use an HTTP server instead of mocking.Ludovic Courtès
* guix/import/elpa.scm (elpa-url): Add 'gnu/http'. (elpa->guix-package): Handle it. * tests/elpa.scm (elpa-package-info-mock, auctex-readme-mock) (elpa-version->string, package-source-url, ensure-list) (package-home-page, make-elpa-package): Remove. <top level>: Call '%http-server-port'. (eval-test-with-elpa): Remove uses of 'mock'. Use 'with-http-server' and parameterize 'current-http-proxy' instead.
2020-01-16import: cran: Avoid uses of '@@' in the tests.Ludovic Courtès
* guix/import/cran.scm (description->alist, description->package): Export. <top level>: Set! 'listify'. * tests/cran.scm (description-alist, "description->package"): Remove use of '@@' to access the relevant bindings.
2020-01-16import: crate: Export 'string->license'.Ludovic Courtès
* guix/import/crate.scm (string->license): Export. * tests/crate.scm (string->license): Remove.
2020-01-16lzlib: Define 'dictionary-size+match-length-limit'.Ludovic Courtès
* guix/lzlib.scm (%compression-levels): Splice the rest of each element. (dictionary-size+match-length-limit): New procedure. (make-lzip-output-port, make-lzip-input-port/compressed): Use it. * tests/lzlib.scm ("Bytevector of size relative to Lzip internal buffers (2 * dictionary)"): Use 'dictionary-size+match-length-limit' instead of 'assoc-ref'.
2020-01-16records: Improve reporting of "invalid field specifier" errors.Ludovic Courtès
Previously users would just see: error: invalid field specifier without source location or hints. * guix/records.scm (expand): Add optional 'parent-form' parameter and pass it to 'syntax-violation' when it is true. (make-syntactic-constructor): Pass S as a third argument to 'report-invalid-field-specifier'. * guix/ui.scm (report-load-error): For 'syntax-error', show SUBFORM or FORM in the message. * tests/records.scm ("define-record-type* & wrong field specifier"): Add a 'subform' parameter and adjust test accordingly. ("define-record-type* & wrong field specifier, identifier"): New test. * tests/guix-system.sh: Add test.
2020-01-16guix package: Export 'transaction-upgrade-entry'.Ludovic Courtès
* guix/scripts/package.scm (transaction-upgrade-entry): Add 'store' parameter and use it instead of (%store). Export. * tests/packages.scm ("transaction-upgrade-entry, zero upgrades") ("transaction-upgrade-entry, one upgrade") ("transaction-upgrade-entry, superseded package"): Adjust accordingly.
2020-01-16publish: Export 'signed-string'.Ludovic Courtès
* guix/scripts/publish.scm (signed-string): Export and improve docstring. * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign"): Adjust accordingly.
2020-01-16graph: Add '--load-path' option.Pierre Neidhardt
* guix/scripts/graph.scm (%option): Add '--load-path' option. * doc/guix.texi: Document it. * tests/guix-graph.sh: Test it.
2020-01-15import: cpan: Rewrite tests to use an HTTP server instead of mocking.Ludovic Courtès
* guix/import/cpan.scm (%metacpan-base-url): New variable. (module->dist-name, cpan-fetch): Refer to it instead of the hard-coded URL. * tests/cpan.scm ("cpan->guix-package"): Use 'with-http-server' instead of 'mock'.
2020-01-15import: cpan: Rewrite to use 'define-json-mapping'.Ludovic Courtès
* guix/import/cpan.scm (<cpan-dependency>, <cpan-release>): New JSON-mapped record types. (metacpan-url->mirror-url): New procedure. (cpan-source-url): Rewrite in terms of it. (cpan-version): Remove. (cpan-module->sexp): Rewrite to take a <cpan-release> instead of an alist, and rename 'meta' to 'release'. [convert-inputs]: Rewrite to use 'cpan-release-dependencies'. Update calls to 'convert-inputs' to pass a list of symbols. Replace 'assoc-ref' calls with the appropriate field accessors. (cpan->guix-package): Rename 'module-meta' to 'release'. (latest-release): Likewise, and use the appropriate accessors. * tests/cpan.scm (test-json): Remove "prereqs" record; add "dependency" list. ("source-url-http", "source-url-https"): Remove. ("metacpan-url->mirror-url, http") ("metacpan-url->mirror-url, https"): New tests.
2020-01-04gexp: Add 'raw-derivation-file'.Ludovic Courtès
* guix/gexp.scm (<raw-derivation-file>): New record type. (raw-derivation-file-compiler): New gexp compiler. * tests/gexp.scm ("lower-gexp, raw-derivation-file") ("raw-derivation-file"): New tests.
2019-12-27git: 'commit-difference' takes a list of excluded commits.Ludovic Courtès
* guix/git.scm (commit-closure): Add 'visited' optional parameter. (commit-difference): Add 'excluded' optional parameter; pass second argument to 'commit-closure'. * tests/git.scm ("commit-difference, excluded commits"): New test.
2019-12-26gnu: Remove squashfs-tools-next.Ricardo Wurmus
* gnu/packages/compression.scm (squashfs-tools-next): Remove variable. * guix/scripts/pack.scm (squashfs-image, guix-pack): Use squashfs-tools. * tests/pack.scm: Use squashfs-tools.
2019-12-18gexp: Allow character literals in GEXP->SEXP.Marius Bakke
Fixes <https://bugs.gnu.org/38628>. * tests/gexp.scm ("lower-gexp, character literal"): New test. * guix/gexp.scm (gexp->sexp)[self-quoting?]: Add CHAR? to the tested types. * guix/repl.scm (self-quoting?): Likewise. * gnu/tests.scm (marionette-shepherd-service)[self-quoting?]: Likewise.
2019-12-12challenge: Support "--diff=diffoscope".Ludovic Courtès
* guix/scripts/challenge.scm (call-with-nar): New procedure. (narinfo-contents): Express in terms of 'call-with-nar'. (call-with-mismatches, report-differing-files/external): New procedures. (%diffoscope-command): New variable. (%options): Support "diffoscope" and a string starting with "/". * tests/challenge.scm (call-mismatch-test): New procedure. ("differing-files"): Rewrite in terms of 'call-mismatch-test'. ("call-with-mismatches"): New test. * doc/guix.texi (Invoking guix challenge): Document it.
2019-12-12challenge: Add "--diff".Ludovic Courtès
* guix/scripts/challenge.scm (dump-port*): New variable. (archive-contents, store-item-contents, narinfo-contents) (differing-files, report-differing-files): New procedures. (summarize-report): Add #:report-differences and call it. (show-help, %options): Add "--diff". (%default-options): Add 'difference-report' key. (report-differing-files): Parameterize CURRENT-TERMINAL-COLUMNS and pass #:report-differences to 'summarize-report'. * guix/tests/http.scm (%local-url): Add optional argument. (call-with-http-server): Fix docstring typo. * tests/challenge.scm (query-path-size, make-narinfo): New procedures. ("differing-files"): New test. * doc/guix.texi (Invoking guix challenge): Document "--diff".
2019-12-12guix archive: Add '--list'.Ludovic Courtès
* guix/scripts/archive.scm (show-help, %options): Add '--list'. (list-contents): New procedure. (guix-archive): Honor the '--list' option. * tests/guix-archive.sh: Test it. * doc/guix.texi (Invoking guix archive): Document it.
2019-12-12serialization: Add 'fold-archive'.Ludovic Courtès
* guix/serialization.scm (read-contents): Remove. (read-file-type, fold-archive): New procedures. (restore-file): Rewrite in terms of 'fold-archive'. * tests/nar.scm ("write-file-tree + fold-archive") ("write-file-tree + fold-archive, flat file"): New tests.
2019-12-11import: crate: Better handle license expressions.Brice Waegeneire
* guix/import/crate.scm (%dual-license-rx): Removed function. (crate->guix-package): Handle most of the multi-licensing cases. * tests/crate.scm (licenses): Add tests for some licenses. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-12-11import: crate: Add recursive import test.Brian Leung
* tests/crate.scm (test-crate): Rename to... (test-foo-crate): ... this. (test-dependencies): Rename to... (test-foo-dependencies): ... this. (test-root-crate, test-root-dependencies, test-intermediate-1-crate) (test-intermediate-1-dependencies, test-intermediate-2-crate) (test-intermediate-2-dependencies, test-leaf-alice-crate) (test-leaf-alice-dependencies, test-leaf-bob-crate) (test-leaf-bob-dependencies): New variables. ("crate->guix-package"): Adjust accordingly. ("cargo-recursive-import"): New test. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
2019-12-11import: utils: 'recursive-import' returns a list rather than a stream.Ludovic Courtès
* guix/import/utils.scm (recursive-import): Remove 'list->stream' call. * guix/scripts/import/cran.scm (guix-import-cran): Remove 'stream->list' call. * guix/scripts/import/crate.scm (guix-import-crate): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * guix/scripts/import/gem.scm (guix-import-gem): Likewise. * guix/scripts/import/hackage.scm (guix-import-hackage): Likewise. * guix/scripts/import/opam.scm (guix-import-opam): Likewise. * guix/scripts/import/pypi.scm (guix-import-pypi): Likewise. * guix/scripts/import/stackage.scm (guix-import-stackage): Likewise. * tests/gem.scm ("gem-recursive-import"): Likewise. * tests/import-utils.scm ("recursive-import"): Likewise. Co-authored-by: Brian Leung <bkleung89@gmail.com>
2019-12-11import: utils: 'recursive-import' returns packages in topological order.Ludovic Courtès
* guix/import/utils.scm (topological-sort): New procedure. (recursive-import): Rewrite to use it. * tests/import-utils.scm ("recursive-import"): New test. * guix/import/cran.scm (cran->guix-package): Always return two values. * guix/scripts/import/cran.scm (guix-import-cran): Remove 'reverse' call on 'cran-recursive-import' result. * guix/scripts/import/crate.scm (guix-import-crate): Likewise. * guix/scripts/import/elpa.scm (guix-import-elpa): Likewise. * guix/scripts/import/gem.scm (guix-import-gem): Likewise. * guix/scripts/import/hackage.scm (guix-import-hackage): Likewise. * guix/scripts/import/opam.scm (guix-import-opam): Likewise. * guix/scripts/import/pypi.scm (guix-import-pypi): Likewise. * guix/scripts/import/stackage.scm (guix-import-stackage): Likewise. * tests/gem.scm ("gem-recursive-import"): Change the order of package expressions accordingly.
2019-12-10tests: processes: Skip tests if running with binfmt.Mathieu Othacehe
* tests/processes.scm (binfmt-misc?): New procedure, (test-assert*): new procedure that skips the test if binfmt-misc? returns
2019-12-08lint: Add '--load-path' option.zimoun
* guix/scripts/lint.scm (%options): Add '--load-path' option. * doc/guix.texi: Document it. * tests/guix-lint.sh: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2019-12-07derivations: Add 'derivation-input-fold'.Ludovic Courtès
* guix/derivations.scm (derivation-input-fold): New procedure. (substitution-oracle)[closure]: Rewrite in terms of 'derivation-input-fold'. * tests/derivations.scm ("derivation-input-fold"): New test.
2019-12-01tests: lzlib: Do not fail if lzlib in not available.Mathieu Othacehe
* tests/lzlib.scm: Use test-assert* for all test cases, so that there are no failures if lzlib is unavailable.
2019-11-30gexp: 'local-file' properly resolves non-literal relative file names.Ludovic Courtès
* guix/gexp.scm (local-file): Distinguish the case where FILE is a literal string and when it's not. Add a clause for when FILE is not a literal string. * tests/gexp.scm ("local-file, non-literal relative file name"): New test. * doc/guix.texi (G-Expressions): Update accordingly.
2019-11-29tests: Fix race condition in profile locking test.Ludovic Courtès
Previously, there was a possibility that "guix install emacs" would grab the lock before "guix package -m $module_dir/manifest.scm". When that happened, the test would start building Emacs and all its dependencies, which could take a while and some disk space. This is a followup to b1fb663404894268b5ee92c040f12c52c0bee425. * tests/guix-package.sh: In profile locking test, emit "$module_dir/ready" from the manifest and wait for it to exist before running "guix install emacs".
2019-11-27substitute: Make '%allow-unauthenticated-substitutes?' public.Ludovic Courtès
* guix/scripts/substitute.scm (warn-about-missing-authentication): New procedure. (%allow-unauthenticated-substitutes?): Turn into a public parameter and use 'warn-about-missing-authentication'. (valid-narinfo?): Adjust accordingly. * tests/substitute.scm (call-with-narinfo): Likewise.
2019-11-26tests: Avoid unnecessary use of 'mock'.Ludovic Courtès
* tests/build-utils.scm ("wrap-script, simple case"): Use the real 'which' instead of mocking it.
2019-11-26tests: Avoid (catch 'srfi-34 …) form.Ludovic Courtès
* tests/build-utils.scm ("wrap-script, raises condition"): Use 'guard' instead of "catch 'srfi-34".
2019-11-23tests: Use (ice-9 threads).Ludovic Courtès
'call-with-new-thread' as a core binding is deprecated in 2.2 and removed in 3.0. * tests/publish.scm: Use (ice-9 threads).
2019-11-22pack: Allow multiple '--manifest' options.Ludovic Courtès
* guix/scripts/pack.scm (guix-pack): Collect 'manifest' options, and concatenate the resulting manifests. * tests/guix-pack.sh: Test it. * doc/guix.texi (Invoking guix pack): Document it.
2019-11-22package: Allow multiple '--manifest' options.Ludovic Courtès
* guix/scripts/package.scm (manifest-action): Remove. (%actions): Remove it. (load-manifest): New procedure. (process-actions): Handle 'manifest' options. Define 'files' from 'manifest' options. Define 'manifest' based on FILES. Define 'trans' to represent the final transaction. * tests/guix-package.sh: Test it. * doc/guix.texi (Invoking guix package): Mention