Subject: [bug#53862] [PATCH] tests: Add system tests for each supported kernel version.

From: Marius Bakke <[email-masked]>
Date: Mon, 7 Feb 2022 23:38:14 +0100

* gnu/tests/base.scm (test-basic-os-with-kernel): New procedure.
(%test-linux-libre-5.10, %test-linux-libre-5.4, %test-linux-libre-4.19,
%test-linux-libre-4.14, %test-linux-libre-4.9, %test-linux-libre-4.4): New
tests.
---
 gnu/tests/base.scm | 41 +++++++++++++++++++++++++++++++++++++++++
 1 file changed, 41 insertions(+)
---
Guix,

I just discovered #52667 and figured it would be neat to have system
tests for each kernel to catch regressions faster.

WDYT?

diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 38d4317e52..88de421ed1 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <[email-masked]>
 ;;; Copyright © 2018 Clément Lassieur <[email-masked]>
+;;; Copyright © 2022 Marius Bakke <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -41,10 +42,18 @@ (define-module (gnu tests base)
   #:use-module (guix store)
   #:use-module (guix monads)
   #:use-module (guix packages)
+  #:use-module (guix utils)
   #:use-module (srfi srfi-1)
   #:use-module (ice-9 match)
   #:export (run-basic-test
             %test-basic-os
+            test-basic-os-with-kernel
+            %test-linux-libre-5.10
+            %test-linux-libre-5.4
+            %test-linux-libre-4.19
+            %test-linux-libre-4.14
+            %test-linux-libre-4.9
+            %test-linux-libre-4.4
             %test-halt
             %test-cleanup
             %test-mcron
@@ -537,6 +546,38 @@ (define %test-basic-os
       (run-basic-test (virtualized-operating-system os '())
                       #~(list #$vm))))))
 
+(define (test-basic-os-with-kernel kernel)
+  (system-test
+   (name (string-append (package-name kernel) "-"
+                        (version-major+minor (package-version kernel))))
+   (description "Run %TEST-BASIC-OS with the given KERNEL.")
+   (value
+    (let* ((os (marionette-operating-system
+                (operating-system
+                  (inherit %simple-os)
+                  (kernel kernel))))
+           (vm (virtual-machine os)))
+      (run-basic-test (virtualized-operating-system os '())
+                      #~(list #$vm))))))
+
+(define %test-linux-libre-5.10
+  (test-basic-os-with-kernel linux-libre-5.10))
+
+(define %test-linux-libre-5.4
+  (test-basic-os-with-kernel linux-libre-5.4))
+
+(define %test-linux-libre-4.19
+  (test-basic-os-with-kernel linux-libre-4.19))
+
+(define %test-linux-libre-4.14
+  (test-basic-os-with-kernel linux-libre-4.14))
+
+(define %test-linux-libre-4.9
+  (test-basic-os-with-kernel linux-libre-4.9))
+
+(define %test-linux-libre-4.4
+  (test-basic-os-with-kernel linux-libre-4.4))
+
 
 ;;;
 ;;; Halt.
-- 
2.34.0