diff options
| author | raid5atemyhomework <raid5atemyhomework@protonmail.com> | 2021-03-22 11:23:32 +0800 |
|---|---|---|
| committer | Danny Milosavljevic <dannym@scratchpost.org> | 2021-05-11 16:13:48 +0200 |
| commit | a3df382525ac515d1aa083f7f5bd3bd31eb1df40 (patch) | |
| tree | ceaa4eaf3a5c2d2a85e64ca83b7d23a9e9d306ed /gnu/tests/linux-modules.scm | |
| parent | bddad00bffc5837e89942756fa5b7234f63f1f47 (diff) | |
gnu: Allow services to install kernel-loadable modules.
* gnu/system.scm (operating-system-directory-base-entries): Remove code
to handle generation of "kernel" for linux-libre kernels.
(operating-system-default-essential-services): Instantiate
linux-builder-service-type.
(package-for-kernel): Move ...
* gnu/services.scm: ... to here.
(linux-builder-service-type): New variable.
(linux-builder-configuration): New type.
(linux-loadable-module-service-type): New variable.
* gnu/tests/linux-modules.scm (run-loadable-kernel-modules-test): Move
code to ...
(run-loadable-kernel-modules-test-base): ... new procedure here.
(run-loadable-kernel-modules-service-test): New procedure.
(%test-loadable-kernel-modules-service-0): New variable.
(%test-loadable-kernel-modules-service-1): New variable.
(%test-loadable-kernel-modules-service-2): New variable.
* doc/guix.texi: Document linux-loadable-module-service-type.
Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org>
Diffstat (limited to 'gnu/tests/linux-modules.scm')
| -rw-r--r-- | gnu/tests/linux-modules.scm | 80 |
1 files changed, 70 insertions, 10 deletions
diff --git a/gnu/tests/linux-modules.scm b/gnu/tests/linux-modules.scm index 953b132ef7b..30d8eae03b8 100644 --- a/gnu/tests/linux-modules.scm +++ b/gnu/tests/linux-modules.scm | |||
| @@ -2,6 +2,7 @@ | |||
| 2 | ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> | 2 | ;;; Copyright © 2019 Jakob L. Kreuze <zerodaysfordays@sdf.org> |
| 3 | ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> | 3 | ;;; Copyright © 2020 Danny Milosavljevic <dannym@scratchpost.org> |
| 4 | ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> | 4 | ;;; Copyright © 2020 Brice Waegeneire <brice@waegenei.re> |
| 5 | ;;; Copyright © 2021 raid5atemyhomework <raid5atemyhomework@protonmail.com> | ||
| 5 | ;;; | 6 | ;;; |
| 6 | ;;; This file is part of GNU Guix. | 7 | ;;; This file is part of GNU Guix. |
| 7 | ;;; | 8 | ;;; |
| @@ -34,7 +35,10 @@ | |||
| 34 | #:use-module (guix utils) | 35 | #:use-module (guix utils) |
| 35 | #:export (%test-loadable-kernel-modules-0 | 36 | #:export (%test-loadable-kernel-modules-0 |
| 36 | %test-loadable-kernel-modules-1 | 37 | %test-loadable-kernel-modules-1 |
| 37 | %test-loadable-kernel-modules-2)) | 38 | %test-loadable-kernel-modules-2 |
| 39 | %test-loadable-kernel-modules-service-0 | ||
| 40 | %test-loadable-kernel-modules-service-1 | ||
| 41 | %test-loadable-kernel-modules-service-2)) | ||
| 38 | 42 | ||
| 39 | ;;; Commentary: | 43 | ;;; Commentary: |
| 40 | ;;; | 44 | ;;; |
| @@ -66,17 +70,11 @@ that MODULES are actually loaded." | |||
| 66 | (member module modules string=?)) | 70 | (member module modules string=?)) |
| 67 | '#$modules)))))) | 71 | '#$modules)))))) |
| 68 | 72 | ||
| 69 | (define* (run-loadable-kernel-modules-test module-packages module-names) | 73 | (define* (run-loadable-kernel-modules-test-base base-os module-names) |
| 70 | "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES | 74 | "Run a test of BASE-OS, verifying that MODULE-NAMES are loaded in memory." |
| 71 | are loaded in memory." | ||
| 72 | (define os | 75 | (define os |
| 73 | (marionette-operating-system | 76 | (marionette-operating-system |
| 74 | (operating-system | 77 | base-os |
| 75 | (inherit (simple-operating-system)) | ||
| 76 | (services (cons (service kernel-module-loader-service-type module-names) | ||
| 77 | (operating-system-user-services | ||
| 78 | (simple-operating-system)))) | ||
| 79 | (kernel-loadable-modules module-packages)) | ||
| 80 | #:imported-modules '((guix combinators)))) | 78 | #:imported-modules '((guix combinators)))) |
| 81 | (define vm (virtual-machine os)) | 79 | (define vm (virtual-machine os)) |
| 82 | (define (test script) | 80 | (define (test script) |
| @@ -98,6 +96,36 @@ are loaded in memory." | |||
| 98 | (gexp->derivation "loadable-kernel-modules" | 96 | (gexp->derivation "loadable-kernel-modules" |
| 99 | (test (modules-loaded?-program os module-names)))) | 97 | (test (modules-loaded?-program os module-names)))) |
| 100 | 98 | ||
| 99 | (define* (run-loadable-kernel-modules-test module-packages module-names) | ||
| 100 | "Run a test of an OS having MODULE-PACKAGES, and verify that MODULE-NAMES | ||
| 101 | are loaded in memory." | ||
| 102 | (run-loadable-kernel-modules-test-base | ||
| 103 | (operating-system | ||
| 104 | (inherit (simple-operating-system)) | ||
| 105 | (services (cons (service kernel-module-loader-service-type module-names) | ||
| 106 | (operating-system-user-services | ||
| 107 | (simple-operating-system)))) | ||
| 108 | (kernel-loadable-modules module-packages)) | ||
| 109 | module-names)) | ||
| 110 | |||
| 111 | (define* (run-loadable-kernel-modules-service-test module-packages module-names) | ||
| 112 | "Run a test of an OS having MODULE-PACKAGES, which are loaded by creating a | ||
| 113 | service that extends LINUXL-LOADABLE-MODULE-SERVICE-TYPE. Then verify that | ||
| 114 | MODULE-NAMES are loaded in memory." | ||
| 115 | (define module-installing-service-type | ||
| 116 | (service-type | ||
| 117 | (name 'module-installing-service) | ||
| 118 | (extensions (list (service-extension linux-loadable-module-service-type | ||
| 119 | (const module-packages)))) | ||
| 120 | (default-value #f))) | ||
| 121 | (run-loadable-kernel-modules-test-base | ||
| 122 | (operating-system | ||
| 123 | (inherit (simple-operating-system)) | ||
| 124 | (services (cons* (service module-installing-service-type) | ||
| 125 | (operating-system-user-services | ||
| 126 | (simple-operating-system))))) | ||
| 127 | module-names)) | ||
| 128 | |||
| 101 | (define %test-loadable-kernel-modules-0 | 129 | (define %test-loadable-kernel-modules-0 |
| 102 | (system-test | 130 | (system-test |
| 103 | (name "loadable-kernel-modules-0") | 131 | (name "loadable-kernel-modules-0") |
| @@ -129,3 +157,35 @@ with two extra modules.") | |||
| 129 | (package-arguments | 157 | (package-arguments |
| 130 | ddcci-driver-linux)))))) | 158 | ddcci-driver-linux)))))) |
| 131 | '("acpi_call" "ddcci"))))) | 159 | '("acpi_call" "ddcci"))))) |
| 160 | |||
| 161 | (define %test-loadable-kernel-modules-service-0 | ||
| 162 | (system-test | ||
| 163 | (name "loadable-kernel-modules-service-0") | ||
| 164 | (description "Tests loadable kernel modules extensible service with no | ||
| 165 | extra modules.") | ||
| 166 | (value (run-loadable-kernel-modules-service-test '() '())))) | ||
| 167 | |||
| 168 | (define %test-loadable-kernel-modules-service-1 | ||
| 169 | (system-test | ||
| 170 | (name "loadable-kernel-modules-service-1") | ||
| 171 | (description "Tests loadable kernel modules extensible service with one | ||
| 172 | extra module.") | ||
| 173 | (value (run-loadable-kernel-modules-service-test | ||
| 174 | (list ddcci-driver-linux) | ||
| 175 | '("ddcci"))))) | ||
| 176 | |||
| 177 | (define %test-loadable-kernel-modules-service-2 | ||
| 178 | (system-test | ||
| 179 | (name "loadable-kernel-modules-service-2") | ||
| 180 | (description "Tests loadable kernel modules extensible service with two | ||
| 181 | extra modules.") | ||
| 182 | (value (run-loadable-kernel-modules-service-test | ||
| 183 | (list acpi-call-linux-module | ||
| 184 | (package | ||
| 185 | (inherit ddcci-driver-linux) | ||
| 186 | (arguments | ||
| 187 | `(#:linux #f | ||
| 188 | ,@(strip-keyword-arguments '(#:linux) | ||
| 189 | (package-arguments | ||
| 190 | ddcci-driver-linux)))))) | ||
| 191 | '("acpi_call" "ddcci"))))) | ||
