summary refs log tree commit diff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2022-11-17 10:26:01 +0100
committerLudovic Courtès <ludo@gnu.org>2022-11-17 11:10:09 +0100
commit00b9ab0a8332528bdfb4aee58ddb975596cb2042 (patch)
tree92d830ece40c11b0fa28f177efd3a9c40f748eeb /gnu
parentc9f927b7042d0cedadf7c29e83efaaa86a76b9e3 (diff)
downloadguix-00b9ab0a8332528bdfb4aee58ddb975596cb2042.tar.gz
tests: root-unmount: Wait for the first QEMU process to finish.
There was a tiny possibility that the first QEMU process would still be
running by the time we launch the second one.

* gnu/build/marionette.scm (marionette-pid): Export.
* gnu/tests/base.scm (run-root-unmount-test)[test]: Add 'waitpid' call.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/build/marionette.scm1
-rw-r--r--gnu/tests/base.scm8
2 files changed, 8 insertions, 1 deletions
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index f4b219e842..b8fba61d06 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -28,6 +28,7 @@
   #:use-module (ice-9 popen)
   #:use-module (ice-9 regex)
   #:export (marionette?
+            marionette-pid
             make-marionette
             marionette-eval
             wait-for-file
diff --git a/gnu/tests/base.scm b/gnu/tests/base.scm
index 64cd6a911a..87518b4bfe 100644
--- a/gnu/tests/base.scm
+++ b/gnu/tests/base.scm
@@ -695,7 +695,13 @@ in a loop.  See <http://bugs.gnu.org/26931>.")
 
             ;; Halt the system.
             (marionette-eval '(system* "/run/current-system/profile/sbin/halt")
-                             marionette))
+                             marionette)
+
+            (display "waiting for marionette to complete...")
+            (force-output)
+            (false-if-exception (waitpid (marionette-pid marionette)))
+            (display " done\n")
+            (force-output))
 
           ;; Remove the sockets used by the marionette above to avoid
           ;; EADDRINUSE.