summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAge
* publish: Add support for lzip.Ludovic Courtès2019-05-27
| | | | | | | | | | | | | | | * guix/scripts/publish.scm (show-help, %options): Support '-C METHOD' and '-C METHOD:LEVEL'. (default-compression): New procedure. (bake-narinfo+nar): Add lzip. (nar-response-port): Likewise. (string->compression-type): New procedure. (make-request-handler): Generalize /nar/gzip handler to handle /nar/lzip as well. * tests/publish.scm ("/nar/lzip/*"): New test. ("/*.narinfo with lzip compression"): New test. * doc/guix.texi (Invoking guix publish): Document it. (Requirements): Mention lzlib.
* utils: Support compression and decompression with lzip.Ludovic Courtès2019-05-27
| | | | | | | | * guix/utils.scm (lzip-port): New procedure. (decompressed-port, compressed-port, compressed-output-port): Add 'lzip case. * tests/utils.scm <top level>: Call 'test-compression/decompression' for 'lzip as well.
* utils: Test 'compressed-port' and 'decompressed-port' for both gzip and xz.Ludovic Courtès2019-05-27
| | | | | * tests/utils.scm (test-compression/decompression): New procedure. <top level>: Call it for both 'xz and 'gzip.
* lzlib: Add 'make-lzip-input-port/compressed'.Ludovic Courtès2019-05-27
| | | | | | | * guix/lzlib.scm (lzwrite!, make-lzip-input-port/compressed): New procedures. * tests/lzlib.scm ("make-lzip-input-port/compressed"): New test. * guix/tests.scm (%seed): Export.
* import: hackage: Fix Cabal test.Ludovic Courtès2019-05-26
| | | | | | | | | * guix/import/hackage.scm (hackage->guix-package): Remove call to 'memoize'. (hackage->guix-package/m): New procedure. (hackage-recursive-import): Use it. * tests/hackage.scm ("hackage->guix-package test 6"): Adjust. Co-authored-by: Robert Vollmert <rob@vllmrt.net>
* discovery: 'all-modules' returns modules in path order.Robert Vollmert2019-05-26
| | | | | | | | | | | | | A particular effect of this is that if there are ambiguous packages in a directory specified with `-L module_dir` and the distribution, the version from `module_dir` will be loaded, which is usually what would be expected. (E.g. for `guix build` or `guix package -i`.) * guix/discovery.scm (all-modules): Return modules in path order. * tests/guix-package.sh: Test local definitions take precedence. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
* publish: Maintain a hash-part-to-store-item mapping in cache.Ludovic Courtès2019-05-26
| | | | | | | | | | | Fixes <https://bugs.gnu.org/33897>. * guix/scripts/publish.scm (hash-part-mapping-cache-file) (hash-part->path*): New procedures. * guix/scripts/publish.scm (render-narinfo/cached)[delete-entry]: Delete the 'hash-part-mapping-cache-file'. Use 'hash-part->path*' instead of 'hash-part->path'. * tests/publish.scm ("with cache, vanishing item"): New test.
* pack: Add '--root'.Ludovic Courtès2019-05-22
| | | | | | | * guix/scripts/pack.scm (%options, show-help): Add "--root". (guix-pack): Honor it. * tests/guix-pack.sh: Test it. * doc/guix.texi (Invoking guix pack): Document it.
* pack: '--localstatedir' and '-R' tests gracefully handle missing /gnu/store.Ludovic Courtès2019-05-18
| | | | | | | | | Fixes <https://bugs.gnu.org/35776>. Reported by Ting-Wei Lan <lantw44@gmail.com>. * tests/guix-pack-localstatedir.sh: Set 'storedir' before 'NIX_STORE_DIR'. * tests/guix-pack-relocatable.sh: Likewise.
* gremlin: Adjust tests for foreign distros.Ting-Wei Lan2019-05-18
| | | | | | | | Fixes <https://bugs.gnu.org/35775>. * tests/gremlin.scm ("elf-dynamic-info-needed, executable"): Expect only libguile and libc among NEEDED. ("strip-runpath"): Pass '--enable-new-dtags' to get RUNPATH, not RPATH.
* tests: Fix guix-package.sh.Maxim Cournoyer2019-05-13
| | | | | | | GCC is now a hidden package, so cannot be installed. * tests/guix-package.sh: Replace 'gcc' by 'zile' in a test that install multiple packages.
* tests: Ensure 'unshare' works before relying on it.Ludovic Courtès2019-05-09
| | | | | | | | | Fixes <https://bugs.gnu.org/35642>. Reported by Josh Holland <josh@inv.alid.pw>. * tests/guix-pack-relocatable.sh: Before invoking 'unshare' at the bottom, add "if unshare -r true" condition. * tests/guix-pack.sh: Likewise.
* ui: Make package outputs searchable.Chris Marusich2019-05-09
| | | | | | | | | | | | * guix/ui.scm (relevance): Allow the "field" procedure of a metric to return a list, and handle that case appropriately. Update docstring. (%package-metrics): Add a metric for package outputs. * guix/scripts/package.scm (find-packages-by-description): Update docstring. * tests/guix-package.sh: Add a test case to verify that package outputs are included in search results. Co-authored-by: Tobias Geerinckx-Rice <me@tobias.gr>
* environment: Non ad-hoc mode also honors transformation options.Ludovic Courtès2019-05-07
| | | | | | | | | Fixes <https://bugs.gnu.org/35618>. Reported by Florent Pruvost <florent.pruvost@inria.fr>. * guix/scripts/environment.scm (options/resolve-packages): Add call to TRANSFORM in non "ad-hoc" case. * tests/guix-environment.sh: Add test.
* uuid: 'fat-uuid->string' preserves leading zeros.Ludovic Courtès2019-05-07
| | | | | | | | | | | | | | | | Fixes <https://bugs.gnu.org/35582>. Reported by sirgazil <sirgazil@zoho.com>. Previously, leading zeros would be removed, leading to an "invalid" UUID: (uuid->string (uuid "00CA-050E" 'fat32)) ⇒ "CA-50E" (string->uuid "CA-50E" 'fat32) ⇒ #f * gnu/system/uuid.scm (fat-uuid->string): Pad digits with zeros. * tests/uuid.scm ("uuid, FAT32, leading zeros preserved"): New test.
* Add (guix lzlib).Pierre Neidhardt2019-05-06
| | | | | | | | | | | | | * guix/lzlib.scm, tests/lzlib.scm: New files. * Makefile.am (MODULES): Add guix/lzlib.scm. (SCM_TESTS): Add tests/lzlib.scm. * m4/guix.m4 (GUIX_LIBLZ_LIBDIR): New macro. * configure.ac (LIBLZ_LIBDIR): Use it. Define and substitute 'LIBLZ'. * guix/config.scm.in (%liblz): New variable. * guix/self.scm (make-config.scm): Add TODO comment. Co-authored-by: Ludovic Courtès <ludo@gnu.org>
* tests: Adjust wildcard when testing OS examples.Ludovic Courtès2019-04-29
| | | | | * tests/guix-system.sh: Use *.tmpl instead of *, to avoid catching backup files, etc.
* guix package: Add 'guix search' alias.Ludovic Courtès2019-04-29
| | | | | | | | | * guix/scripts/search.scm: New file. * Makefile.am (MODULES): Add it. * po/guix/POTFILES.in: Add it. * tests/guix-package-aliases.sh: Add test. * doc/guix.texi (Invoking guix package): Document it and use it in a couple of examples.
* guix package: Add 'install', 'remove', and 'upgrade' aliases.Ludovic Courtès2019-04-29
| | | | | | | | | | | | | | | | * guix/scripts/install.scm, guix/scripts/remove.scm, guix/scripts/upgrade.scm, tests/guix-package-aliases.sh: New files. * Makefile.am (MODULES, SH_TESTS): Add them. * po/guix/POTFILES.in: Add them. * guix/scripts/package.scm (guix-package): Split with... (guix-package*): ... this. New procedure. * doc/guix.texi (Invoking guix package): Document them. (Binary Installation, Application Setup, Package Management) (Packages with Multiple Outputs, Package Modules) (X.509 Certificates, Installing Debugging Files): Use 'guix install' in simple examples. * etc/completion/bash/guix (_guix_complete): Handle "install", "remove", and "upgrade".
* tests: Adjust accounts test to shell-as-config change.Ludovic Courtès2019-04-27
| | | | | | | This is a followup to 504a0fc636ec591e65b4a229a37e522e425d8a0c. * tests/accounts.scm ("allocate-passwd with previous state"): Change expected 'shell' for "alice" to "/bin/sh".
* guix build: Accept multiple '-s' options.Ludovic Courtès2019-04-19
| | | | | | | | | | | * guix/scripts/build.scm (%default-options): Remove 'system'. (%options) <--system>: Keep previous occurrences of 'system in RESULT. (options->derivations)[system]: Remove. [systems, things-to-build]: New variables. [compute-derivation]: New procedure. Iterate on all of SYSTEMS to compute the derivations of THINGS-TO-BUILD. * tests/guix-build.sh: Add test for one and multiple '-s' flags. * doc/guix.texi (Additional Build Options): Document this behavior.
* tests: Gracefully skip zlib test when zlib is missing.Ludovic Courtès2019-04-16
| | | | | * tests/zlib.scm: Use 'test-skip' instead of (exit 77) when (zlib-available?) returns false.
* guix build: Fix relative file name canonicalization for '--root'.Ludovic Courtès2019-04-15
| | | | | | | | | Fixes <https://bugs.gnu.org/35271>. Reported by rendaw <7e9wc56emjakcm@s.rendaw.me>. * guix/scripts/build.scm (register-root): When ROOT is a relative file name, append the basename of ROOT, not ROOT itself. * tests/guix-build.sh: Add test.
* guix gc: Add '--list-roots'.Ludovic Courtès2019-04-10
| | | | | | | | * guix/scripts/gc.scm (show-help, %options): Add '--list-roots'. (guix-gc)[list-roots]: New procedure. Handle '--list-roots'. * tests/guix-gc.sh: Test it. * doc/guix.texi (Invoking guix gc): Document it.
* Add (guix store roots).Ludovic Courtès2019-04-10
| | | | | | * guix/store/roots.scm, tests/store-roots.scm: New files. * Makefile.am (STORE_MODULES): Add guix/store/roots.scm. (SCM_TESTS): Add tests/store-roots.scm.
* environment: '-C' creates namespaces where the user is not root.Ludovic Courtès2019-04-02
| | | | | | | | | * guix/scripts/environment.scm (launch-environment/container): Add UID and GID. Use them in PASSWD and GROUPS. Pass them as #:guest-uid and #:guest-gid to 'call-with-container'. * tests/guix-environment-container.sh: Test the inner UID. In '--user' test, replace hard-coded 0 with 1000. * doc/guix.texi (Invoking guix environment): Adjust accordingly.
* linux-container: Make the guest UID and GID a parameter.Ludovic Courtès2019-04-02
| | | | | | | | | * gnu/build/linux-container.scm (initialize-user-namespace): Add #:guest-uid and #:guest-gid parameters and honor them. (run-container): Likewise. (call-with-container): Likewise. * tests/containers.scm ("call-with-container, user namespace, guest UID/GID"): New test.
* records: Support custom 'this' identifiers.Ludovic Courtès2019-03-30
| | | | | | | | | | | This lets record users choose an identifier other than 'this-record'. * guix/records.scm (make-syntactic-constructor): Add #:this-identifier. [wrap-field-value]: Honor it. (define-record-type*): Add form with extra THIS-IDENTIFIER and honor it. * tests/records.scm ("define-record-type* & thunked & inherit & custom this"): New test.
* environment: Create /etc/group in containers.Ludovic Courtès2019-03-26
| | | | | | | | Reported by Pierre Neidhardt <mail@ambrevar.xyz>. * guix/scripts/environment.scm (launch-environment/container): Create GROUPS and call 'write-group'. * tests/guix-environment-container.sh: Test it.
* environment: Use (gnu build accounts) for /etc/passwd handling.Ludovic Courtès2019-03-26
| | | | | | | | | * guix/scripts/environment.scm (launch-environment/container): Remove call to 'mock-passwd'; instantiate a <password-entry> instead. Call 'write-passwd' to write the pasword database instead of using custom code. (mock-passwd): Remove. * tests/guix-environment-container.sh: Test 'getpwuid'.
* accounts: Add default value for the 'home-directory' field of <user-account>.Ludovic Courtès2019-03-25
| | | | | | | | | | | | | | | | | | * gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda): (%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise.
* records: Allow thunked fields to refer to 'this-record'.Ludovic Courtès2019-03-25
| | | | | | | | | | | | * guix/records.scm (this-record): New syntax parameter. (make-syntactic-constructor)[wrap-field-value]: When F is thunked, return a one-argument lambda instead of a thunk, and parameterize THIS-RECORD. (define-record-type*)[thunked-field-accessor-definition]: Pass X to (real-get X). * tests/records.scm ("define-record-type* & thunked & this-record") ("define-record-type* & thunked & default & this-record") ("define-record-type* & thunked & inherit & this-record"): New tests.
* tests: Adjust 'guix pack -f squashfs' test.Ludovic Courtès2019-03-24
| | | | | | | This is a followup to 427c87d0bdc06cc3ee7fc220fd3ad36084412533. * tests/pack.scm ("squashfs-image + localstatedir"): Expect "bin" to be a relative symlink.
* tests: Add missing import.Ludovic Courtès2019-03-24
| | | | | | This is a followup to 22f95e028f038cee342f455dfc55bd32b804907c. * tests/scripts.scm: Use (guix tests).
* graph: Add the 'reverse-bag' graph.Ludovic Courtès2019-03-23
| | | | | | | | | Suggested by Julien Lepiller. * guix/scripts/graph.scm (%reverse-bag-node-type): New variable. (%node-types): Add it. * tests/graph.scm ("reverse bag DAG"): New test. * doc/guix.texi (Invoking guix graph): Document it.
* guix build: '--with-commit' makes recursive checkouts.Ludovic Courtès2019-03-17
| | | | | | | | | | This was an omission from commit 024a6bfba906742c136a47b4099f06880f1d3f15. * guix/scripts/build.scm (transform-package-source-commit): Add 'recursive?' field to SOURCE. * tests/scripts-build.scm ("options->transformation, with-branch") ("options->transformation, with-commit"): New tests.
* guix build: Transformation options match packages by spec.Ludovic Courtès2019-03-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | This allows us to combine several transformations on a given package, in particular '--with-git-url' and '--with-branch'. Previously transformations would ignore each other since they would all take (specification->package SOURCE) as their replacement source, compare it by identity, which doesn't work if a previous transformation has already changed SOURCE. * guix/scripts/build.scm (evaluate-replacement-specs): Adjust to produce an alist as expected by 'package-input-rewriting/spec', with a package spec as the first element of each pair. (evaluate-git-replacement-specs): Likewise. (transform-package-inputs): Adjust accordingly and use 'package-input-rewriting/spec'. (transform-package-inputs/graft): Likewise. (transform-package-source-branch, transform-package-source-commit): Use 'package-input-rewriting/spec'. (transform-package-source-git-url): Likewise, and adjust the REPLACEMENTS alist accordingly. (options->transformation): Iterate over OPTS instead of over %TRANSFORMATIONS. Invoke transformations one by one. * tests/scripts-build.scm ("options->transformation, with-input"): Adjust test to compare packages by name rather than by identity. ("options->transformation, with-git-url + with-branch"): New test.
* packages: Add 'package-input-rewriting/spec'.Ludovic Courtès2019-03-17
| | | | | | | * guix/packages.scm (package-input-rewriting/spec): New procedure. * tests/packages.scm ("package-input-rewriting/spec") ("package-input-rewriting/spec, partial match"): New tests. * doc/guix.texi (Defining Packages): Document it.
* guix build: Add '--with-git-url'.Ludovic Courtès2019-03-17
| | | | | | | | | | | | * guix/scripts/build.scm (%not-equal): New variable. (evaluate-git-replacement-specs): Use it instead of local variable 'not-equal'. (transform-package-source-git-url): New procedure. (%transformations): Add 'with-git-url'. (%transformation-options, show-transformation-options-help): Add '--with-git-url'. * tests/scripts-build.scm ("options->transformation, with-git-url"): New test.
* booloader: Add 'invoke/quiet'.Ludovic Courtès2019-03-16
| | | | | | | | | * gnu/build/bootloader.scm (G_): New macro. (open-pipe-with-stderr, invoke/quiet): New procedures. * tests/build-utils.scm ("invoke/quiet, success") ("invoke/quiet, failure") ("invoke/quiet, failure, message on stderr"): New tests. * po/guix/POTFILES.in: Add bootloader.scm.
* tests: Add 'with-environment-variable'.Ludovic Courtès2019-03-16
| | | | | | | * tests/scripts.scm (with-environment-variable): Move to... * guix/tests.scm (with-environment-variable): ... here. * tests/build-utils.scm ("wrap-program, one input, multiple calls"): Use it instead of 'setenv'.
* pack: "-RR" produces PRoot-enabled relocatable binaries.Ludovic Courtès2019-03-15
| | | | | | | | | | | | | | | | * gnu/packages/aux-files/run-in-namespace.c (exec_with_proot): New function. (main): When 'clone' fails, call 'rm_rf'. [PROOT_PROGRAM]: When 'clone' fails, call 'exec_with_proot'. * guix/scripts/pack.scm (wrapped-package): Add #:proot?. [proot]: New procedure. [build]: Compile with -DPROOT_PROGRAM when PROOT? is true. * guix/scripts/pack.scm (%options): Set the 'relocatable?' value to 'proot when "-R" is passed several times. (guix-pack): Pass #:proot? to 'wrapped-package'. * tests/guix-pack-relocatable.sh: Use "-RR" on Intel systems that lack user namespace support. * doc/guix.texi (Invoking guix pack): Document -RR.
* Add (gnu build accounts).Ludovic Courtès2019-03-07
| | | | | | * gnu/build/accounts.scm, tests/accounts.scm: New files. * Makefile.am (SCM_TESTS): Add tests/accounts.scm. * gnu/local.mk (GNU_SYSTEM_MODULES): Add build/accounts.scm.
* environment: Rename '--inherit' to '--preserve'.Ludovic Courtès2019-03-04
| | | | | | | | | Suggested by Eric Bavier and Ricardo Wurmus. * guix/scripts/environment.scm (show-help, %options): Emit a deprecation warning for "--inherit" and add -E/--preserve. * tests/guix-environment.sh: Adjust accordingly. * doc/guix.texi (Invoking guix environment): Update accordingly.
* environment: Remove deprecated -E/--exec option.Ludovic Courtès2019-03-04
| | | | | | * guix/scripts/environment.scm (%options): Remove "--exec", which was deprecated in commit 1de2fe95e017c42aacbaa34f5dab8d48249cc064 in 2015. * tests/guix-environment.sh: Remove use of '-E'.
* packages: Remove duplicates from package cache.Ludovic Courtès2019-02-16
| | | | | | | | | | | | | Previously the same package could appear several times if several variables were bound to it, as is notably the case for "python" currently. This, in turn, would lead to obnoxious "ambiguous package specification" messages. * gnu/packages.scm (generate-package-cache)[expand-cache]: Change RESULT to RESULT+SEEN and adjust accordingly. Call 'first' on the result of 'fold-module-public-variables*'. * tests/packages.scm ("fold-available-packages with/without cache"): Check for lack of duplicates in FROM-CACHE.
* environment: Add '--inherit'.Ludovic Courtès2019-02-16
| | | | | | | | | | | | | * guix/scripts/environment.scm (purify-environment): Add 'white-list' parameter and honor it. (create-environment): Add #:white-list parameter and honor it. (launch-environment): Likewise. (launch-environment/fork): Likewise. (show-help, %options): Add '--inherit'. (guix-environment): Define 'white-list' and pass it to 'launch-environment/fork'. * tests/guix-environment.sh: Test '--inherit'. * doc/guix.texi (Invoking guix environment): Document it.
* inferior: Add 'inferior-available-packages'.Ludovic Courtès2019-02-12
| | | | | * guix/inferior.scm (inferior-available-packages): New procedure. * tests/inferior.scm ("inferior-available-packages"): New test.
* profiles: Raise an error for unmatched patterns.Ludovic Courtès2019-02-07
| | | | | | | | | | | | | | | Previously, "guix package -r something-not-installed" would silently complete. Now an error is raised. * guix/profiles.scm (&unmatched-pattern-error): New condition type. (manifest-matching-entries): Rewrite to raise an error when one of PATTERNS is not matched. * guix/ui.scm (call-with-error-handling): Handle 'unmatched-pattern-error?'. * tests/guix-package.sh: Add test. * tests/profiles.scm ("manifest-matching-entries"): Don't try to remove unmatched pattern. ("manifest-matching-entries, no match"): New test. ("manifest-transaction-effects"): Remove 'remove' field.
* daemon: Emit a 'build-succeeded' event in check mode.Ludovic Courtès2019-02-06
| | | | | | | | | | | Until now, something like "guix build sed -v1 --check" would not get a 'build-succeeded' event, which in turn meant that the spinner would not be erased upon build completion. * nix/libstore/build.cc (DerivationGoal::registerOutputs): When 'buildMode' is bmCheck and 'settings.printBuildTrace' emit a "@ build-succeeded" trace upon success. * tests/store.scm ("build-succeeded trace in check mode"): New test.