guix-devel/tests
Ludovic Courtès 94d92c7796
daemon: Add "builtin:download" derivation builder.
This ensures that 1) the derivation doesn't change when Guix changes;
2) the derivation closure doesn't contain Guix and its dependencies; 3)
we don't have to rely on ugly chroot hacks.

Adapted from Nix commit 0a2bee307b20411f5b0dda0c662b1f9bb9e0e131.

* nix/libstore/build.cc (DerivationGoal::runChild): Add special case for
'isBuiltin(drv)'.  Disable chroot when 'isBuiltin(drv)'.
* nix/libstore/builtins.cc, nix/libstore/builtins.hh,
nix/scripts/download.in, guix/scripts/perform-download.scm: New files.
* guix/ui.scm (show-guix-help)[internal?]: Add 'perform-download'.
* nix/local.mk (libstore_a_SOURCES): Add builtins.cc.
(libstore_headers): Add builtins.hh.
(nodist_pkglibexec_SCRIPTS): Add 'scripts/download'.
* config-daemon.ac: Emit 'scripts/download'.
* Makefile.am (MODULES): Add 'guix/scripts/perform-download.scm'.
* tests/derivations.scm ("unknown built-in builder")
("'download' built-in builder")
("'download' built-in builder, invalid hash")
("'download' built-in builder, not found")
("'download' built-in builder, not fixed-output"): New tests.

Co-authored-by: Eelco Dolstra <eelco.dolstra@logicblox.com>
2016-11-16 18:19:47 +01:00
..
base32.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
base64.scm substitute-binary: Support the Signature field of a narinfo file. 2014-03-30 12:02:10 +02:00
bournish.scm bournish: Allow compilation of multiple expressions. 2016-06-06 18:14:52 +02:00
build-utils.scm utils: 'wrap-program' produces only one wrapper file. 2016-09-07 23:59:02 +02:00
builders.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
challenge.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
combinators.scm utils: Move combinators to (guix combinators). 2016-05-04 23:35:55 +02:00
containers.scm tests: Don't check file-systems in container tests. 2016-11-13 13:04:00 +01:00
cpan.scm tests: Adjust 'url-fetch' mocks to TLS changes. 2016-11-10 11:58:43 +01:00
cpio.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
cran.scm tests: Adjust 'url-fetch' mocks to TLS changes. 2016-11-10 11:58:43 +01:00
cve-sample.xml Add (guix cve). 2015-11-26 22:35:01 +01:00
cve.scm cve: Use a more compact format for the list of package/versions. 2016-05-28 01:07:12 +02:00
derivations.scm daemon: Add "builtin:download" derivation builder. 2016-11-16 18:19:47 +01:00
elpa.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
file-systems.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
gem.scm import: Importers return prefixed licenses. 2016-08-28 14:04:50 +02:00
gexp.scm gexp: Add 'file-append'. 2016-09-09 23:54:43 +02:00
gnu-maintenance.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
grafts.scm grafts: Apply the right grafts in the presence of multiple outputs. 2016-10-17 23:59:03 +02:00
graph.scm graph: Add '%referrer-node-type'. 2016-10-15 23:46:39 +02:00
gremlin.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
guix-archive.sh guix archive: Add '--extract'. 2015-10-19 10:10:47 +02:00
guix-authenticate.sh authenticate: Allow signatures with binary data to be written to stdout. 2014-04-22 11:30:58 +02:00
guix-build.sh tests: Adjust 'guix build -S' test for source-less packages. 2016-10-03 15:24:21 +02:00
guix-daemon.sh tests: Disable grafts by default. 2016-03-02 14:47:07 +01:00
guix-download.sh guix download: Add '-o' option. 2016-11-16 18:00:41 +01:00
guix-environment-container.sh tests: Fix 'guix environment --container' test in the presence of tmpfs. 2016-08-29 00:09:44 +02:00
guix-environment.sh environment: Set 'GUIX_ENVIRONMENT' to the profile. 2016-07-26 17:59:25 +02:00
guix-gc.sh guix gc: Error out when extra arguments are passed. 2015-11-11 23:29:20 +01:00
guix-graph.sh graph: Allow store file names for 'derivation' and 'references' graphs. 2016-05-21 01:35:14 +02:00
guix-hash.sh guix hash: Interpret '-' as standard input. 2016-10-28 22:30:17 +02:00
guix-lint.sh tests: Do not run 'cve' checker in 'tests/guix-lint.sh'. 2016-05-24 14:45:18 +02:00
guix-package-net.sh guix package: '--search-paths' can report combined search paths. 2015-11-11 00:37:50 +01:00
guix-package.sh guix package: Inherit the transformed version number. 2016-05-27 22:05:34 +02:00
guix-register.sh tests: Improve synchronization in 'tests/guix-register.sh'. 2016-07-29 11:39:30 +02:00
guix-system.sh tests: Adjust to Shepherd error message change. 2016-07-20 14:49:01 +02:00
hackage.scm tests: hackage: Fix mock urls. 2016-09-01 13:40:49 +03:00
hash.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
import-utils.scm import: utils: Refactor license->symbol. 2016-09-28 13:17:15 +02:00
lint.scm tests: Move HTTP server to (guix tests http). 2016-11-16 18:00:41 +01:00
modules.scm Add (guix modules). 2016-09-05 00:06:47 +02:00
monads.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
nar.scm serialization: Add #:select? parameter to 'write-file'. 2016-06-12 23:55:22 +02:00
packages.scm tests: Fix 'fold-packages' for hidden packages. 2016-11-08 23:32:41 +01:00
pk-crypto.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
pki.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
profiles.scm profiles: Add manifest-transaction helper procedures. 2016-09-06 23:22:10 +02:00
publish.scm tests: Make sure threads use separate output ports. 2016-08-02 18:07:19 +02:00
pypi.scm tests: Adjust pypi test to recent importer change. 2016-10-27 01:00:41 +02:00
records.scm records: Improve reporting of invalid field specifiers. 2016-07-14 19:07:07 +02:00
scripts-build.scm tests: Fix typo in 'with-graft' transformation test. 2016-10-19 15:54:10 +02:00
scripts.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
services.scm services: shepherd: Add 'shepherd-service-upgrade', from 'guix system'. 2016-08-31 15:44:20 +02:00
sets.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
signing-key.pub daemon: Implement signed archive import/export. 2013-12-20 17:17:42 +01:00
signing-key.sec daemon: Implement signed archive import/export. 2013-12-20 17:17:42 +01:00
size.scm size: 'store-profile' takes a list of store items. 2016-05-24 23:05:28 +02:00
snix.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
store.scm daemon: Substitute queries return immediately when substitutes are disabled. 2016-05-31 18:22:14 +02:00
substitute.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
syscalls.scm tests: Skip 'pivot-root' test on Linux > 4.7.5. 2016-10-27 01:00:41 +02:00
system.scm services: shepherd: Add 'shepherd-service-upgrade', from 'guix system'. 2016-08-31 15:44:20 +02:00
test.drv Add unit test for derivation parsing and output. 2012-04-19 23:09:55 +02:00
ui.scm ui: 'string->duration' supports hours and seconds. 2016-06-09 23:34:56 +02:00
union.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
upstream.scm build: Add a Guile custom test driver using SRFI-64. 2016-04-03 14:19:09 +02:00
utils.scm utils: Support defaults in substitute-keyword-arguments. 2016-10-07 07:42:05 -05:00
zlib.scm Add (guix zlib). 2016-07-19 00:07:12 +02:00