tests: Adjust services tests to new 'shepherd-service-upgrade'.

This is a followup to 4245ddcbc9.

* tests/services.scm ("shepherd-service-upgrade: one unchanged, one upgraded, one new")
("shepherd-service-upgrade: service depended on is not unloaded")
("shepherd-service-upgrade: obsolete services that depend on each
other"): Adjust to changes in 'shepherd-service-upgrade'.
This commit is contained in:
Ludovic Courtès 2018-09-27 23:58:05 +02:00
parent d4e9317b9d
commit 7fed9353ec
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5

View file

@ -207,13 +207,14 @@ (define live-service
list)) list))
(test-equal "shepherd-service-upgrade: one unchanged, one upgraded, one new" (test-equal "shepherd-service-upgrade: one unchanged, one upgraded, one new"
'(((bar)) ;unload '(() ;unload
((bar) (baz))) ;load ((foo))) ;restart
(call-with-values (call-with-values
(lambda () (lambda ()
;; Here 'foo' is not upgraded because it is still running, whereas ;; Here 'foo' is replaced and must be explicitly restarted later
;; 'bar' is upgraded because it is not currently running. 'baz' is ;; because it is still running, whereas 'bar' is upgraded right away
;; loaded because it's a new service. ;; because it is not currently running. 'baz' is loaded because it's
;; a new service.
(shepherd-service-upgrade (shepherd-service-upgrade
(list (live-service '(foo) '() #t) (list (live-service '(foo) '() #t)
(live-service '(bar) '() #f) (live-service '(bar) '() #f)
@ -224,30 +225,31 @@ (define live-service
(start #t)) (start #t))
(shepherd-service (provision '(baz)) (shepherd-service (provision '(baz))
(start #t))))) (start #t)))))
(lambda (unload load) (lambda (unload restart)
(list (map live-service-provision unload) (list (map live-service-provision unload)
(map shepherd-service-provision load))))) (map shepherd-service-provision restart)))))
(test-equal "shepherd-service-upgrade: service depended on is not unloaded" (test-equal "shepherd-service-upgrade: service depended on is not unloaded"
'(((baz)) ;unload '(((baz)) ;unload
()) ;load ((foo))) ;restart
(call-with-values (call-with-values
(lambda () (lambda ()
;; Service 'bar' is not among the target services; yet, it must not be ;; Service 'bar' is not among the target services; yet, it must not be
;; unloaded because 'foo' depends on it. ;; unloaded because 'foo' depends on it. 'foo' gets replaced but it
;; must be restarted manually.
(shepherd-service-upgrade (shepherd-service-upgrade
(list (live-service '(foo) '(bar) #t) (list (live-service '(foo) '(bar) #t)
(live-service '(bar) '() #t) ;still used! (live-service '(bar) '() #t) ;still used!
(live-service '(baz) '() #t)) (live-service '(baz) '() #t))
(list (shepherd-service (provision '(foo)) (list (shepherd-service (provision '(foo))
(start #t))))) (start #t)))))
(lambda (unload load) (lambda (unload restart)
(list (map live-service-provision unload) (list (map live-service-provision unload)
(map shepherd-service-provision load))))) (map shepherd-service-provision restart)))))
(test-equal "shepherd-service-upgrade: obsolete services that depend on each other" (test-equal "shepherd-service-upgrade: obsolete services that depend on each other"
'(((foo) (bar) (baz)) ;unload '(((foo) (bar) (baz)) ;unload
((qux))) ;load ()) ;restart
(call-with-values (call-with-values
(lambda () (lambda ()
;; 'foo', 'bar', and 'baz' depend on each other, but all of them are ;; 'foo', 'bar', and 'baz' depend on each other, but all of them are
@ -258,9 +260,9 @@ (define live-service
(live-service '(baz) '() #t)) ;obsolete (live-service '(baz) '() #t)) ;obsolete
(list (shepherd-service (provision '(qux)) (list (shepherd-service (provision '(qux))
(start #t))))) (start #t)))))
(lambda (unload load) (lambda (unload restart)
(list (map live-service-provision unload) (list (map live-service-provision unload)
(map shepherd-service-provision load))))) (map shepherd-service-provision restart)))))
(test-eq "lookup-service-types" (test-eq "lookup-service-types"
system-service-type system-service-type