diff options
| author | Ludovic Courtès <ludo@gnu.org> | 2016-01-21 22:45:54 +0100 |
|---|---|---|
| committer | Ludovic Courtès <ludo@gnu.org> | 2016-01-22 00:02:52 +0100 |
| commit | 6b779207ee627c93fc0dad18ef67c149024fa535 (patch) | |
| tree | 9a4fa6759add87f0bcd943e72bddae960e749a82 /tests/system.scm | |
| parent | 3738d8700ff84e16bfd8609efbd4db6933b414f1 (diff) | |
system: grub: Search root device by label or UUID if possible.
Fixes <http://bugs.gnu.org/22281>.
Reported by Christopher Allan Webber <cwebber@dustycloud.org>.
* gnu/system/grub.scm (eye-candy): Add 'root-fs' parameter. Replace
'search --file' command in the output with whatever 'grub-root-search'
returns.
(grub-root-search): New procedure.
(grub-configuration-file): Add 'store-fs' parameter. Use
'grub-root-search' instead of hard-coded 'search --file' commands.
* gnu/system.scm (store-file-system,
operating-system-store-file-system): New procedures.
(operating-system-grub.cfg): Use it, and adjust call to
'grub-configuration-file'.
* tests/system.scm: New file.
* Makefile.am (SCM_TESTS): Add it.
Diffstat (limited to 'tests/system.scm')
| -rw-r--r-- | tests/system.scm | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/system.scm b/tests/system.scm new file mode 100644 index 00000000000..7e016a610b6 --- /dev/null +++ b/tests/system.scm | |||
| @@ -0,0 +1,77 @@ | |||
| 1 | ;;; GNU Guix --- Functional package management for GNU | ||
| 2 | ;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org> | ||
| 3 | ;;; | ||
| 4 | ;;; This file is part of GNU Guix. | ||
| 5 | ;;; | ||
| 6 | ;;; GNU Guix is free software; you can redistribute it and/or modify it | ||
| 7 | ;;; under the terms of the GNU General Public License as published by | ||
| 8 | ;;; the Free Software Foundation; either version 3 of the License, or (at | ||
| 9 | ;;; your option) any later version. | ||
| 10 | ;;; | ||
| 11 | ;;; GNU Guix is distributed in the hope that it will be useful, but | ||
| 12 | ;;; WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 13 | ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 14 | ;;; GNU General Public License for more details. | ||
| 15 | ;;; | ||
| 16 | ;;; You should have received a copy of the GNU General Public License | ||
| 17 | ;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. | ||
| 18 | |||
| 19 | (define-module (test-system) | ||
| 20 | #:use-module (gnu) | ||
| 21 | #:use-module (guix store) | ||
| 22 | #:use-module (srfi srfi-1) | ||
| 23 | #:use-module (srfi srfi-64)) | ||
| 24 | |||
| 25 | ;; Test the (gnu system) module. | ||
| 26 | |||
| 27 | (define %root-fs | ||
| 28 | (file-system | ||
| 29 | (device "my-root") | ||
| 30 | (title 'label) | ||
| 31 | (mount-point "/") | ||
| 32 | (type "ext4"))) | ||
| 33 | |||
| 34 | (define %os | ||
| 35 | (operating-system | ||
| 36 | (host-name "komputilo") | ||
| 37 | (timezone "Europe/Berlin") | ||
| 38 | (locale "en_US.utf8") | ||
| 39 | (bootloader (grub-configuration (device "/dev/sdX"))) | ||
| 40 | (file-systems (cons %root-fs %base-file-systems)) | ||
| 41 | |||
| 42 | (users %base-user-accounts))) | ||
| 43 | |||
| 44 | (test-begin "system") | ||
| 45 | |||
| 46 | (test-assert "operating-system-store-file-system" | ||
| 47 | ;; %BASE-FILE-SYSTEMS defines a bind-mount for /gnu/store, but this | ||
| 48 | ;; shouldn't be a problem. | ||
| 49 | (eq? %root-fs | ||
| 50 | (operating-system-store-file-system %os))) | ||
| 51 | |||
| 52 | (test-assert "operating-system-store-file-system, prefix" | ||
| 53 | (let* ((gnu (file-system | ||
| 54 | (device "foobar") | ||
| 55 | (mount-point (dirname (%store-prefix))) | ||
| 56 | (type "ext5"))) | ||
| 57 | (os (operating-system | ||
| 58 | (inherit %os) | ||
| 59 | (file-systems (cons* gnu %root-fs | ||
| 60 | %base-file-systems))))) | ||
| 61 | (eq? gnu (operating-system-store-file-system os)))) | ||
| 62 | |||
| 63 | (test-assert "operating-system-store-file-system, store" | ||
| 64 | (let* ((gnu (file-system | ||
| 65 | (device "foobar") | ||
| 66 | (mount-point (%store-prefix)) | ||
| 67 | (type "ext5"))) | ||
| 68 | (os (operating-system | ||
| 69 | (inherit %os) | ||
| 70 | (file-systems (cons* gnu %root-fs | ||
| 71 | %base-file-systems))))) | ||
| 72 | (eq? gnu (operating-system-store-file-system os)))) | ||
| 73 | |||
| 74 | (test-end) | ||
| 75 | |||
| 76 | |||
| 77 | (exit (= (test-runner-fail-count (test-runner-current)) 0)) | ||
