aboutsummaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* gexp: 'computed-file' always uses a native Guile.Ludovic Courtès2022-02-15
| | | | | | | | | | | | Fixes a regression whereby, when cross-compiling, 'computed-file' would use a cross-compiled Guile as its builder, which would fail to run. Regression introduced in af57d1bf6c46f47d82dbc234dde1e16fa8634e9d (the problem had always been there but was hidden before behind the (not guile) condition.) * guix/gexp.scm (computed-file-compiler): For 'guile', pass #:target #f. * tests/gexp.scm ("lower-object, computed-file, #:target"): New test.
* publish: Do not sign the URL/Compression/FileSize narinfo fields.Ludovic Courtès2022-02-14
| | | | | | | | | | | | | | This will allow mirror operators to alter these non-normative bits of a narinfo without having to resign narinfos. * guix/scripts/publish.scm (narinfo-string): Remove URL/Compression/FileSize from BASE-INFO. Move them after "Signature". * tests/publish.scm ("/*.narinfo") ("/*.narinfo with properly encoded '+' sign") ("/*.narinfo with lzip + gzip") ("with cache, lzip + gzip"): Adjust accordingly. * tests/substitute.scm ("query narinfo with signature over relevant subset"): New test.
* git-authenticate: Ensure the target is a descendant of the introductory commit.Ludovic Courtès2022-02-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a bug whereby authentication of a commit *not* descending from the introductory commit could succeed, provided the commit verifies the authorization invariant. In the example below, A is a common ancestor of the introductory commit I and of commit X. Authentication of X would succeed, even though it is not a descendant of I, as long as X is authorized according to the '.guix-authorizations' in A: X I \ / A This is because, 'authenticate-repository' would not check whether X descends from I, and the call (commit-difference X I) would return X. In practice that only affects forks because it means that ancestors of the introductory commit already contain a '.guix-authorizations' file. * guix/git-authenticate.scm (authenticate-repository): Add call to 'commit-descendant?'. * tests/channels.scm ("authenticate-channel, not a descendant of introductory commit"): New test. * tests/git-authenticate.scm ("authenticate-repository, target not a descendant of intro"): New test. * tests/guix-git-authenticate.sh: Expect earlier test to fail since 9549f0283a78fe36f2d4ff2a04ef8ad6b0c02604 is not a descendant of $intro_commit. Add new test targeting an ancestor of the introductory commit, and another test targeting the v1.2.0 commit. * doc/guix.texi (Specifying Channel Authorizations): Add a sentence.
* git: Add 'commit-descendant?'.Ludovic Courtès2022-02-14
| | | | | * guix/git.scm (commit-descendant?): New procedure. * tests/git.scm ("commit-descendant?"): New test.
* git-authenticate: Test introductory commit signature verification.Ludovic Courtès2022-02-14
| | | | | | | | | These tests mimic similar tests already in 'tests/channels.scm', but without using the higher-level 'authenticate-channel'. * tests/git-authenticate.scm ("introductory commit, valid signature") ("introductory commit, missing signature") ("introductory commit, wrong signature"): New tests.
* tests: Adjust pypi test to recent changes.Ludovic Courtès2022-02-11
| | | | | | | This is a followup to 00762a4c4c8ecdd71cccf6afdd87ae68bf9b4964. * tests/pypi.scm ("pypi->guix-package, no wheel"): Guard against 'error?' instead of 'quit'.
* tests: Pass #:guile to 'computed-file' & co.Ludovic Courtès2022-02-11
| | | | | | | | | | | | | | | | | Fixes a regression introduced in af57d1bf6c46f47d82dbc234dde1e16fa8634e9d whereby tests would end up building the world. * guix/gexp.scm (mixed-text-file): Add #:guile parameter and honor it. * tests/gexp.scm ("mixed-text-file"): Pass #:guile to 'mixed-text-file'. ("file-union"): Pass #:guile to 'file-union'. ("lower-object, computed-file"): Pass #:guile to 'computed-file'. ("lower-object, computed-file + grafts"): Likewise. * tests/packages.scm ("origin->derivation, single file with snippet"): Likewise. * tests/profiles.scm ("profile-derivation, ordering & collisions"): Likewise. * guix/tests.scm (test-file): Likewise.
* tests: Assert that cyclic graphs can be produced.Liliana Marie Prikler2022-02-05
| | | | * tests/graph.scm ("package DAG, oops it was a cycle"): New test.
* import: pypi: Convert hyphens to underscores in PyPI URLs if needed.Vivien Kraus2022-01-26
| | | | | | | | | | | | * guix/import/pypi.scm (find-project-url): New function. (make-pypi-sexp): Use find-project-url. * tests/pypi.scm (foo-json): New procedure. (test-json-1, test-json-2): Define in terms of it. ("find-project-url, with numpy", "find-project-url, uWSGI"): ("find-project-url, flake8-array-spacing") ("find-project-url, foo/goo"): New tests. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* package: Honor '--dry-run' when target profile is already in store.Ludovic Courtès2022-01-19
| | | | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/53267>. Reported by Tirifto <tirifto@posteo.cz>. Regression introduced in 65ffb9388c1c3d870cb07e4cb3ef12c9ac06a161. In the (unlikely) case where the profile we're targeting with "guix upgrade -n" or similar is already built, a new profile generation would be created and linked to despite the use of '-n'. This is because 65ffb9388c1c3d870cb07e4cb3ef12c9ac06a161 assumed that dry-run behavior would be handled solely by the build handler, which is not the case when there's nothing to build. * guix/scripts/package.scm (build-and-use-profile): Reintroduce #:dry-run? and honor it. (process-actions): Pass #:dry-run? to 'build-and-use-profile'. * tests/guix-package-net.sh: Add test.
* tests: Adjust to gzip as the default log compression.Ludovic Courtès2022-01-19
| | | | | | This is a followup to 575e52ac2b090fd194086e9c1c53bbf8055acbc2. * tests/publish.scm ("/log/NAME"): Expect a gzip-encoded log.
* Merge branch 'version-1.4.0'Maxim Cournoyer2022-01-17
|\ | | | | | | | | | | | | With resolved conflicts in: gnu/packages/gnome.scm gnu/packages/openstack.scm gnu/packages/python-xyz.scm
| * utils: Fix wrap-script argument handling.Brendan Tildesley2022-01-10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * guix/build/utils.scm (wrap-script): Don't add (car cl) one too many times, cl its self contains it's car. Split the aguments string with string-tokenize to avoid leaving an empty string argument when there should be none. These two bugs seemed to be partially cancelling each other out so that scripts still worked when ran with no arguments. * tests/build-utils.scm: Adjust wrap-script to above changes. Add two tests to ensure the command line arguments appear identical to a script and its wrapped version. Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
* | tests: Fix file-needed/recursive on aarch64-linux.Pierre Langlois2022-01-16
| | | | | | | | | | | | | | Fixes: <https://issues.guix.gnu.org/52943>. * tests/gremlin.scm (file-needed/recursive)[ground-truth]: On aarch64-linux, remove the dynamic linker from this list.
* | tests: Clean up after 'tests/guix-package-net.sh'.Ludovic Courtès2022-01-16
| | | | | | | | | | * tests/guix-package-net.sh: Remove second 'trap' line. Change first 'trap' line to remove "$module_dir" and *.lock files.
* | tests: Clean up after 'tests/guix-graph.sh'.Ludovic Courtès2022-01-16
| | | | | | | | | | | | | | | | | | | | Fixes a regression introduced in a773c3142dd168e1c4480614d3f5fd9d003954cd, which would lead the first 'trap' to be ignored, thereby leaving 't-guix-graph-*' directories behind it. * tests/guix-graph.sh: Remove first 'trap' line that had no effect; replace second 'trap' line.
* | import/github: Test it.Maxime Devos2022-01-16
| | | | | | | | | | | | | | | | | | | | * Makefile.am (SCM_TESTS): Register new tests. * guix/import/github.scm (%github-api): New variable. (fetch-releases-or-tags): Use the new variable. * tests/import-github.scm: New file with tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* | gremlin: Adjust tests for i686 and beyond.Ludovic Courtès2022-01-14
| | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/52752>. Reported by Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>. * tests/gremlin.scm ("file-needed/recursive"): Augment the list of vDSO names.
* | import: texlive: Remove labels from 'propagated-inputs' field.Ludovic Courtès2022-01-13
| | | | | | | | | | | | * guix/import/texlive.scm (tlpdb->package): Remove labels from 'propagated-inputs' field. * tests/texlive.scm ("texlive->guix-package"): Adjust accordingly.
* | tests: Fix texlive test by sorting locations.Ricardo Wurmus2022-01-11
|/ | | | * tests/texlive.scm ("texlive->guix-package"): Correct order of locations.
* style: '-S format' canonicalizes comments.Ludovic Courtès2022-01-10
| | | | | | | | | | * guix/scripts/style.scm (canonicalize-comment): New procedure. (pretty-print-with-comments): Add #:format-comment. and honor it. (object->string*): Add 'args' and honor them. (format-package-definition): Pass #:format-comment to 'object->string*'. * tests/style.scm ("pretty-print-with-comments, canonicalize-comment"): New test.
* style: Add '--styling' option.Ludovic Courtès2022-01-10
| | | | | | | | | | | | | | | | | | | * guix/scripts/style.scm (format-package-definition): New procedure. (%options, show-help): Add "--styling". (%default-options): Add 'styling-procedure'. (guix-style): Honor it. * tests/style.scm (with-test-package) ("input labels, 'safe' policy") ("input labels, 'safe' policy, nothing changed") ("input labels, margin comment") ("input labels, margin comment on long list") ("input labels, line comment") ("input labels, modify-inputs and margin comment"): Pass "-S inputs". * etc/indent-code.el: Remove. * doc/contributing.texi (Formatting Code): Mention "guix style" instead of "etc/indent-code.el". (Submitting Patches): Add item for "guix style". * doc/guix.texi (Invoking guix style): Document "-S" and update.
* style: Add support for "newline forms".Ludovic Courtès2022-01-10
| | | | | | | | | | This allows us to express cases where a newline should be inserted immediately after the head symbol of a list. * guix/scripts/style.scm (%newline-forms): New variable. (newline-form?): New procedure. (pretty-print-with-comments): Handle "newline forms". * tests/style.scm: Add test.
* style: Allow special forms to be scoped.Ludovic Courtès2022-01-10
| | | | | | | | | | | | * guix/scripts/style.scm (vhashq): Add clause for 'lst, and change default clause. (%special-forms): Add context for 'add-after and 'add-before. Add 'replace. (prefix?, special-form-lead): New procedures. (special-form?): Remove. (pretty-print-with-comments): Add 'context' to the threaded state. Adjust 'print-sequence' and adjust 'loop' calls accordingly. * tests/style.scm: Add tests for 'replace.
* style: Improve pretty printer and add tests.Ludovic Courtès2022-01-10
| | | | | | | | | | * guix/scripts/style.scm (vhashq): New macro. (%special-forms): New variable. (special-form?): New procedure. (pretty-print-with-comments): Add many clauses and tweak existing rules. * tests/style.scm (test-pretty-print): New macro. <top level>: Add 'test-pretty-print' tests.
* tests: Fix file-needed/recursive on powerpc64le-linux.Chris Marusich2022-01-08
| | | | | | | | | | Fixes: <https://issues.guix.gnu.org/52940>. * tests/gremlin.scm (file-needed/recursive): Consider two entries to be equivalent not when they are the same string, but rather when they refer to the same file. [ground-truth]: In addition to strings that begin with "linux-vdso.so", remove strings that begin with "linux-vdso64.so".
* upstream: Support updating and fetching 'git-fetch' origins.Sarah Morgensen2022-01-06
| | | | | | | | | | | | | | | | | | | | | | | | | | | Updaters need to be modified to return 'git-reference' objects. This patch modifies the 'generic-git' and 'minetest' updater, but others might need to be modified as well. * guix/git.scm (git-reference->git-checkout): New procedure. * guix/upstream.scm (package-update/git-fetch): New procedure. (<upstream-source>)[urls]: Document it can be a 'git-reference'. (%method-updates): Add 'git-fetch' mapping. (update-package-source): Support 'git-reference' sources. (upstream-source-compiler/url-fetch): Split off from ... (upstream-source-compiler): ... this, and call ... (upstream-source-compiler/git-fetch): ... this new procedure if the URL field contains a 'git-reference'. * guix/import/git.scm (latest-git-tag-version): Always return two values and document that the tag is returned as well. (latest-git-release)[urls]: Use the 'git-reference' instead of the repository URL. * guix/import/minetest.scm (latest-minetest-release)[urls]: Don't wrap the 'git-reference' in a list. * tests/minetest.scm (upstream-source->sexp): Adjust to new convention. Co-authored-by: Maxime Devos <maximedevos@telenet.be> Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* home: import: Fix handling of manifest entries with specific output.Arjan Adriaanse2022-01-05
| | | | | | | | | | | | specification->package fails on manifest entries with specific outputs, resulting in an invalid home configuration. This changes the import command to use specification->package+output instead. * guix/scripts/home/import.scm (manifest+configuration-files->code): Make sure manifest entries with specific output are also handled. * tests/home-import.scm: Specify output in home environment manifest entry. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* tests: Add failing tests for changed-inputs on new style inputs.Ricardo Wurmus2022-01-05
| | | | | * tests/upstream.scm ("changed-inputs returns changes to plain input list", "changed-inputs returns changes to all plain input lists"): New tests.
* tests: Add tests for changed-inputs on old-style inputs.Ricardo Wurmus2022-01-05
| | | | | | | | | All these tests pass, because they only test the old-style input alists with labels. * tests/upstream.scm ("changed-inputs returns no changes", "changed-inputs returns changes to labelled input list", "changed-inputs returns changes to all labelled input lists"): New tests.
* guix hash: Allow '--exclude-vcs' option using 'git' serializer.zimoun2022-01-04
| | | | | | | | * guix/scripts/hash.scm (git-hash): Use '#:select?' with 'git-hash-directory'. * tests/guix-hash.sh: Adjust accordingly. Signed-off-by: Timothy Sample <samplet@ngyro.com>
* transformations: Add '--tune'.Ludovic Courtès2022-01-01
| | | | | | | | | | | | | * guix/transformations.scm (tuning-compiler) (tuned-package, tunable-package?, package-tuning) (transform-package-tuning) (build-system-with-tuning-compiler): New procedures. (%transformations): Add 'tune'. (%transformation-options): Add "--tune". * tests/transformations.scm ("options->transformation, tune") ("options->transformations, tune, wrong micro-architecture"): New tests. * doc/guix.texi (Package Transformation Options): Document '--tune'.
* Remove VM generation dead-code.Mathieu Othacehe2021-12-23
| | | | | | | | | | | | | | | This code duplicates the (gnu system image) and (gnu build image) code. Using VM for image generation is not needed, not portable and really slow. Remove all the VM image generation code to make sure that only the image API is used. * gnu/build/vm.scm: Remove it. Move the qemu-command procedure to ... * gnu/build/marionette.scm: ... here. * gnu/local.mk (GNU_SYSTEM_MODULES): Adapt it. * tests/modules.scm: Ditto. * gnu/tests/install.scm: Ditto. * gnu/system/vm.scm: Adapt it and remove expression->derivation-in-linux-vm, qemu-img, system-qemu-image/shared-store and system-docker-image procedures. * doc/guix.texi (G-Expressions): Adapt it.
* tests: Move keys into ./tests/keys/ and add a third ed25519 key.Attila Lendvai2021-12-22
| | | | | | | | | | | | | | | The third key will be used in an upcoming commit. Rename public keys to .pub. * guix/tests/gnupg.scm (%ed25519-3-public-key-file): New variable. (%ed25519-3-secret-key-file): New variable. (%ed25519-2-public-key-file): Renamed from %ed25519bis-public-key-file. (%ed25519-2-secret-key-file): Renamed from %ed25519bis-secret-key-file. * tests/keys/ed25519-3.key: New file. * tests/keys/ed25519-3.sec: New file. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
* import: elpa: Support ‘upstream-name’ property.Xinglu Chen2021-12-18
| | | | | | | | | * guix/import/elpa.scm: (guix-package->elpa-name): New procedure. (latest-release): Use it. * tests/elpa.scm ("guix-package->elpa-name: without 'upstream-name' property") ("guix-package->elpa-name: with 'upstream-name' property"): Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* lint: Adjust patch file length check.Vagrant Cascadian2021-12-17
| | | | | | | | | | | With the switch to "ustar" format in commit bdf5c16ac052af2ca9d5c3acc4acbc08fd9fdbea, the maximum file length has increased. * guix/lint.scm (check-patch-file-names): Adjust margin used to check for patch file lengths. Increase allowable patch file length appropriate to new tar format. Extend warning to explain that long files may break 'make dist'. * tests/lint.scm: Update tests accordingly.
* import: cran: Fix description->package test.Tobias Geerinckx-Rice2021-12-18
| | | | | | | | This follows up on commit 5cd1019488c44081aaf030fbe8bc357d78daef23. * tests/cran.scm (description): Include a very long line. (description->package): Update the golden description to match the paragraph filling now performed by BEAUTIFY-DESCRIPTION.
* guix hash: Add git serializer.zimoun2021-12-17
| | | | | | | | | * guix/scripts/hash.scm (git-hash): New procedure. (%options): Use it. * tests/guix-hash.sh: Test it. * doc/guix.texi: Update. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix hash: Add 'serializer' option.zimoun2021-12-17
| | | | | | | | | | | | | * guix/scripts/hash.scm (%options): Deprecate 'recursive', add 'serializer'. (%default-options): Add 'serializer'. (nar-hash): New procedure. (default-hash): New procedure. (guix-hash)[file-hash]: Use them. (show-help): Adjust. * tests/guix-hash.scm: Adjust. * doc/guix.texi: Update. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* guix hash: Support several files.zimoun2021-12-17
| | | | | | | | | | * guix/scripts/hash.scm (guix-hash): Allow several files. [file-hash]: Catch system-error. [formatted-hash]: New procedure. * tests/guix-hash.sh: Add test. * doc/guix.texi (Invoking guix hash): Mention "one or more files". Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe2021-12-10
|\
| * shell: When using '-D -f', '-D' has no effect on remaining packages.Ludovic Courtès2021-12-10
| | | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/52093>. Reported by Konrad Hinsen <konrad.hinsen@fastmail.net>. * guix/scripts/shell.scm (%options): In "--file" handler, add call to 'ensure-ad-hoc'. * tests/guix-shell.sh: Add test.
* | Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus2021-12-05
|\|
| * build-system: haskell: Add ‘hackage-uri’ procedure.Xinglu Chen2021-12-01
| | | | | | | | | | | | | | | | | | * guix/build-system/haskell (hackage-uri): New procedure. * guix/import/hackage.scm (hackage-module->sexp, latest-release): Use it. * tests/hackage.scm (match-ghc-foo, match-ghc-foo-6, match-ghc-foo-revision, match-ghc-foo-import): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
| * daemon: Read substitute nar size as 'unsigned long long'.Ludovic Courtès2021-11-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/46212>. Reported by Christopher Baines <mail@cbaines.net>. Previously, the nar size returned by 'guix substitute' would be read as an 'int'; thus, values above 2^31 - 1 would be read and then stored as negative integers in the database. Regression introduced in 9dfa20a22ae0be3d3b01a7b3d422af97428c627e. * nix/libstore/build.cc (SubstitutionGoal::finished): Use templatized 'string2Int' instead of 'std::atoi' to get an 'unsigned long long', which is the type of 'hash.second'. * tests/store.scm ("substitute and large size"): New test.
| * daemon: Read unsigned nar size and download size from substituter.Ludovic Courtès2021-11-25
| | | | | | | | | | | | | | | | | | Fixes <https://issues.guix.gnu.org/51983>. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * nix/libstore/local-store.cc (LocalStore::querySubstitutablePathInfos): Expect 'unsigned long long' for 'downloadSize' and 'narSize'. * tests/store.scm ("substitute query and large size"): New test.
* | gexp: 'file-append' correctly handles bases without an expander.Ludovic Courtès2021-11-27
| | | | | | | | | | | | | | | | | | | | This fixes this use case: (file-append (let-system ...) ...) * guix/gexp.scm (file-append-compiler): When BASE lacks an expander, delegate to LOWERED. * tests/gexp.scm ("let-system in file-append"): New test.
* | Merge branch 'master' into core-updates-frozenLudovic Courtès2021-11-23
|\|
| * tests: Replace texlive importer tests.Ricardo Wurmus2021-11-18
| | | | | | | | | | | | * tests/texlive.scm (xml, sxml): Remove variables. ("fetch-sxml: returns SXML for valid XML", "sxml->package"): Remove tests. ("texlive->guix-package"): Add new test.
* | shell: Adjust test to expect C_INCLUDE_PATH, not CPATH.Ludovic Courtès2021-11-18
| | | | | | | | | | | | This is a followup to 2a3cd4ee3557fbbdca42b5ec2f3ec4546c270203. * tests/guix-shell.sh: Expect C_INCLUDE_PATH instead of CPATH.