diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-06-21 23:50:47 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-06-21 23:54:15 +0200 |
commit | 68a58775e071d4b0e000b93ad121b6e64d161b79 (patch) | |
tree | c3975b2782da2ad4e08071bbdc579b500dee4a77 /tests/system.scm | |
parent | 1f1d76a1789dafb55cc9450cc1dbafb718a62215 (diff) | |
download | guix-68a58775e071d4b0e000b93ad121b6e64d161b79.tar guix-68a58775e071d4b0e000b93ad121b6e64d161b79.tar.gz |
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/system.scm')
-rw-r--r-- | tests/system.scm | 23 |
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) |