summaryrefslogtreecommitdiff
path: root/tests
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'nix-integration'Ludovic Courtès2012-12-138-32/+87
|\ | | | | | | | | Conflicts: tests/guix-package.sh
| * tests: Skip network-dependent tests when the network is unreachable.Ludovic Courtès2012-12-135-24/+41
| | | | | | | | | | | | | | | | | | | | | | | | * tests/builders.scm (network-reachable?): New variable. ("url-fetch", "gnu-build"): Skip unless NETWORK-REACHABLE?. * tests/derivations.scm (%coreutils): Check for network access. ("build-expression->derivation with one input"): Skip when %COREUTILS is #f. * tests/guix-package.sh: Skip installation of GNU Make when the network is unreachable. * tests/packages.scm ("GNU Make, bootstrap"): Likewise. * tests/union.scm ("union-build"): Likewise.
| * tests: base32: Work around `system*' bug.Ludovic Courtès2012-12-131-5/+13
| | | | | | | | | | | | * tests/base32.scm (%nix-hash): When `getenv' returns the empty string, ignore it. (%have-nix-hash?): New variable. Update `test-skip' clause to use it.
| * Merge branch 'master' into nix-integrationLudovic Courtès2012-12-091-0/+87
| |\ | | | | | | | | | | | | Conflicts: guix/store.scm
| * | build: Update skip count in `tests/derivations.scm'.Ludovic Courtès2012-12-061-1/+1
| | | | | | | | | | | | * tests/derivations.scm: When %STORE if #f, skip 11 tests.
| * | build: Run all the tests against the just-built daemon.Ludovic Courtès2012-12-061-19/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * test-env.in: New file. * configure.ac: Add it to `AC_CONFIG_FILES' and `commands-exec'. * config-daemon.ac: Set and substitute `GUIX_TEST_ROOT'. * Makefile.am (SCM_LOG_COMPILER, SH_LOG_COMPILER): Use it in lieu of `pre-inst-env'. * daemon.am (test_root): Remove (AM_TESTS_ENVIRONMENT): Remove `TEST_ROOT'. (clean-local): Use $(GUIX_TEST_ROOT); make files writable before removing them.guix_test_root * tests/guix-daemon.sh: Remove `NIX_' variable settings; don't launch `guix-daemon'.
| * | tests: Remove hard-coded /nix/store.Ludovic Courtès2012-12-051-2/+3
| | | | | | | | | | | | | | | * tests/utils.scm ("store-path-package-name"): Use (%store-prefix) instead of a hard-coded "/nix/store".
| * | daemon: Add `list-runtime-roots' script.Ludovic Courtès2012-12-051-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * nix/scripts/list-runtime-roots.in: New file. * config-daemon.ac: Add `AC_CONFIG_FILES' invocation for it. * daemon.am (nodist_pkglibexec_SCRIPTS): New variable. (AM_TESTS_ENVIRONMENT): Define `top_builddir'. * tests/guix-daemon.sh: Export `NIX_ROOT_FINDER'. * nix/sync-with-upstream: Substitute the path to the root finder in libstore/gc.cc.
| * | daemon: Add test.Ludovic Courtès2012-12-041-0/+46
| | | | | | | | | | | | | | | | | | * daemon.am (test_root, AM_TESTS_ENVIRONMENT): New variables. (clean-local): New target. * tests/guix-daemon.sh: New file.
* | | tests: Remove `t-profile' files on exit.Ludovic Courtès2012-12-121-1/+2
| | | | | | | | | | | | | | | * tests/guix-package.sh: Use a trap on EXIT to remove profile-related files. Reported by Andreas Enge <andreas@enge.fr>.
* | | guix-package: Gracefully handle multiple installs of the same path.Ludovic Courtès2012-12-121-1/+7
| |/ |/| | | | | | | | | | | | | | | * guix-package.in (guix-package)[process-actions]: Compute PACKAGES such that packages listed in INSTALL* are first removed from the remainder of the list. When PROF is equal to the previous profile's store path, do nothing. Reported by Andreas Enge <andreas@enge.fr>. * tests/guix-package.sh: Test the behavior of installing the same store path twice. When removing a package, omit its version number.
* | store: Add GC-related operations.Ludovic Courtès2012-12-091-0/+87
|/ | | | | | | | | | | | | | * guix/store.scm (gc-action): New enumerate type. (read-long-long, read-string-list, write-store-path, write-store-path-list, read-store-path-list): New procedures. (write-arg): Add support for `store-path' and `store-path-list'. (read-arg): Add support for `store-path-list'. (define-operation): Add support for multiple-value returns. (run-gc, live-paths, dead-paths, collect-garbage, delete-paths): New procedures. (%long-long-max): New macro. * tests/store.scm: New file. * Makefile.am (TESTS): Add it.
* derivations: Fix erroneous call to `add-to-store' for local files as input.Ludovic Courtès2012-12-042-0/+40
| | | | | | | * guix/derivations.scm (derivation)[inputs]: Fix typo in call to `add-to-store'. * tests/derivations.scm ("derivation with local file as input"): New test. * tests/packages.scm ("trivial with local file as input"): New test.
* guix-package: Extract version strings when installing a direct store path.Ludovic Courtès2012-11-191-4/+7
| | | | | | * guix-package.in (guix-package)[process-actions]: Extract the version string from store paths. * tests/guix-package.sh: Adjust accordingly.
* guix-package: Add `--list-available'.Ludovic Courtès2012-11-191-0/+3
| | | | | | | | | | * guix-package.in (show-help, %options): Add `--list-available'. (guix-package)[process-query]: Add support for `--list-available'. * doc/guix.texi (Invoking guix-package): Document it. * tests/guix-package.sh: Add test. * guix/ui.scm (location->string): New procedure. * guix/utils.scm: Export <location>.
* distro: Add `fold-packages'.Ludovic Courtès2012-11-191-0/+8
| | | | | | | * distro.scm (fold-packages): New procedure. (find-packages-by-name): Use it instead of hand-written traversal; remove `package?' checks from `right-package?'. * tests/packages.scm ("fold-packages"): New test.
* guix-package: Add `--list-installed'.Ludovic Courtès2012-11-191-0/+14
| | | | | | | | | * guix-package.in (show-help, %options): Add `--list-installed'. (guix-package): Move main body to... [process-actions]: ... here. New internal procedure. [process-query]: New procedure. * tests/guix-package.sh: Add tests for `--list-installed'. * doc/guix.texi (Invoking guix-package): Document it.
* guix-download: Use code from (guix build download).Ludovic Courtès2012-11-131-1/+1
| | | | | | | | | | | * guix-download.in (http-fetch, ftp-fetch): Remove. (fetch-and-store): Replace `uri' parameter with `name', for the output file name. Redirect the output of `fetch' to the error port. (guix-download): Call `url-fetch' for all URI schemes except `file'. Handle PATH equal to #f. * guix/download.scm: Export `%mirrors'. * tests/guix-download.sh: Change erroneous URL, because URLs at example.com are all valid redirections.
* guix-download: Add support for file:// URIs.Ludovic Courtès2012-11-131-0/+3
| | | | | | | | * guix-download.in (fetch-and-store): New procedure. (guix-download): Use it to compute PATH. Call `add-to-store' when a `file' URI scheme is used. * Makefile.am (AM_TESTS_ENVIRONMENT): New variable. * tests/guix-download.sh: Add test.
* guix-download: Gracefully handle invalid URIs.Ludovic Courtès2012-11-131-0/+6
| | | | | | * guix-download.in (guix-download): Error out when `string->uri' returns #f. Use `leave' when the scheme is unknown. * tests/guix-download.sh: Add tests.
* tests: Make sure to use the bootstrap Guile.Ludovic Courtès2012-11-131-2/+4
| | | | | * tests/builders.scm ("url-fetch", "gnu-build"): Pass `url-fetch' #:guile %BOOTSTRAP-GUILE.
* tests: Remove extraneous test.Ludovic Courtès2012-11-131-24/+0
| | | | | | | * tests/derivations.scm ("build-expression->derivation for fixed-output derivation"): Remove test. It is redundant with that in builders.scm, and doesn't work out of the box with the statically-linked %BOOTSTRAP-GUILE.
* Remove (guix http) and (guix ftp).Ludovic Courtès2012-11-131-12/+1
| | | | | | | | | | | | | | | | | | | | | | * guix/ftp.scm, guix/http.scm, guix/build/ftp.scm, guix/build/http.scm: Remove. * Makefile.am (MODULES): Likewise. * tests/builders.scm, distro/packages/base.scm, distro/packages/bash.scm, distro/packages/bdw-gc.scm, distro/packages/compression.scm, distro/packages/gawk.scm, distro/packages/gnupg.scm, distro/packages/gperf.scm, distro/packages/guile.scm, distro/packages/libffi.scm, distro/packages/libsigsegv.scm, distro/packages/libtool.scm, distro/packages/libunistring.scm, distro/packages/lout.scm, distro/packages/m4.scm, distro/packages/multiprecision.scm, distro/packages/ncurses.scm, distro/packages/perl.scm, distro/packages/pkg-config.scm, distro/packages/pth.scm, distro/packages/readline.scm, distro/packages/recutils.scm: Use `url-fetch' instead of `http-fetch' and `ftp-fetch'. * distro/packages/bootstrap.scm: Likewise (bootstrap-origin): Remove references to `http-fetch' and `ftp-fetch'. * guix.scm (%public-modules): Remove `http' and `ftp'; add `download'.
* Add (guix download) and (guix build download).Ludovic Courtès2012-11-121-0/+12
| | | | | | | | | | * guix/download.scm, guix/build/download.scm: New files. * Makefile.am (MODULES): Add them. * tests/builders.scm ("url-fetch"): New test. * distro/packages/bootstrap.scm (bootstrap-origin): Support `url-fetch'. * guix/snix.scm (snix-derivation->guix-package): Use `url-fetch' instead of `http-fetch'.
* Move base32 code to (guix base32).Ludovic Courtès2012-11-114-58/+95
| | | | | | | | | | | | | | | | | | | | | | * guix/utils.scm (bytevector-quintet-ref, bytevector-quintet-ref-right, bytevector-quintet-length, bytevector-quintet-fold, bytevector-quintet-fold-right, make-bytevector->base32-string, %nix-base32-chars, %rfc4648-base32-chars, bytevector->base32-string, bytevector->nix-base32-string, bytevector-quintet-set!, bytevector-quintet-set-right!, base32-string-unfold, base32-string-unfold-right, make-base32-string->bytevector, base32-string->bytevector, nix-base32-string->bytevector): Move to... * guix/base32.scm: ... here. New file. * tests/utils.scm (%nix-hash, "bytevector->base32-string", "base32-string->bytevector", "nix-base32-string->bytevector", "sha256 & bytevector->base32-string"): Move to... * tests/base32.scm: ... here. New file * guix-download.in, guix/derivations.scm, guix/packages.scm, guix/snix.scm, tests/builders.scm, tests/derivations.scm: Adjust accordingly. * guix.scm (%public-modules): Add `base32'.
* tests: Choose a less expensive test for packages.Ludovic Courtès2012-11-091-13/+9
| | | | | | | * tests/packages.scm (%bootstrap-inputs): Remove. ("GNU Hello"): Rename to... ("GNU Make, bootstrap"): ... this. Build GNU-MAKE-BOOT0 instead of HELLO.
* derivations: build-expression->derivation: Builder only refers to sources.Ludovic Courtès2012-11-091-0/+34
| | | | | | | | | | * guix/derivations.scm (build-expression->derivation)[source-path]: New procedure. [builder]: Pass only sources as references. This fixes a bug whereby changing a fixed-output drv referred to by a builder would cause the builder's hash to change, thereby leading to a full rebuild. * tests/derivations.scm ("build-expression->derivation with a fixed-output input"): New test.
* derivations: Add tests relative to fixed-output derivations.Ludovic Courtès2012-11-081-2/+83
| | | | | | | | * tests/derivations.scm ("fixed-output derivation"): Add comment that the reference to BUILDER is optional. ("fixed-output derivation: output paths are equal", "derivation with a fixed-output input", "build-expression->derivation: same fixed-output path"): New tests.
* guix-download: Error out when the HTTP response code is not 200.Ludovic Courtès2012-11-081-0/+27
| | | | | | | | * guix-download.in (http-fetch): Leave with an error message when RESPONSE's code is not 200. * tests/guix-download.sh: New file. * Makefile.am (TESTS): Add it.
* guix-build: Error out when `-S' used for source-less package.Ludovic Courtès2012-11-071-1/+6
| | | | | | | * guix-build.in (derivations-from-package-expressions): Leave with an error message when SOURCE? is #t and P has no source. * tests/guix-build.sh: Add test.
* guix-package: Fix handling of the PACKAGE:OUTPUT syntax.Ludovic Courtès2012-11-071-0/+3
| | | | | | | * guix-package.in (guix-package)[find-package]: Return the correct NAME and SUB-DRV when NAME contains #\:. * tests/guix-package.sh (profile): Add test.
* distro: Move bootstrap packages to (distro packages bootstrap).Ludovic Courtès2012-11-044-14/+6
| | | | | | | | | | | | | | | | | | * distro/packages/base.scm (glibc-dynamic-linker, %bootstrap-guile, bootstrap-origin, package-from-tarball, %bootstrap-base-url, %bootstrap-coreutils&co, %bootstrap-binutils, %bootstrap-glibc, %bootstrap-gcc, %bootstrap-inputs, package-with-bootstrap-guile): Move to ... * distro/packages/bootstrap.scm: ... here. New file. * Makefile.am (MODULES): Add it. * tests/builders.scm: Use (distro packages bootstrap). (%bootstrap-guile): Remove. * tests/packages.scm: Likewise. * tests/union.scm: Likewise, and remove @@ to access %bootstrap-inputs. * tests/derivations.scm: Use (distro packages bootstrap) and remove @@ to access %bootstrap-coreutils&co. * HACKING (When the platform is supported by Nixpkgs): Update accordingly.
* Add (guix snix) and the `guix-import' command.Ludovic Courtès2012-11-041-0/+79
| | | | | | | | * guix/snix.scm, tests/snix.scm, guix-import.in: New files. * configure.ac: Output `guix-import' and make it executable. * Makefile.am (bin_SCRIPTS): Add `guix-import'. (MODULES): Add `guix/snix.scm'. (TESTS): Add `tests/snix.scm'.
* packages: `description' → `synopsis', `long-description' → `description'.Ludovic Courtès2012-11-041-1/+1
| | | | | | | | | * guix/packages.scm (<package>): Rename `description' to `synopsis', and `long-description' to `description'. * tests/packages.scm, distro/packages/base.scm, distro/packages/databases.scm, distro/packages/guile.scm, distro/packages/typesetting.scm: Update accordingly. * po/Makevars (XGETTEXT_OPTIONS): Update `--keyword' flags accordingly.
* utils: Add `package-name->name+version'.Ludovic Courtès2012-11-041-0/+18
| | | | | | * guix/utils.scm (package-name->name+version): New procedure. * guix-package.in (guix-package)[find-package]: Use it. * tests/utils.scm ("package-name->name+version"): New test.
* tests: Run without substitutes.Ludovic Courtès2012-11-023-0/+11
| | | | | * tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set #:use-substitutes? #f for %STORE.
* Add a preliminary `guix-package' command-line tool.Ludovic Courtès2012-11-011-0/+43
| | | | | | | * guix-package.in, tests/guix-package.sh: New files. * configure.ac: Output `guix-package'. * Makefile.am (TESTS): Add `tests/guix-package.sh'. (bin_SCRIPTS): Add `guix-package'.
* store: Add `store-path-package-name'.Ludovic Courtès2012-11-011-0/+7
| | | | | * guix/store.scm (store-path-package-name): New procedure. * tests/utils.scm ("store-path-package-name"): New test.
* build: Add unit test for the `guix-build' command.Ludovic Courtès2012-11-011-0/+47
| | | | | | | | | * tests/guix-build.sh: New file. * Makefile.am (TESTS): Add it. (LOG_COMPILER): Rename to... (SCM_LOG_COMPILER): ... this. Move flags to... (AM_SCM_LOG_FLAGS): ... this. (TEST_EXTENSIONS, SH_LOG_COMPILER, AM_SH_LOG_FLAGS): New variables.
* Add (guix build union).Ludovic Courtès2012-10-291-0/+103
| | | | | | * guix/build/union.scm, tests/union.scm: New files. * Makefile.am (MODULES): Add `guix/build/union.scm'. (TESTS): Add `tests/union.scm'.
* tests: Use our own bootstrap tools.Ludovic Courtès2012-10-283-15/+18
| | | | | | * tests/builders.scm (%bootstrap-inputs): Use %BOOT0-INPUTS from the distro. * tests/packages.scm (%bootstrap-inputs): Likewise. * tests/derivations.scm (%coreutils): Alias for %BOOTSTRAP-COREUTILS&CO.
* derivations: Pass the derivation of guile-for-build to `imported-files' & co.Ludovic Courtès2012-10-251-0/+7
| | | | | | | | | | | * guix/derivations.scm (%guile-for-build): Initialize to #f. (imported-files, imported-modules, compiled-modules): Add `guile' keyword parameter. Pass it down to `build-expression->derivation'. (build-expression->derivation)[guile-drv]: New variable. Pass it as the #:guile parameter for `imported-modules' and `compiled-modules'. * tests/derivations.scm: Set %GUILE-FOR-BUILD to the derivation of %BOOTSTRAP-GUILE.
* store: Add `query-path-hash'.Ludovic Courtès2012-10-241-2/+3
| | | | | | | | | * guix/store.scm (write-arg, read-arg): Add `base16' literal and corresponding rule. (query-path-hash): New operation. * tests/derivations.scm ("fixed-output derivation"): Check whether `query-path-hash' returns a bytevector.
* derivations: Compile the #:modules passed to `build-expression->derivation'.Ludovic Courtès2012-10-241-0/+17
| | | | | | | | | | * guix/derivations.scm (imported-files)[parent-dirs]: Move to... (parent-directories): ... here. New procedure. (compiled-modules): New procedure. (build-expression->derivation): Use it. * tests/derivations.scm ("build-expression->derivation with modules"): New test.
* packages: Add support for system-dependent inputs.Ludovic Courtès2012-10-211-0/+19
| | | | | | | | | | | * guix/packages.scm (package-derivation)[intern]: New procedure. Pass #t as the `recursive?' argument, instead of #f. [expand-input]: New procedure, with code formerly in the body. Support inputs where the input is a procedure returning a file name or an <origin>. Use `expand-input' in the body. * tests/packages.scm ("trivial with system-dependent input"): New test.
* utils: Add `fold-port-matches' and `remove-store-references'.Ludovic Courtès2012-10-161-0/+34
| | | | | | | | * guix/build/utils.scm (fold-port-matches, remove-store-references): New procedures. * tests/build-utils.scm ("fold-port-matches", "fold-port-matches, trickier", "fold-port-matches, with unmatched chars"): New tests.
* tests: Use bootstrap and Nixpkgs inputs to be less costly.Ludovic Courtès2012-10-072-9/+40
| | | | | | | | | | | | * tests/builders.scm (%bootstrap-inputs, %bootstrap-guile): New variables. ("gnu-build"): Use them, by setting `#:implicit-inputs? #f' and `#:guile'. * tests/packages.scm (%bootstrap-inputs, %bootstrap-guile): New variables. ("trivial"): Pass `#:guile %bootstrap-guile'. ("GNU Hello"): Use `package-with-explicit-inputs' to use %BOOTSTRAP-GUILE and %BOOTSTRAP-INPUTS.
* distro: Rename (distro ...) to (distro packages ...).Ludovic Courtès2012-09-261-1/+1
| | | | | | | | | | * distro/base.scm, distro/ld-wrapper.scm: Move to `distro/packages'. Adjust LD-WRAPPER-BOOT3 input file name accordingly. * Makefile.am (MODULES): Adjust accordingly. * distro.scm (%distro-module-directory): Change to "/distro/packages". * guix/build-system/gnu.scm (standard-inputs): Change module name to (distro packages base). * tests/packages.scm (test-packages): Likewise.
* Add (guix build-system trivial).Ludovic Courtès2012-09-101-1/+19
| | | | | | | | * guix/build-system/trivial.scm: New file. * Makefile.am (MODULES): Add it. * tests/packages.scm ("trivial"): New test. * guix/packages.scm (package-derivation): Allow SOURCE to be #f.
* define-record-type*: Add the `inherit' syntactic constructor keyword.Ludovic Courtès2012-08-301-0/+30
| | | | | | | | | * guix/utils.scm (define-record-type*)[make-syntactic-constructor]: New `type' parameter. Add the `inherit' keyword and corresponding support code. * tests/utils.scm ("define-record-type* & inherit", "define-record-type* & inherit & letrec* behavior"): New tests.