Subject: [bug#66156] [PATCH 09/12] tests: hurd-vm: Remove custom disk image configuration.

From: Ludovic Courtès <[email-masked]>
Date: Fri, 22 Sep 2023 14:54:10 +0200

This was added in 18e76f89055f25f015fadb7c999b410f38a88cc6.  Presumably,
the problem was that using compressed QCOW2 images makes the childhurd
slower, so it’s eventually marked as failing to start.  By enabling KVM
inside the Guix System VM, we allow the childhurd to run on KVM, which
compensates the slowdown due to the use of a compressed image.

* gnu/tests/virtualization.scm (hurd-vm-disk-image-raw): Remove.
(%childhurd-os): Use default config for ‘hurd-vm-service-type’.
(run-childhurd-test)[test]: Pass “-cpu host” to the run-vm script.
---
 gnu/tests/virtualization.scm | 20 +++++---------------
 1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/gnu/tests/virtualization.scm b/gnu/tests/virtualization.scm
index 41253968e9..9e7928703e 100644
--- a/gnu/tests/virtualization.scm
+++ b/gnu/tests/virtualization.scm
@@ -225,23 +225,10 @@ (define %test-qemu-guest-agent
 ;;; GNU/Hurd virtual machines, aka. childhurds.
 ;;;
 
-;; Copy of `hurd-vm-disk-image', using plain disk-image for test
-(define (hurd-vm-disk-image-raw config)
-  (let ((os ((@@ (gnu services virtualization) secret-service-operating-system)
-             (hurd-vm-configuration-os config)))
-        (disk-size (hurd-vm-configuration-disk-size config)))
-    (image
-     (inherit hurd-disk-image)
-     (format 'disk-image)
-     (size disk-size)
-     (operating-system os))))
-
 (define %childhurd-os
   (simple-operating-system
    (service dhcp-client-service-type)
-   (service hurd-vm-service-type
-            (hurd-vm-configuration
-             (image (hurd-vm-disk-image-raw this-record))))))
+   (service hurd-vm-service-type)))
 
 (define (run-childhurd-test)
   (define os
@@ -292,7 +279,10 @@ (define (run-childhurd-test)
                        (ice-9 match))
 
           (define marionette
-            (make-marionette (list #$vm)))
+            ;; Emulate the host CPU so that KVM is available inside as well
+            ;; ("nested KVM"), provided
+            ;; /sys/module/kvm_intel/parameters/nested (or similar) allows it.
+            (make-marionette (list #$vm "-cpu" "host")))
 
           (test-runner-current (system-test-runner #$output))
           (test-begin "childhurd")
-- 
2.41.0