summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorMiguel Ángel Arruga Vivas <rosen644835@gmail.com>2020-10-24 18:15:53 +0200
committerMiguel Ángel Arruga Vivas <rosen644835@gmail.com>2020-11-01 02:28:38 +0100
commit582cf9257cd1f9c969fbba5eb1c336ac8b975cde (patch)
tree579aa251535713503cb1f5611a67ea1523338b5e /tests
parent96d0f0b13819a68480e204716c1af6605cfdcb4c (diff)
system: Add store-directory-prefix to boot-parameters.
Fixes <http://issues.guix.gnu.org/44196> * gnu/machine/ssh.scm (roll-back-managed-host): Use boot-parameters-store-directory-prefix. * gnu/system.scm (define-module): Export boot-parameters-store-directory-prefix. (<boot-parameters>)[store-directory-prefix]: New field. It is used to generate the correct paths when /gnu/store is installed on a btrfs subvolume whose name doesn't match the final runtime path, as the bootloader doesn't have knowledge about the final mounting points. [boot-parameters-store-directory-prefix]: New accessor. (read-boot-parameters): Read directory-prefix from store field. (operating-system-boot-parameters-file): Add directory-prefix to store field. * guix/scripts/system.scm (reinstall-bootloader): Use boot-parameters-store-directory-prefix. * test/boot-parameters.scm (%default-btrfs-subvolume, %default-store-directory-prefix): New variables. (%grub-boot-parameters): Use %default-store-directory-prefix. (%default-operating-system): Use %default-btrfs-subvolume. (test-boot-parameters): Add directory-prefix. (test optional fields): Add test for directory-prefix. (test os store-directory-prefix): New test.
Diffstat (limited to 'tests')
-rw-r--r--tests/boot-parameters.scm23
1 files changed, 20 insertions, 3 deletions
diff --git a/tests/boot-parameters.scm b/tests/boot-parameters.scm
index d7e579bc898..a00b2275511 100644
--- a/tests/boot-parameters.scm
+++ b/tests/boot-parameters.scm
@@ -46,6 +46,9 @@
46(define %default-initrd (string-append %default-initrd-path "/initrd.cpio.gz")) 46(define %default-initrd (string-append %default-initrd-path "/initrd.cpio.gz"))
47(define %default-root-device (uuid "abcdef12-3456-7890-abcd-ef1234567890")) 47(define %default-root-device (uuid "abcdef12-3456-7890-abcd-ef1234567890"))
48(define %default-store-device (uuid "01234567-89ab-cdef-0123-456789abcdef")) 48(define %default-store-device (uuid "01234567-89ab-cdef-0123-456789abcdef"))
49(define %default-btrfs-subvolume "testfs")
50(define %default-store-directory-prefix
51 (string-append "/" %default-btrfs-subvolume))
49(define %default-store-mount-point (%store-prefix)) 52(define %default-store-mount-point (%store-prefix))
50(define %default-multiboot-modules '()) 53(define %default-multiboot-modules '())
51(define %default-locale "es_ES.utf8") 54(define %default-locale "es_ES.utf8")
@@ -63,6 +66,7 @@
63 (multiboot-modules %default-multiboot-modules) 66 (multiboot-modules %default-multiboot-modules)
64 (locale %default-locale) 67 (locale %default-locale)
65 (store-device %default-store-device) 68 (store-device %default-store-device)
69 (store-directory-prefix %default-store-directory-prefix)
66 (store-mount-point %default-store-mount-point))) 70 (store-mount-point %default-store-mount-point)))
67 71
68(define %default-operating-system 72(define %default-operating-system
@@ -81,7 +85,10 @@
81 (file-system 85 (file-system
82 (device %default-store-device) 86 (device %default-store-device)
83 (mount-point %default-store-mount-point) 87 (mount-point %default-store-mount-point)
84 (type "btrfs")) 88 (type "btrfs")
89 (options
90 (string-append "subvol="
91 %default-btrfs-subvolume)))
85 %base-file-systems)))) 92 %base-file-systems))))
86 93
87(define (quote-uuid uuid) 94(define (quote-uuid uuid)
@@ -103,6 +110,7 @@
103 (with-store #t) 110 (with-store #t)
104 (store-device 111 (store-device
105 (quote-uuid %default-store-device)) 112 (quote-uuid %default-store-device))
113 (store-directory-prefix %default-store-directory-prefix)
106 (store-mount-point %default-store-mount-point)) 114 (store-mount-point %default-store-mount-point))
107 (define (generate-boot-parameters) 115 (define (generate-boot-parameters)
108 (define (sexp-or-nothing fmt val) 116 (define (sexp-or-nothing fmt val)
@@ -117,10 +125,12 @@
117 (sexp-or-nothing " (kernel-arguments ~S)" kernel-arguments) 125 (sexp-or-nothing " (kernel-arguments ~S)" kernel-arguments)
118 (sexp-or-nothing " (initrd ~S)" initrd) 126 (sexp-or-nothing " (initrd ~S)" initrd)
119 (if with-store 127 (if with-store
120 (format #false " (store~a~a)" 128 (format #false " (store~a~a~a)"
121 (sexp-or-nothing " (device ~S)" store-device) 129 (sexp-or-nothing " (device ~S)" store-device)
122 (sexp-or-nothing " (mount-point ~S)" 130 (sexp-or-nothing " (mount-point ~S)"
123 store-mount-point)) 131 store-mount-point)
132 (sexp-or-nothing " (directory-prefix ~S)"
133 store-directory-prefix))
124 "") 134 "")
125 (sexp-or-nothing " (locale ~S)" locale) 135 (sexp-or-nothing " (locale ~S)" locale)
126 (sexp-or-nothing " (bootloader-name ~a)" bootloader-name) 136 (sexp-or-nothing " (bootloader-name ~a)" bootloader-name)
@@ -149,6 +159,7 @@
149 (test-read-boot-parameters #:store-device #false) 159 (test-read-boot-parameters #:store-device #false)
150 (test-read-boot-parameters #:store-device 'false) 160 (test-read-boot-parameters #:store-device 'false)
151 (test-read-boot-parameters #:store-mount-point #false) 161 (test-read-boot-parameters #:store-mount-point #false)
162 (test-read-boot-parameters #:store-directory-prefix #false)
152 (test-read-boot-parameters #:multiboot-modules #false) 163 (test-read-boot-parameters #:multiboot-modules #false)
153 (test-read-boot-parameters #:locale #false) 164 (test-read-boot-parameters #:locale #false)
154 (test-read-boot-parameters #:bootloader-name #false 165 (test-read-boot-parameters #:bootloader-name #false
@@ -253,4 +264,10 @@
253 (operating-system-boot-parameters %default-operating-system 264 (operating-system-boot-parameters %default-operating-system
254 %default-root-device))) 265 %default-root-device)))
255 266
267(test-equal "from os, store-directory-prefix"
268 %default-store-directory-prefix
269 (boot-parameters-store-directory-prefix
270 (operating-system-boot-parameters %default-operating-system
271 %default-root-device)))
272
256(test-end "boot-parameters") 273(test-end "boot-parameters")