diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-04-15 23:53:23 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-04-16 00:48:08 +0200 |
commit | 1bb895eabf74a1e571887eb1521915e668a5c28d (patch) | |
tree | 7e8e5210a8c3f26d07ac46992f05740430436fe5 /tests/services.scm | |
parent | f816dba680124860022ba155cf5a6a337739ef11 (diff) | |
download | patches-1bb895eabf74a1e571887eb1521915e668a5c28d.tar patches-1bb895eabf74a1e571887eb1521915e668a5c28d.tar.gz |
services: Service types can now specify a default value for instances.
* gnu/services.scm (&no-default-value): New variable.
(<service-type>)[default-value]: New field.
(<service>): Rename constructor from 'service' to 'make-service'.
(service): New macro.
(%service-with-default-value): New procedure.
(&missing-value-service-error): New error condition.
* tests/services.scm ("services, default value"): New test.
* doc/guix.texi (Service Types and Services): Document 'default-value'.
(Service Reference): Explain default values.
Diffstat (limited to 'tests/services.scm')
-rw-r--r-- | tests/services.scm | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/tests/services.scm b/tests/services.scm index 7983427a7d..8484ee982a 100644 --- a/tests/services.scm +++ b/tests/services.scm @@ -31,6 +31,17 @@ (test-begin "services") +(test-equal "services, default value" + '(42 123 234 error) + (let* ((t1 (service-type (name 't1) (extensions '()))) + (t2 (service-type (name 't2) (extensions '()) + (default-value 42)))) + (list (service-value (service t2)) + (service-value (service t2 123)) + (service-value (service t1 234)) + (guard (c ((missing-value-service-error? c) 'error)) + (service t1))))) + (test-assert "service-back-edges" (let* ((t1 (service-type (name 't1) (extensions '()) (compose +) (extend *))) |