aboutsummaryrefslogtreecommitdiff
path: root/gnu-system.am
diff options
context:
space:
mode:
authorRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2016-03-30 12:24:44 +0200
committerRicardo Wurmus <ricardo.wurmus@mdc-berlin.de>2016-04-11 15:11:16 +0200
commit6dc60998534bab0ed267b08025d06883d40670ac (patch)
tree8af8fc76b29b74fffb0c1b1a9d2acd1f0b5fd4ef /gnu-system.am
parent943bd6279fd60e6fc4f5b781c1c52315b9c1011c (diff)
downloadguix-6dc60998534bab0ed267b08025d06883d40670ac.tar.gz
guix-6dc60998534bab0ed267b08025d06883d40670ac.zip
gnu: Add r-bsgenome-dmelanogaster-ucsc-dm3.
* gnu/packages/bioinformatics.scm (r-bsgenome-dmelanogaster-ucsc-dm3): New variable.
Diffstat (limited to 'gnu-system.am')
0 files changed, 0 insertions, 0 deletions
#:target-type t1))) (and (eq? (service-kind r) t1) (service-value r)))) (test-assert "fold-services, ambiguity" (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (compose concatenate) (extend cons))) (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) (guard (c ((ambiguous-target-service-error? c) (and (eq? (ambiguous-target-service-error-target-type c) t1) (eq? (ambiguous-target-service-error-service c) s)))) (fold-services (list (service t1 'first) (service t1 'second) s) #:target-type t1) #f))) (test-assert "fold-services, missing target" (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) (guard (c ((missing-target-service-error? c) (and (eq? (missing-target-service-error-target-type c) t1) (eq? (missing-target-service-error-service c) s)))) (fold-services (list s) #:target-type t1) #f))) (test-assert "instantiate-missing-services" (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (default-value 'dflt) (compose concatenate) (extend cons))) (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s1 (service t1 'hey!)) (s2 (service t2 42))) (and (lset= equal? (list (service t1) s2) (instantiate-missing-services (list s2))) (equal? (list s1 s2) (instantiate-missing-services (list s1 s2)))))) (test-assert "instantiate-missing-services, indirect" (let* ((t1 (service-type (name 't1) (extensions '()) (description "") (default-value 'dflt) (compose concatenate) (extend cons))) (t2 (service-type (name 't2) (description "") (default-value 'dflt2) (compose concatenate) (extend cons) (extensions (list (service-extension t1 list))))) (t3 (service-type (name 't3) (description "") (extensions (list (service-extension t2 list))))) (s1 (service t1)) (s2 (service t2)) (s3 (service t3 42)) (== (cut lset= equal? <...>))) (and (== (list s1 s2 s3) (instantiate-missing-services (list s3))) (== (list s1 s2 s3) (instantiate-missing-services (list s1 s3))) (== (list s1 s2 s3) (instantiate-missing-services (list s2 s3)))))) (test-assert "instantiate-missing-services, no default value" (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (description "") (extensions (list (service-extension t1 list))))) (s (service t2 42))) (guard (c ((missing-target-service-error? c) (and (eq? (missing-target-service-error-target-type c) t1) (eq? (missing-target-service-error-service c) s)))) (instantiate-missing-services (list s)) #f))) (test-assert "shepherd-service-lookup-procedure" (let* ((s1 (shepherd-service (provision '(s1 s1b)) (start #f))) (s2 (shepherd-service (provision '(s2 s2b)) (start #f))) (s3 (shepherd-service (provision '(s3 s3b s3c)) (start #f))) (lookup (shepherd-service-lookup-procedure (list s1 s2 s3)))) (and (eq? (lookup 's1) (lookup 's1b) s1) (eq? (lookup 's2) (lookup 's2b) s2) (eq? (lookup 's3) (lookup 's3b) s3)))) (test-assert "shepherd-service-back-edges" (let* ((s1 (shepherd-service (provision '(s1)) (start #f))) (s2 (shepherd-service (provision '(s2)) (requirement '(s1)) (start #f))) (s3 (shepherd-service (provision '(s3)) (requirement '(s1 s2)) (start #f))) (e (shepherd-service-back-edges (list s1 s2 s3)))) (and (lset= eq? (e s1) (list s2 s3)) (lset= eq? (e s2) (list s3)) (null? (e s3))))) (test-equal "shepherd-service-upgrade: nothing to do" '(() ()) (call-with-values (lambda () (shepherd-service-upgrade '() '())) list)) (test-equal "shepherd-service-upgrade: one unchanged, one upgraded, one new" '(() ;unload ((foo))) ;restart (call-with-values (lambda () ;; Here 'foo' is replaced and must be explicitly restarted later ;; because it is still running, whereas 'bar' is upgraded right away ;; because it is not currently running. 'baz' is loaded because it's ;; a new service. (shepherd-service-upgrade (list (live-service '(foo) '() #f #t) (live-service '(bar) '() #f #f) (live-service '(root) '() #f #t)) ;essential! (list (shepherd-service (provision '(foo)) (start #t)) (shepherd-service (provision '(bar)) (start #t)) (shepherd-service (provision '(baz)) (start #t))))) (lambda (unload restart) (list (map live-service-provision unload) (map shepherd-service-provision restart))))) (test-equal "shepherd-service-upgrade: service depended on is not unloaded" '(((baz)) ;unload ((foo))) ;restart (call-with-values (lambda () ;; Service 'bar' is not among the target services; yet, it must not be ;; unloaded because 'foo' depends on it. 'foo' gets replaced but it ;; must be restarted manually. (shepherd-service-upgrade (list (live-service '(foo) '(bar) #f #t) (live-service '(bar) '() #f #t) ;still used! (live-service '(baz) '() #f #t)) (list (shepherd-service (provision '(foo)) (start #t))))) (lambda (unload restart) (list (map live-service-provision unload) (map shepherd-service-provision restart))))) (test-equal "shepherd-service-upgrade: obsolete services that depend on each other" '(((foo) (bar) (baz)) ;unload ()) ;restart (call-with-values (lambda () ;; 'foo', 'bar', and 'baz' depend on each other, but all of them are ;; obsolete, and thus should be unloaded. (shepherd-service-upgrade (list (live-service '(foo) '(bar) #f #t) ;obsolete (live-service '(bar) '(baz) #f #t) ;obsolete (live-service '(baz) '() #f #t)) ;obsolete (list (shepherd-service (provision '(qux)) (start #t))))) (lambda (unload restart) (list (map live-service-provision unload) (map shepherd-service-provision restart))))) (test-equal "shepherd-service-upgrade: transient service" ;; Transient service must not be unloaded: ;; <https://issues.guix.gnu.org/54812>. '(((foo)) ;unload ((qux))) ;restart (call-with-values (lambda () (shepherd-service-upgrade (list (live-service '(sshd-42) '() #t 42) ;transient (live-service '(foo) '() #f #t) ;obsolete (live-service '(qux) '() #f #t)) ;running (list (shepherd-service (provision '(qux)) (start #t))))) (lambda (unload restart) (list (map live-service-provision unload) (map shepherd-service-provision restart))))) (test-eq "lookup-service-types" system-service-type (and (null? (lookup-service-types 'does-not-exist-at-all)) (match (lookup-service-types 'system) ((one) one) (x x)))) (test-equal "modify-services: do nothing" '(1 2 3) ;note: service order must be preserved (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t3 3)))) (map service-value (modify-services services)))) (test-equal "modify-services: delete service" '(1 4) ;note: service order must be preserved (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (t4 (service-type (name 't4) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t3 3) (service t4 4)))) (map service-value (modify-services services (delete t3) (delete t2))))) (test-error "modify-services: delete non-existing service" #t (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't2) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2)))) (modify-services services (delete t3)))) (test-equal "modify-services: change value" '(11 2 33) ;note: service order must be preserved (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t3 3)))) (map service-value (modify-services services (t1 value => 11) (t3 value => 33))))) (test-error "modify-services: change value for non-existing service" #t (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t3 3)))) (map service-value (modify-services services (t2 value => 22))))) (test-error "modify-services: delete then modify" #t (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t3 3)))) (map service-value (modify-services services (delete t2) (t2 value => 22))))) (test-equal "modify-services: modify then delete" '(2 3) (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t3 3)))) (map service-value (modify-services services (t1 value => 11) (delete t1))))) (test-equal "modify-services: delete multiple services of the same type" '(1 3) (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t2 2) (service t3 3)))) (map service-value (modify-services services (delete t2))))) (test-equal "modify-services: modify multiple services of the same type" '(1 12 13 4) (let* ((t1 (service-type (name 't1) (extensions '()) (description ""))) (t2 (service-type (name 't2) (extensions '()) (description ""))) (t3 (service-type (name 't3) (extensions '()) (description ""))) (services (list (service t1 1) (service t2 2) (service t2 3) (service t3 4)))) (map service-value (modify-services services (t2 value => (+ value 10)))))) (test-end)