aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* tests: pypi: Rewrite tests using a local HTTP server.Ludovic Courtès2023-05-31
| | | | | | | | | | | | | | * guix/import/pypi.scm (%pypi-base-url): New variable. (pypi-fetch): Use it. * tests/pypi.scm (foo-json): Compute URLs relative to '%local-url'. (test-json-1, test-json-2, test-source-hash): Remove. (file-dump): New procedure. (with-pypi): New macro. ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Rewrite using 'with-pypi'.
* tests: pypi: Factorize tarball and wheel file creation.Ludovic Courtès2023-05-31
| | | | | | | | | | * tests/pypi.scm (sample-directory): New variable. (pypi-tarball, wheel-file): New procedures. ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Use them.
* substitute: If a server's nar URL is 404, try the next one(s).Ludovic Courtès2023-05-30
| | | | | | | | | | | | | | | | | If a substitute server advertises in its narinfo, for example, both a /zstd and a /lzip URL but the /zstd URL is unreachable, try the /lzip URL. Fixes <https://issues.guix.gnu.org/63634>. * guix/narinfo.scm (narinfo-preferred-uris): New procedure. (narinfo-best-uri): Rebase on top of it. * guix/scripts/substitute.scm (download-nar)[try-fetch]: New procedure. Use 'narinfo-preferred-uris' and 'try-fetch' to attempt all the URLs of NARINFO. * tests/substitute.scm (request-substitution): Remove 'parameterize'. Delete DESTINATION. ("substitute, preferred nar URL is 404, other is 200"): New test.
* style: Add 'arguments' styling rule.Ludovic Courtès2023-05-18
| | | | | | | | | | | | | | | | | | * guix/scripts/style.scm (unquote->ungexp, gexpify-argument-value) (quote-argument-value, gexpify-argument-tail) (gexpify-package-arguments): New procedures. (%gexp-keywords): New variable. (%options): Add "arguments" case for 'styling-procedure. (show-stylings): Update. * tests/style.scm ("gexpify arguments, already gexpified") ("gexpify arguments, non-gexp arguments, margin comment") ("gexpify arguments, phases and flags") ("gexpify arguments, append arguments") ("gexpify arguments, substitute-keyword-arguments") ("gexpify arguments, append substitute-keyword-arguments"): New tests. * doc/guix.texi (package Reference): For 'arguments', add compatibility note and link to 'guix style'. (Invoking guix style): Document the 'arguments' styling rule.
* lint: archival: Warn against non-origin package sources.Ludovic Courtès2023-05-06
| | | | | | | | | Suggested by Maxim Cournoyer <maxim.cournoyer@gmail.com> and Simon Tournier <zimon.toutoune@gmail.com>. * guix/lint.scm (check-archival): Add 'local-file?' clause. Clarify message in case (package-source package) is not an origin. * tests/lint.scm ("archival: not an origin"): New test.
* read-print: Correctly read "(. x)".Ludovic Courtès2023-05-05
| | | | | | * guix/read-print.scm (read-with-comments): Check whether REST is a pair before calling 'set-cdr!'. * tests/read-print.scm ("read-with-comments: half dot notation"): New test.
* transformations: Add '--with-configure-flag'.Sarthak Shah2023-05-04
| | | | | | | | | | | | * guix/transformations.scm (transform-package-configure-flag): New procedure. (%transformation-options, %transformation-options) (show-transformation-options-help/detailed): Add it. * tests/transformations.scm ("options->transformation, with-configure-flag"): New test. * doc/guix.texi (Package Transformation Options): Document it. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* style: Make 'safe' policy less conservative.Ludovic Courtès2023-05-04
| | | | | | | | | | | | | | Previously, a mere (arguments '(#:tests? #f)) would lead guix style -S inputs --input-simplification=safe to bail out. It now recognizes such trivial argument lists and proceeds. * guix/scripts/style.scm (trivial-package-arguments?): New procedure. (simplify-package-inputs): Use it in the 'safe case instead of 'null?'. * tests/style.scm ("input labels, 'safe' policy, trivial arguments"): New test.
* import: pypi: Adjust tests for new build system.Ludovic Courtès2023-04-30
| | | | | | | | | | This is a followup to cb8d080349a0691f4d563fcdd7bc8d8c40d0d88b. * tests/pypi.scm ("pypi->guix-package, no wheel") ("pypi->guix-package, wheels") ("pypi->guix-package, no usable requirement file.") ("pypi->guix-package, package name contains \"-\" followed by digits"): Replace 'python-build-system' by 'pyproject-build-system'.
* tests: guix-graph.sh: Fix expected path from emacs to libffi.Josselin Poiret2023-04-28
| | | | | | | | * tests/guix-graph.sh: Change the expected path from emacs to libffi. `guix graph --path` outputs only one possible path, and the one it outputs for this case has changed. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* tests: guix-build.sh: Don't use hidden gcc for transformation tests.Josselin Poiret2023-04-28
| | | | | | | | * tests/guix-build.sh: Do not try to rewrite gcc, it is hidden and so will not be rewritten, as per eee95b5a879b7096dffd533f24107cf8926b621e. Instead, try to build grep with coreutils rewritten to hello. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* read-print: 'pretty-print-with-comments' keeps newlines on long strings.Ludovic Courtès2023-04-24
| | | | | | | * guix/read-print.scm (printed-string)[preserve-newlines?]: New procedure. Use it to preserve newlines on long strings. * tests/read-print.scm: Add test.
* tests: Relax two tests that expected a non-zero error code.Ludovic Courtès2023-04-21
| | | | | | | * tests/guix-package-aliases.sh: "guix upgrade foo bar" has always returned zero; adjust accordingly. * tests/guix-refresh.sh: "guix refresh -t test idutils" and similar return zero; adjust accordingly.
* tests: Fix checks for expected failures.Eric Bavier2023-04-21
| | | | | | | | | | | | | | | | | | | Addresses <https://issues.guix.gnu.org/62406>. With 'set -e', a return status inverted with '!' does not cause the shell to exit immediately. Instead use '&& false' to indicate an expected failure. * tests/guix-archive.sh, tests/guix-build-branch.sh, tests/guix-build.sh, tests/guix-daemon.sh, tests/guix-download.sh, tests/guix-environment-container.sh, tests/guix-environment.sh, tests/guix-gc.sh, tests/guix-git-authenticate.sh, tests/guix-graph.sh, tests/guix-hash.sh, tests/guix-home.sh, tests/guix-pack-relocatable.sh, tests/guix-pack.sh, tests/guix-package-aliases.sh, tests/guix-package-net.sh, tests/guix-package.sh, tests/guix-refresh.sh, tests/guix-shell.sh, tests/guix-style.sh, tests/guix-system.sh: Replace uses of '! ...' with '... && false' or `test ! ...` as appropriate. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* tests: guix-system: Drop the i686-linux desktop image test.Maxim Cournoyer2023-04-18
| | | | | | | | Desktop these days means having Rust support (GNOME), which i686 currently lacks on Guix. * tests/guix-system.sh: Do not attempt to build the desktop.tmpl image for i686-linux.
* tests: Fix texlive->guix-package test.Maxim Cournoyer2023-04-18
| | | | | | | The home page for the package had changed. * tests/texlive.scm ("texlive->guix-package"): Match the home-page and synopsis inexactly to avoid future similar breakages.
* tests: Re-add debug output to a package tests.Maxim Cournoyer2023-04-18
| | | | | * tests/packages.scm ("fold-available-packages with/without cache"): Re-introduce debugging output.
* packages: Remove 'origin-sha256' procedure.Bruno Victal2023-04-07
| | | | | | | | * guix/packages.scm (origin-sha256): Remove procedure. * tests/import-utils.scm (test-import-utils) [alist->package with explicit source]: Use content-hash-value. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* services: ntp-service-type: Remove deprecated server as strings support.Bruno Victal2023-04-07
| | | | | | | | | * gnu/services/networking.scm (<ntp-configuration>)[servers]: Rename accessor to ntp-configuration-servers. (ntp-configuration-servers): Remove helper procedure. (ntp-shepherd-service): Remove helper procedure usage. * tests/networking.scm: Remove obsolete test. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* gnu: Purge pre-1.3.0 deprecated packages.Bruno Victal2023-04-07
| | | | | | | | | | | | | | | | | | * gnu/packages/bioinformatics.scm (deeptools): Remove variable. * gnu/packages/efi.scm (efi_analyzer): Ditto. * gnu/packages/guile.scm (guile-2.2/bug-fix, guile-json): Ditto. * gnu/packages/image.scm (libjpeg): Ditto. * gnu/packages/kde.scm (kdevplatform): Ditto * gnu/packages/linphone.scm (linphoneqt): Ditto. * gnu/packages/maths.scm (blis-sandybridge, blis-haswell, blis-knl): Ditto. * gnu/packages/mpi.scm (hwloc-2.0): Ditto. * gnu/packages/music.scm (python-abjad, zlfo): Ditto. * gnu/packages/perl.scm (perl-base, perl-parent): Ditto. * gnu/packages/tryton.scm (python-trytond): Ditto. * gnu/packages/video.scm (gnome-mpv): Ditto. * tests/graph.scm: Use guile-json-1. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* environment: Add '--nesting'.Ludovic Courtès2023-04-06
| | | | | | | | | | | | | * guix/scripts/environment.scm (show-environment-options-help) (%options): Add '--nesting'. (options/resolve-packages): Handle it. (launch-environment/container): Add #:nesting? and honor it. [nesting-mappings]: New procedure. (guix-environment*): Add support for '--nesting'. * guix/scripts/shell.scm (profile-cached-gc-root): Special-case 'nesting?'. * tests/guix-environment-container.sh: Test it. * doc/guix.texi (Invoking guix shell): Document it.
* services: replace bare serializers with (serializer ...)Bruno Victal2023-04-02
| | | | | | | | | | | | | | | | | | | * gnu/home/services/shells.scm (home-zsh-configuration)[environment-variables]: Use (serializer ...). (home-bash-configuration)[aliases, environment-variables]: Likewise. (home-fish-configuration)[abbreviations, aliases] [environment-variables]: Likewise. * gnu/services/audio.scm (mpd-configuration)[music-dir, playlist-dir] [endpoints, address, inputs, archive-plugins, input-cache-size] [decoders, filters, playlist-plugins]: Likewise. * gnu/services/linux.scm (fstrim-configuration)[extra-arguments]: Likewise. * gnu/services/security.scm (fail2ban-jail-configuration)[backend] [log-encoding, extra-content]: Likewise. * tests/services/configuration.scm: Update tests. ("serialize-configuration [deprecated]"): New test. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* services: configuration: Add user-defined sanitizer support.Bruno Victal2023-04-02
| | | | | | | | | | | | | | | | | | | | | | | | | This changes the 'custom-serializer' field into a generic 'extra-args' field that can be extended to support new literals. Within extra-args, the literals 'sanitizer' and 'serializer' allow for user-defined sanitization and serialization procedures respectively. The 'empty-serializer' was also added as a literal to be used as before. To prevent confusion between the new “explicit” style of specifying a sanitizer, and the old “implicit” style, the latter has been deprecated, and a warning is issued if it is encountered. * gnu/services/configuration.scm (define-configuration-helper): Rename 'custom-serializer' to 'extra-args'. Add support for literals 'sanitizer', 'serializer' and 'empty-serializer'. Rename procedure 'field-sanitizer' to 'default-field-sanitizer' to avoid syntax clash. Only define default field sanitizers if user-defined ones are absent. (normalize-extra-args): New variable. (<configuration-field>)[sanitizer]: New field. * doc/guix.texi (Complex Configurations): Document the newly added literals. * tests/services/configuration.scm: Add tests for the new literals. Signed-off-by: Liliana Marie Prikler <liliana.prikler@gmail.com>
* Revert "lint: Append "/info/refs" to git-reference-url."Maxim Cournoyer2023-03-28
| | | | | | | This reverts commit c9af27d4ca733b20f09019f1465d3e5fdc1ec724. The change causes 'guix lint' to print URI not reachable (403) errors for GitHub every URLs.
* lint: Append "/info/refs" to git-reference-url.Felix Lechner2023-03-27
| | | | | | | | | | | | | | | | | | | | For the atftp package added in the preceeding commit, lint produced this warning: gnu/packages/networking.scm:2924:5: atftp@0.8.0: URI https://git.code.sf.net/p/atftp/code not reachable: 404 ("Not Found") Thanks to Sergey Trofimov for suggesting a fix! [1] [1] https://issues.guix.gnu.org/62156#3 It was implemented here, and the warning disappeared. * guix/lint.scm (check-source): Append "/info/refs" to git-reference-url. Co-authored-by: Sergey Trofimov <sarg@sarg.org.ru> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* tests: Fix guix-home.sh when guix isn't installedTing-Wei Lan2023-03-26
| | | | | | | * tests/guix-home.sh: Reorder NIX_STORE_DIR variable definition to prevent guix from crashing due to missing /gnu/store. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* Revert "tests: pack: Fix indentation."Maxim Cournoyer2023-03-17
| | | | This reverts commit ac1d530d56c1a259630c8873b2281033878a4acb.
* read-print: 'read-with-comments' reads comments within gexps.Ludovic Courtès2023-03-16
| | | | | | | | Fixes <https://issues.guix.gnu.org/62059>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/read-print.scm (read-with-comments): Special-case #~, #$, and #+. * tests/read-print.scm: Add two tests.
* packages: 'package-input-rewriting/spec' ignores hidden packages.Ludovic Courtès2023-03-13
| | | | | | | | | | | | | | | | | | | The primary motivation is to support things like: guix build guix --with-input=guile=guile-next without triggering a rebuild of (@@ (gnu packages commencement) guile-final) and similar things. It is also consistent with package name resolution on the command line: a package that cannot be named cannot be replaced. * guix/packages.scm (package-input-rewriting/spec)[rewrite]: When P is hidden, return it as-is. * tests/packages.scm ("package-input-rewriting/spec, hidden package"): New test. * doc/guix.texi (Defining Package Variants): Update. (Package Transformation Options): Update '--with-input' example.
* packages: Consider 'patches' by 'package-direct-sources'.Simon Tournier2023-03-13
| | | | | | | * guix/packages.scm (package-direct-sources): Return 'origin' from 'patches'. * tests/packages.scm: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* read-print: Correctly handle comments that follow a list head.Ludovic Courtès2023-03-07
| | | | | | | | | | Fixes <https://issues.guix.gnu.org/61013>. Reported by Maxim Cournoyer <maxim.cournoyer@gmail.com>. * guix/read-print.scm (pretty-print-with-comments)[starts-with-line-comment?]: New procedure. Use it when printing a list. * tests/read-print.scm: Add two tests.
* pack: Adjust shell tests to read-only tarball root.Ludovic Courtès2023-02-27
| | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/61853>. Fixes a regression introduced in 68380db4c40a2ee1156349a87254fd7b1f1a52d5, whereby the tarball's root entry is now read-only, due to the creation of "profile-directory" in the store. * tests/guix-pack.sh: Remove and recreate $test_directory before transformation option test. * tests/guix-pack-relocatable.sh: Add "chmod +w $test_directory" lines before attempts to write to it.
* pack: Make sure tests can run without a world rebuild.Ludovic Courtès2023-02-27
| | | | | | | | | | | | | | | | | Commit 68380db4c40a2ee1156349a87254fd7b1f1a52d5 moved from 'gexp->derivation', which as a side effect, would lead tests to require a "world rebuild"--specifically, they'd have to build (default-guile). This was mitigated by 68775338a510f84e63657ab09242d79e726fa457, but that change introduced another regression. * guix/scripts/pack.scm (populate-profile-root): Define 'bootstrap?'. Pass #:guile to 'computed-file', with a value depending on 'bootstrap?'. * tests/pack.scm ("self-contained-tarball + localstatedir") ("docker-image + localstatedir", "squashfs-image + localstatedir") ("deb archive with symlinks and control files") ("rpm archive can be installed/uninstalled"): Use a <profile> record instead of a derivation.
* import: hackage: Add upstream-name property.Lars-Dominik Braun2023-02-26
| | | | | | | | | | * guix/import/hackage.scm (hackage-module->sexp): Add property upstream-name to imported package. * tests/hackage.scm (match-ghc-foo): Add upstream-name property. (match-ghc-foo-6): Ditto. (match-ghc-elif): Ditto. (match-ghc-foo-revision): Ditto. (match-ghc-foo-import): Ditto.
* pack: Add RPM format.Maxim Cournoyer2023-02-19
| | | | | | | | | | | | * guix/rpm.scm: New file. * guix/scripts/pack.scm (rpm-archive): New procedure. (%formats): Register it. (show-formats): Add it. (guix-pack): Register supported extra-options for the rpm format. * tests/pack.scm (rpm-for-tests): New variable. ("rpm archive can be installed/uninstalled"): New test. * tests/rpm.scm: New test. * doc/guix.texi (Invoking guix pack): Document it.
* tests: pack: Fix indentation.Maxim Cournoyer2023-02-19
| | | | * tests/pack.scm: Fix indentation.
* linux-container: 'container-excursion' forks to join the PID namespace.Ludovic Courtès2023-01-30
| | | | | | | | | | Fixes <https://issues.guix.gnu.org/61156>. * gnu/build/linux-container.scm (container-excursion): Add extra call to 'primitive-fork' and invoke THUNK in the child process. * tests/containers.scm ("container-excursion"): Remove extra 'primitive-fork' call, now unnecessary. ("container-excursion*, /proc"): New test.
* container: Correctly report exit status.Ludovic Courtès2023-01-30
| | | | | | | | | * gnu/build/linux-container.scm (container-excursion): Return the raw status value. * tests/containers.scm ("container-excursion, same namespaces"): Add 'status:exit-val' call. * guix/scripts/container/exec.scm (guix-container-exec): Correctly handle the different cases.
* tests: Do not try to create "$HOME/.config".Ludovic Courtès2023-01-25
| | | | | | | Previously this test would fail when HOME=/homeless-shelter and said directory cannot be created. * tests/guix-refresh.sh: Pass '--keyring' together with '-u'.
* transformations: Add '--with-version'.Ludovic Courtès2023-01-16
| | | | | | | | | | | | | | | This is a followup to 8aeccc6240ec45f0bc7bed655e0c8149ae4253eb. * guix/transformations.scm (package-with-upstream-version): New procedure. (transform-package-latest)[package-with-latest-upstream]: Remove. Use 'package-with-upstream-version' instead. (transform-package-version): New procedure. (%transformations, %transformation-options) (show-transformation-options-help/detailed): Add '-with-version'. * tests/transformations.scm ("options->transformation, with-version"): New test. * doc/guix.texi (Package Transformation Options): Document '--with-version'. (Defining Package Variants): Mention it.
* environment: Fix '--emulate-fhs' option overriding $PATH.John Kehayias2023-01-15
| | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/60566> where even if "--preserve='^PATH$'" was passed to 'guix shell' it would be replaced by just the FHS directories when '--emulate-fhs' was also set. * gnu/scripts/environment.scm (launch-environment): Add the FHS directories to $PATH rather than overriding $PATH completely. * tests/guix-environment-container.sh: Test that FHS directories are in $PATH in the container and that $PATH can be preserved. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* read-print: Do not use extended notation when printing '1+', '1-', etc.Ludovic Courtès2023-01-09
| | | | | | | * guix/read-print.scm (%special-non-extended-symbols): New variable. (symbol->display-string): New procedure. (pretty-print-with-comments): Use it in lieu of 'string->symbol'. * tests/read-print.scm: Add test.
* daemon: Improve error message for wrong hash sizes.Ludovic Courtès2023-01-09
| | | | | | | * nix/libutil/hash.cc (parseHash): Show the hash algorithm name and expected size in the error message. * tests/derivations.scm ("fixed-output derivation, invalid hash size"): New test.
* derivations: 'read-derivation' correctly handles case with empty hash.Ludovic Courtès2023-01-09
| | | | | | | | | | | Reported by Stephen Paul Weber <singpolyma@singpolyma.net> at <https://lists.gnu.org/archive/html/guix-devel/2023-01/msg00035.html>. * guix/derivations.scm (read-derivation)[outputs->alist]: Treat the empty hash case as non-fixed-output whether or not the hash algorithm is the empty string, and preserve the hash algorithm in <derivation-output>. * tests/derivations.scm ("'download' built-in builder, no fixed-output hash") ("fixed-output-derivation?, no hash", "read-derivation with hash = #f"): New tests.
* home: environment-variables: Fix escaping.Andrew Tropin2023-01-09
| | | | | | | | | * gnu/home/services.scm (environment-variable-shell-definitions): Fix escaping. * tests/guix-home.sh: Add STRING_WITH_ESCAPES environment variable and test its value. Reported-by: elevnkb
* home: environment-variables: Return support for file-likes and gexps.Andrew Tropin2023-01-09
| | | | | | | * gnu/home/services.scm (environment-variable-shell-definitions): Add support for file-likes and gexps. * tests/guix-home.sh: Add SHELL environment variable and test its value. Add BUILDHOSTTIME environment variable.
* refresh: Add CLI tests.Ludovic Courtès2023-01-08
| | | | | * guix/import/test.scm, tests/guix-refresh.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them.
* home: services: environment-variables: Add support for literal strings.Ludovic Courtès2023-01-05
| | | | | | | | | * gnu/home/services.scm (<literal-string>): New record type. (environment-variable-shell-definitions): Split 'shell-quote' into 'quote-string' and 'shell-double-quote'. Add 'shell-single-quote'. Add clause for 'literal-string' records. * tests/guix-home.sh: Test it. * doc/guix.texi (Essential Home Services): Document it.
* tests: Fix gnu-maintenance tests.Hartmut Goebel2023-01-02
| | | | | | | | | | | | The regression was introduce with commit a274a6a1acb99738f02de7b226e6a0d3883ec353 ("upstream-updater: Rename record field.") * tests/tests/gnu-maintenance.scm: ("latest-html-release, scheme-less URIs", "latest-html-release, no signature", "latest-html-release, signature"): Replace upstream-updater-latest by upstream-updater-import. Reported-by: Ricardo Wurmus <rekado@elephly.net>
* tests: import-utils: Ignore extra keyword arguments.Ricardo Wurmus2022-12-31
| | | | | | * tests/import-utils.scm ("recursive-import", "recursive-import: skip false packages (toplevel)", "recursive-import: skip false packages (dependency)"): Do not try to match all arguments.