summaryrefslogtreecommitdiff
path: root/tests
AgeCommit message (Collapse)Author
2012-11-13guix-download: Gracefully handle invalid URIs.Ludovic Courtès
* 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.
2012-11-13tests: Make sure to use the bootstrap Guile.Ludovic Courtès
* tests/builders.scm ("url-fetch", "gnu-build"): Pass `url-fetch' #:guile %BOOTSTRAP-GUILE.
2012-11-13tests: Remove extraneous test.Ludovic Courtès
* 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.
2012-11-13Remove (guix http) and (guix ftp).Ludovic Courtès
* 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'.
2012-11-12Add (guix download) and (guix build download).Ludovic Courtès
* 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'.
2012-11-11Move base32 code to (guix base32).Ludovic Courtès
* 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'.
2012-11-09tests: Choose a less expensive test for packages.Ludovic Courtès
* tests/packages.scm (%bootstrap-inputs): Remove. ("GNU Hello"): Rename to... ("GNU Make, bootstrap"): ... this. Build GNU-MAKE-BOOT0 instead of HELLO.
2012-11-09derivations: build-expression->derivation: Builder only refers to sources.Ludovic Courtès
* 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.
2012-11-08derivations: Add tests relative to fixed-output derivations.Ludovic Courtès
* 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.
2012-11-08guix-download: Error out when the HTTP response code is not 200.Ludovic Courtès
* 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.
2012-11-07guix-build: Error out when `-S' used for source-less package.Ludovic Courtès
* 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.
2012-11-07guix-package: Fix handling of the PACKAGE:OUTPUT syntax.Ludovic Courtès
* guix-package.in (guix-package)[find-package]: Return the correct NAME and SUB-DRV when NAME contains #\:. * tests/guix-package.sh (profile): Add test.
2012-11-04distro: Move bootstrap packages to (distro packages bootstrap).Ludovic Courtès
* 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.
2012-11-04Add (guix snix) and the `guix-import' command.Ludovic Courtès
* 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'.
2012-11-04packages: `description' → `synopsis', `long-description' → `description'.Ludovic Courtès
* 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.
2012-11-04utils: Add `package-name->name+version'.Ludovic Courtès
* 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.
2012-11-02tests: Run without substitutes.Ludovic Courtès
* tests/builders.scm, tests/derivations.scm, tests/packages.scm: Set #:use-substitutes? #f for %STORE.
2012-11-01Add a preliminary `guix-package' command-line tool.Ludovic Courtès
* 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'.
2012-11-01store: Add `store-path-package-name'.Ludovic Courtès
* guix/store.scm (store-path-package-name): New procedure. * tests/utils.scm ("store-path-package-name"): New test.
2012-11-01build: Add unit test for the `guix-build' command.Ludovic Courtès
* 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.
2012-10-29Add (guix build union).Ludovic Courtès
* guix/build/union.scm, tests/union.scm: New files. * Makefile.am (MODULES): Add `guix/build/union.scm'. (TESTS): Add `tests/union.scm'.
2012-10-28tests: Use our own bootstrap tools.Ludovic Courtès
* 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.
2012-10-25derivations: Pass the derivation of guile-for-build to `imported-files' & co.Ludovic Courtès
* 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.
2012-10-24store: Add `query-path-hash'.Ludovic Courtès
* 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.
2012-10-24derivations: Compile the #:modules passed to `build-expression->derivation'.Ludovic Courtès
* 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.
2012-10-21packages: Add support for system-dependent inputs.Ludovic Courtès
* 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.
2012-10-16utils: Add `fold-port-matches' and `remove-store-references'.Ludovic Courtès
* 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.
2012-10-07tests: Use bootstrap and Nixpkgs inputs to be less costly.Ludovic Courtès
* 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.
2012-09-26distro: Rename (distro ...) to (distro packages ...).Ludovic Courtès
* 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.
2012-09-10Add (guix build-system trivial).Ludovic Courtès
* 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.
2012-08-30define-record-type*: Add the `inherit' syntactic constructor keyword.Ludovic Courtès
* 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.
2012-08-14build: Pass $(NIX_INSTANTIATE) to the build and test environments.Ludovic Courtès
* Makefile.am (.scm.go): Define $NIX_INSTANTIATE. (TESTS_ENVIRONMENT): Likewise, and define $NIX_HASH. * guix/utils.scm (nixpkgs-derivation): Use $NIX_INSTANTIATE when defined. * tests/utils.scm (%nix-hash): New variable. ("sha256 & bytevector->nix-base32-string"): Use it.
2012-07-07Add `package-transitive-inputs'; use it to honor propagated inputs.Ludovic Courtès
* guix/packages.scm (package-transitive-inputs): New procedure. (package-derivation): Use it to compute INPUTS. * tests/packages.scm (dummy-package): New macro. ("package-transitive-inputs"): New test.
2012-07-05Add builder-side utilities for phases, stream editing, & co.Ludovic Courtès
* guix/build/utils.scm (with-directory-excursion): New macro. (alist-cons-before, alist-cons-after, alist-replace): New procedures. (substitute): New procedure. * tests/build-utils.scm: New file. * Makefile.am (TESTS): Add `tests/build-utils.scm'.
2012-07-03define-record-type*: Add `letrec*' behavior.Ludovic Courtès
* guix/utils.scm (define-record-type*)[make-syntactic-constructor]: Bind all the ((FIELD VALUE) ...) in a `letrec*'. Adjust `field-value' accordingly. * tests/utils.scm ("define-record-type* with letrec* behavior"): New test.
2012-07-02derivation: Coalesce multiple occurrences of the same input.Ludovic Courtès
* guix/derivations.scm (write-derivation)[coalesce-duplicate-inputs]: New procedure. Use it to process INPUTS. * tests/derivations.scm ("user of multiple-output derivation"): New test.
2012-07-02Fix `derivation-hash' for outputs not sorted alphabetically.Ludovic Courtès
* guix/derivations.scm (derivation-hash): Reorder OUTPUTS. * tests/derivations.scm ("multiple-output derivation, non-alphabetic order"): New test.
2012-07-01Add `derivation-prerequisites' and `derivation-prerequisites-to-build'.Ludovic Courtès
* guix/derivations.scm (derivation-prerequisites, derivation-prerequisites-to-build): New procedures. * tests/derivations.scm ("build-expression->derivation and derivation-prerequisites", "build-expression->derivation and derivation-prerequisites-to-build"): New tests.
2012-07-01Add the `valid-path?' RPC.Ludovic Courtès
* guix/store.scm (valid-path?): New procedure. * tests/builders.scm ("http-fetch", "gnu-build"): Use it. * tests/derivations.scm ("add-to-store, flat", "add-to-store, recursive", "derivation with no inputs", "build derivation with 1 source", "build derivation with coreutils", "build-expression->derivation with expression returning #f"): Likewise.
2012-06-30Add (distro) with a package searching facility.Ludovic Courtès
* Makefile.am (MODULES): Add `distro.scm'. * distro.scm: New file. * po/POTFILES.in: Add it. * tests/packages.scm ("find-packages-by-name", "find-packages-by-name with version"): New tests.
2012-06-28Track the source location of packages.Ludovic Courtès
* guix/packages.scm (<location>): New record type. (location, source-properties->location): New procedures. (<package>)[location]: New field. * tests/packages.scm ("GNU Hello"): Test `package-location'.
2012-06-28Add a declarative packaging layer.Ludovic Courtès
* Makefile.am (MODULES): Add `guix/packages.scm' and `distro/base.scm'. (TESTS): Add `tests/packages.scm'. (EXTRA_DIST): New variable. * guix/packages.scm, distro/base.scm, tests/packages.scm: New files. * guix/http.scm (http-fetch): Make `name' an optional argument, to match the expectations of `package-source-derivation'.
2012-06-27Abstract build systems.Ludovic Courtès
* Makefile.am (MODULES): Add `guix/build-system.scm' and `guix/build-system/gnu.scm'. Remove `guix/gnu-build-system.scm'. * guix/build-system.scm: New file. * guix/gnu-build-system.scm: Rename to... * guix/build-system/gnu.scm: ... this. (gnu-build-system): New variable. * tests/builders.scm: Adjust `use-module' clauses. ("gnu-build-system"): New test.
2012-06-27Add `define-record-type*'.Ludovic Courtès
* guix/utils.scm (define-record-type*): New macro. * tests/utils.scm ("define-record-type*"): New test.
2012-06-16build-expression->derivation: Have the build fail when EXP returns #f.Ludovic Courtès
* guix/derivations.scm (build-expression->derivation)[builder]: Pass the result of EXP to `exit'. * tests/derivations.scm ("build-expression->derivation with expression returning #f"): New test.
2012-06-13Change `build-expression->derivation' to support sub-derivation inputs.Ludovic Courtès
* guix/derivations.scm (build-expression->derivation): Change to expect INPUTS to have the form (NAME DRV-PATH SUB-DRV) or (NAME DRV-PATH), instead of (NAME . DRV-PATH). Update callers accordingly. * guix/gnu-build-system.scm, tests/builders.scm, tests/derivations.scm: Update accordingly.
2012-06-13Add supporting tools for the GNU Build System.Ludovic Courtès
* guix/derivations.scm (build-expression->derivation): Add all of INPUTS as inputs to the final derivation. * guix/build/gnu-build-system.scm, guix/build/utils.scm, guix/gnu-build-system.scm: New files. * tests/builders.scm ("gnu-build"): New test.
2012-06-12Fix `imported-files' for files with a common prefix.Ludovic Courtès
* guix/derivations.scm (imported-files)[builder]: For TAIL, check whether it exists before (mkdir TAIL). * tests/derivations.scm ("imported-files"): Add file with a common prefix.
2012-06-12Add `add-to-store' test for flat files.Ludovic Courtès
* tests/derivations.scm ("add-to-store, flat"): New test.
2012-06-12Augment `build-expression->derivation' with #:modules; add `http-fetch'.Ludovic Courtès
* guix/derivations.scm (imported-modules): New procedure. (build-expression->derivation): New keyword argument `modules'. Use `imported-modules' when MODULES is non-empty, and pass it with `-L' to GUILE. * guix/build/http.scm, guix/http.scm, tests/builders.scm: New files.