summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2021-12-10Merge remote-tracking branch 'signed/master' into core-updatesMathieu Othacehe
2021-12-10shell: When using '-D -f', '-D' has no effect on remaining packages.Ludovic Courtès
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.
2021-12-05Merge remote-tracking branch 'origin/master' into core-updates-frozenRicardo Wurmus
2021-12-01build-system: haskell: Add ‘hackage-uri’ procedure.Xinglu Chen
* 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>
2021-11-27gexp: 'file-append' correctly handles bases without an expander.Ludovic Courtès
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.
2021-11-25daemon: Read substitute nar size as 'unsigned long long'.Ludovic Courtès
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.
2021-11-25daemon: Read unsigned nar size and download size from substituter.Ludovic Courtès
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.
2021-11-23Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-18shell: Adjust test to expect C_INCLUDE_PATH, not CPATH.Ludovic Courtès
This is a followup to 2a3cd4ee3557fbbdca42b5ec2f3ec4546c270203. * tests/guix-shell.sh: Expect C_INCLUDE_PATH instead of CPATH.
2021-11-18tests: Adjust opam and pypi tests to simplified inputs.Ludovic Courtès
* tests/opam.scm ("opam->guix-package"): Expect simplified inputs. * tests/pypi.scm ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise.
2021-11-18tests: Replace texlive importer tests.Ricardo Wurmus
* tests/texlive.scm (xml, sxml): Remove variables. ("fetch-sxml: returns SXML for valid XML", "sxml->package"): Remove tests. ("texlive->guix-package"): Add new test.
2021-11-17Merge branch 'master' into core-updates-frozenLudovic Courtès
2021-11-16home: Adjust 'guix home import' test for shell aliases.Ludovic Courtès
This is a followup to 4b96998292442ec03024481c911d88f86c7c36b5. * tests/home-import.scm (match-home-environment-bash-service): Match the 'aliases' field.
2021-11-16daemon: Do not deduplicate files smaller than 8 KiB.Ludovic Courtès
Files smaller than 8 KiB typically represent ~70% of the entries in /gnu/store/.links but only contribute to ~4% of the space savings afforded by deduplication. Not considering these files for deduplication speeds up file insertion in the store and, more importantly, leaves 'removeUnusedLinks' with fewer entries to traverse, thereby speeding it up proportionally. Partly fixes <https://issues.guix.gnu.org/24937>. * config-daemon.ac: Remove symlink hard link check and CAN_LINK_SYMLINK definition. * guix/store/deduplication.scm (%deduplication-minimum-size): New variable. (deduplicate)[loop]: Do not recurse when FILE's size is below %DEDUPLICATION-MINIMUM-SIZE. (dump-port): New procedure. (dump-file/deduplicate)[hash]: Turn into... [dump-and-compute-hash]: ... this thunk. Call 'deduplicate' only when SIZE is greater than %DEDUPLICATION-MINIMUM-SIZE; otherwise call 'dump-port'. * nix/libstore/gc.cc (LocalStore::removeUnusedLinks): Drop files where st.st_size < deduplicationMinSize. * nix/libstore/local-store.hh (deduplicationMinSize): New declaration. * nix/libstore/optimise-store.cc (deduplicationMinSize): New variable. (LocalStore::optimisePath_): Return when PATH is a symlink or smaller than 'deduplicationMinSize'. * tests/derivations.scm ("identical files are deduplicated"): Produce files bigger than %DEDUPLICATION-MINIMUM-SIZE. * tests/nar.scm ("restore-file-set with directories (signed, valid)"): Likewise. * tests/store-deduplication.scm ("deduplicate, below %deduplication-minimum-size"): New test. ("deduplicate", "deduplicate, ENOSPC"): Produce files bigger than %DEDUPLICATION-MINIMUM-SIZE. * tests/store.scm ("substitute, deduplication"): Likewise.
2021-11-16tests: Factorize 'file=?'.Ludovic Courtès
* guix/tests.scm (file=?): Add optional 'stat' parameter. Add fast patch comparing inode numbers. * tests/gexp.scm ("imported-files with file-like objects"): Remove 'file=?' procedure and use the one from (guix tests).
2021-11-14tests: Adjust tests/egg.scm to latest API changes.Ludovic Courtès
This is a followup to b999c80c2e71bd4b3f26a18a321b7e7e7b580103. * tests/egg.scm (eval-test-with-egg-file): Pass 'version' argument to 'egg->guix-package'.
2021-11-11import: print: Replace packages and origins in 'arguments'.Ludovic Courtès
* guix/import/print.scm (package->code)[variable-reference] [object->code]: New procedures. [package-lists->code]: Rewrite in terms of 'object->code'. Pass the 'arguments' field through 'object->code'. * tests/print.scm (pkg-with-arguments, pkg-with-arguments-source): New variables. ("package with arguments"): New test.
2021-11-11import: print: Handle patches that are origins.Ludovic Courtès
* guix/import/print.scm (package->code)[source->code]: Handle patches that are origins. * tests/print.scm (pkg-with-origin-input): Add 'patches' field. (pkg-with-origin-patch, pkg-with-origin-patch-source): New variables. ("package with origin patch"): New test.
2021-11-11import: print: Correctly handle URI lists.Ludovic Courtès
* guix/import/print.scm (package->code)[factorized-uri-code]: New procedure. [source->code]: Use it, and factorize URI when it's a list. * tests/print.scm (pkg-with-origin-input): Check origin URI to a list.
2021-11-11import: print: Properly render packages with origins as inputs.Ludovic Courtès
* guix/import/print.scm (package->code)[source->code]: Check whether VERSION is true before calling 'factorize-uri'. [package-lists->code]: Add clause for inputs that are origins. * tests/print.scm (pkg-with-origin-input, pkg-with-origin-input-source): New variables. ("package with origin input"): New test.
2021-11-11import: pypi: Allow imports of a specific version.Ludovic Courtès
* guix/import/pypi.scm (latest-version): New procedure. (latest-source-release): Rename to... (source-release): ... this. Add 'version' parameter. (latest-wheel-release): Rename to... (wheel-release): ... this. Add 'version' parameter. (pypi->guix-package): Honor 'version' parameter. (pypi-recursive-import): Add 'version' parameter and honor it. * guix/scripts/import/pypi.scm (guix-import-pypi): Expect a spec. Pass it to 'package-name->name+version'. Pass the 'version' parameter. * tests/pypi.scm ("pypi->guix-package, no wheel"): Exercise the #:version parameter. * doc/guix.texi (Invoking guix import): Document it.
2021-11-08Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-11-07ui: 'load*' correctly reports 'read-error' in all cases.Ludovic Courtès
Previously, 'read-error' exceptions other than "missing closing paren" would not be reported; instead, we'd directly call (exit 1) without printing anything. Fixes <https://issues.guix.gnu.org/51463>. Reported by Alice BRENON <alice.brenon@ens-lyon.fr>. * guix/ui.scm (report-load-error): Report the error without re-throwing upon 'read-error'. * tests/guix-build.sh: Add test.
2021-11-07utils: Define a target-x86-32? and target-x86-64? predicate.Maxime Devos
* guix/utils.scm (target-x86-32?, target-x86-64?): New predicates. * tests/utils.scm ("target-x86-32?", "target-x86-64?"): New tests. Signed-off-by: Mathieu Othacehe <othacehe@gnu.org>
2021-11-06tests: Avoid literal strings for invalid Texinfo markup.Ludovic Courtès
This is a followup to e171182a20962c4119e12439b92bbbfd59b1495e. * tests/lint.scm ("description: invalid Texinfo markup") ("synopsis: valid Texinfo markup"): Add call to 'identity' to avoid triggering a syntax error.
2021-10-31Merge remote-tracking branch 'origin/master' into core-updates-frozenEfraim Flashner
2021-10-31home: import: Avoid duplication of 'manifest->code'.Ludovic Courtès
* guix/scripts/home/import.scm (manifest->code): Remove. (manifest+configuration-files->code): New procedure. (import-manifest): Use 'manifest+configuration-files->code' instead of 'manifest->code'. * tests/home-import.scm (eval-test-with-home-environment): Likewise. (match-home-environment-transformations): New procedure. ("manifest->code: No services, package transformations"): New test.
2021-10-31home: import: Factorize triplicated 'version-spec' procedure.Ludovic Courtès
* guix/scripts/package.scm (manifest-entry-version-prefix): New procedure, moved from... (export-manifest)[version-spec]: ... here. Adjust caller. * tests/home-import.scm (version-spec): Remove. (eval-test-with-home-environment): Use 'manifest-entry-version-prefix' instead. * guix/scripts/home/import.scm (import-manifest): Likewise.
2021-10-31guix home: import: Call ‘local-file’ with ‘name’Xinglu Chen
Set the name of the file to just the basename of the file passed to ‘local-file’. * guix/scripts/home/import.scm (basename+remove-dots): New procedure. (generate-bash-configuration+modules): Use it. * tests/home-import.scm (match-home-environment-bash-service): Adjust accordingly. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-31Add tests for ‘guix home import’.Xinglu Chen
* tests/home-import.scm: New file. * Makefile.am (SCM_TESTS): Add it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-30shell: Error out when an unauthorized guix.scm/manifest.scm is found.Ludovic Courtès
The previous behavior was confusing: a warning would be printed and 'guix shell' would go on starting an empty environment. Reported by Tobias Geerinckx-Rice <me@tobias.gr>. * guix/scripts/shell.scm (auto-detect-manifest): Change "not loading" case from warning to error. * tests/guix-shell.sh: Adjust accordingly.
2021-10-28store: 'map/accumulate-builds' handler checks the store received.Ludovic Courtès
This is a followup to b19250eec6f92308f237a09a43e8e3e2355345b9, providing a proper fix for <https://issues.guix.gnu.org/46756>. * guix/remote.scm (remote-eval): Revert b19250eec6f92308f237a09a43e8e3e2355345b9. * guix/store.scm (build-accumulator): Turn into a procedure. Call CONTINUE when the store is not eq? to the initial store. (map/accumulate-builds): Adjust accordingly. * tests/store.scm ("map/accumulate-builds and different store"): New test.
2021-10-26syscalls: Add 'openpty' and 'login-tty'.Ludovic Courtès
* guix/build/syscalls.scm (openpty, login-pty): New procedures. * tests/syscalls.scm ("openpty", "openpty + login-tty"): New tests.
2021-10-25environment: Add tests for '--profile'.Ludovic Courtès
This is a followup to a643deac2de81755a1843a3b41dd53857678bebc. * tests/guix-environment-container.sh, tests/guix-environment.sh: Add tests for '--profile'.
2021-10-25shell: By default load the local 'manifest.scm' or 'guix.scm' file.Ludovic Courtès
* guix/scripts/shell.scm (parse-args): Add call to 'auto-detect-manifest'. (authorized-directory-file, authorized-shell-directory?) (find-file-in-parent-directories, auto-detect-manifest): New procedures. * tests/guix-shell.sh: Add test. * doc/guix.texi (Invoking guix shell): Document it.
2021-10-25Add 'guix shell'.Ludovic Courtès
* guix/scripts/shell.scm, tests/guix-shell.sh: New files. * Makefile.am (MODULES): Add 'shell.scm'. (SH_TESTS): Add 'tests/guix-shell.sh'. * guix/scripts/environment.scm (show-environment-options-help): New procedure. (show-help): Use it. (guix-environment*): New procedure. (guix-environment): Use it. * po/guix/POTFILES.in: Add it. * doc/guix.texi (Features): Refer to "guix shell" (Invoking guix package): Likewise. (Development): Likewise. (Invoking guix shell): New node. (Invoking guix environment): Add deprecation warning. (Debugging Build Failures): Use 'guix shell' in examples. (Invoking guix container): Refer to 'guix shell'. (Invoking guix processes, Virtualization Services): Adjust examples to use 'guix shell'. * doc/contributing.texi (Building from Git): Refer to 'guix shell'. * etc/completion/bash/guix: Handle "shell".
2021-10-25profiles: Add 'package->development-manifest'.Ludovic Courtès
* guix/profiles.scm (package->development-manifest): New procedure. * guix/scripts/environment.scm (input->manifest-entry) (package-environment-inputs): Remove. * guix/scripts/environment.scm (options/resolve-packages): Use 'package->development-manifest' instead of 'package-environment-inputs'. * tests/profiles.scm ("package->development-manifest"): New test.
2021-10-25packages: Add 'package-development-inputs'.Ludovic Courtès
* guix/packages.scm (package-development-inputs): New procedure. * guix/scripts/environment.scm (package-environment-inputs): Use it. * tests/packages.scm ("package-development-inputs") ("package-development-inputs, cross-compilation"): New tests. * doc/guix.texi (package Reference): Document it.
2021-10-24lint: Add description check for common typos.Vagrant Cascadian
Fixes: https://issues.guix.gnu.org/44675 * guix/lint.scm (check-description-typo): Add check for occurences of "This packages", "This modules", "allows to" and "permits to" in package descriptions. * tests/lint.scm: Add tests for "This packages" and "allows to".
2021-10-12Merge remote-tracking branch 'origin/master' into core-updates-frozen.Mathieu Othacehe
2021-10-09home: services: configuration: Support file-like objects.Oleg Pykhalov
* gnu/home/services/configuration.scm (interpose): Operate only with file-like objects. (string-or-gexp?): Delete procedure. (serialize-string-or-gexp): Rename to 'serialize-file-like'. (text-config?): Call 'file-like' intead of 'string-or-gexp?'. * guix/scripts/home/import.scm: (generate-bash-module+configuration): Don't call slurp-file-gexp. * gnu/home/services/configuration.scm: Move content ... * gnu/services/configuration.scm: here. * gnu/home/services/shells.scm: Delete (gnu home services configuration). * gnu/home/services/xdg.scm: Same. * gnu/local.mk: Same. * tests/guix-home.sh: Test home-bash-service-type and extension with home-bash-extension.
2021-10-09tests: Add guix-home.sh.Oleg Pykhalov
* tests/guix-home.sh: New file. * Makefile.am (SH_TESTS): Add this.
2021-10-02import/minetest: Define an updater for mods on ContentDB.Maxime Devos
Only detecting updates is currently supported. To actually perform the uppdates, a patch like <https://issues.guix.gnu.org/50072#4> is required. * guix/import/minetest.scm (version-style,minetest-package?,latest-minetest-release): New procedures. (%minetest-updater): New updater. * tests/minetest.scm (upstream-source->sexp,expected-sexp,example-package): New procedure. (test-release,test-no-release): New macro's. ("same version","new version (dotted)","new version (date)") ("new version (git -> dotted)","dotted->date","date->dotted") ("no commit informaton, no new release") ("minetest is not a minetest mod") ("technic is a minetest mod") ("upstream-name is required"): New tests. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-10-02import: stackage: Use 'define-json-mapping'.Ludovic Courtès
* guix/import/stackage.scm (<stackage-lts>, <snapshot>) (<stackage-package>): New record types and JSON mappings. (lts-info-packages, stackage-package-name) (stackage-package-version): Remove. (lts-package-version): Rename 'pkgs-info' to 'packages'; assume 'packages' is a list of <stackage-package>. (stackage->guix-package): Use 'stackage-lts-packages' instead of 'lts-info-packages'. Rename 'packages-info' to 'packages'. (latest-lts-release): Likewise. (stackage-package?): Rename to... (stackage-lts-package?): ... this. Adjust to new API. (%stackage-updater)[pred]: Update accordingly. * tests/lint.scm ("haskell-stackage"): Add "snapshot" entry in JSON snippet.
2021-09-30import: pypi: Honor the 'upstream-name' package property.Xinglu Chen
Previously, when a PyPI package had a “-” followed by one or more digits in its name, e.g., “AV-98”, the importer would interpret “98” as the version of the package and thus mistake the “AV-98” package for the “av” package on PyPI. $ ./pre-inst-env guix refresh av-98 following redirection to `https://pypi.org/pypi/av/json'... /home/yoctocell/src/guix/gnu/packages/web-browsers.scm:914:13: av-98 would be upgraded from 1.0.1 to 8.0.3 Setting the ‘upstream-name’ property to “AV-98” would solve the problem. $ ./pre-inst-env guix refresh av-98 /home/yoctocell/src/guix/gnu/packages/web-browsers.scm:914:13: 1.0.1 is already the latest version of av-98 * guix/import/pypi.scm (guix-package->pypi-name): Honor ‘upstream-name’ property. (make-pypi-sexp): Set ‘upstream-name’ property when appropriate. * tests/pypi.scm (test-json): Rename to ... (test-json-1): ... this. (test-json-2): New variable ("guix-package->pypi-name, honor 'upstream-name'"): New test. ("pypi->guix-package, package name contains \"-\" followed by digits"): Likewise. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
2021-09-28test: lint: Fix ‘haskell-stackage’ test.Xinglu Chen
This is a follow-up to commit 9c5e5ca1c0de56a0d5b2b924de10548172095b58. The previous package was called “ghc-x” which is not available on Stackage, instead change it to “ghc-pandoc” which does exist, and adjust its version. * tests/lint.scm ("haskell-stackage"): Add additional metadata for the package; change package name to “ghc-pandoc”; and change to version to “100.0”. Reported-by: Tobias Geerinckx-Rice <me@tobias.gr> Signed-off-by: Tobias Geerinckx-Rice <me@tobias.gr>
2021-09-28import: minetest: Fix typos.Tobias Geerinckx-Rice
* guix/import/minetest.scm (elaborate-contentdb-name): Fix ‘ambiguous’ and ‘thes’ typos. * tests/minetest.scm: Likewise for all tests.
2021-09-28tests: go: Fix typo.Tobias Geerinckx-Rice
* tests/go.scm (fixture-go-mod-unparseable): Rename this… (fixture-go-mod-unparsable): …to this. Adjust the only caller.
2021-09-25gexp: Leave grafting as is when lowering allowed/disallowed references.Ludovic Courtès
Fixes <https://issues.guix.gnu.org/50676>. Reported by Mathieu Othacehe <othacehe@gnu.org>. Commit a779363b6aa581e88eda21f9f35530962d54ac25 was partially incorrect: references passed to #:allowed-references or #:references-graphs *can* be lowered as references to grafted elements. This is for example the case when doing: (computed-file "partition.img" exp #:options `(#:references-graphs ,inputs)) Here INPUTS must be lowered as a reference to suitably grafted elements. Failing to do that, the reference graph will not match the actual INPUTS. However, when building a package, those references must indeed refer only to ungrafted packages. This commit preserves that by having build systems pass #:graft? #f. * guix/gexp.scm (lower-reference-graphs, lower-references): Remove uses of 'without-grafting'. This reverts a779363b6aa581e88eda21f9f35530962d54ac25. * guix/build-system/cmake.scm (cmake-build, cmake-cross-build): Pass #:graft? #f. * guix/build-system/glib-or-gtk.scm (glib-or-gtk-build) (glib-or-gtk-cross-build): Likewise. * guix/build-system/gnu.scm (gnu-build, gnu-cross-build): Likewise. * guix/build-system/meson.scm (meson-build, meson-cross-build): Likewise. * guix/build-system/trivial.scm (trivial-build, trivial-cross-build): Likewise. * tests/gexp.scm ("lower-object, computed-file + grafts"): New test. * tests/packages.scm ("trivial with #:allowed-references + grafts"): New test.
2021-09-21graph: Add '--max-depth'.Ludovic Courtès
* guix/graph.scm (export-graph): Add #:max-depth and honor it, adding 'depths' argument to 'loop'. * guix/scripts/graph.scm (%options, show-help): Add '--max-depth'. (%default-options): Add 'max-depth'. (guix-graph): Pass #:max-depth to 'export-graph'. * tests/graph.scm ("package DAG, limited depth"): New test. * doc/guix.texi (Invoking guix graph): Document it.