summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-06-21 23:50:47 +0200
committerLudovic Courtès <ludo@gnu.org>2018-06-21 23:54:15 +0200
commit68a58775e071d4b0e000b93ad121b6e64d161b79 (patch)
treec3975b2782da2ad4e08071bbdc579b500dee4a77 /tests
parent1f1d76a1789dafb55cc9450cc1dbafb718a62215 (diff)
system: Mapped devices needed for boot do not yield Shepherd services.
Fixes <https://bugs.gnu.org/31889>. Reported by Taylan Kammer <taylanbayirli@gmail.com>. * gnu/system.scm (non-boot-file-system-service)[mapped-devices-for-boot]: New variable. Remove dependencies of FS that are members of MAPPED-DEVICES-FOR-BOOT. (mapped-device-user): Rename to... (mapped-device-users): ... this. Use 'filter' instead of 'find'. (operating-system-user-mapped-devices) (operating-system-boot-mapped-devices): Use 'any file-system-needed-for-boot?' instead of looking at the first user. * tests/system.scm ("non-boot-file-system-service"): New test.
Diffstat (limited to 'tests')
-rw-r--r--tests/system.scm23
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/system.scm b/tests/system.scm
index 7d55da7174..9416b950e6 100644
--- a/tests/system.scm
+++ b/tests/system.scm
@@ -19,6 +19,7 @@
(define-module (test-system)
#:use-module (gnu)
+ #:use-module ((gnu services) #:select (service-value))
#:use-module (guix store)
#:use-module (srfi srfi-1)
#:use-module (srfi srfi-64))
@@ -117,4 +118,26 @@
(type "ext4"))
%base-file-systems)))))
+(test-equal "non-boot-file-system-service"
+ '()
+
+ ;; Make sure that mapped devices with at least one needed-for-boot user are
+ ;; handled exclusively from the initrd. See <https://bugs.gnu.org/31889>.
+ (append-map file-system-dependencies
+ (service-value
+ ((@@ (gnu system) non-boot-file-system-service)
+ (operating-system
+ (inherit %os-with-mapped-device)
+ (file-systems
+ (list (file-system
+ (mount-point "/foo/bar")
+ (device "qux:baz")
+ (type "none")
+ (dependencies (list %luks-device)))
+ (file-system
+ (device (file-system-label "my-root"))
+ (mount-point "/")
+ (type "ext4")
+ (dependencies (list %luks-device))))))))))
+
(test-end)