aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2018-02-19 21:58:18 +0100
committerLudovic Courtès <ludo@gnu.org>2018-02-19 22:04:11 +0100
commit27a2c9c3e071fdb380c2f4f389b7cf4008dc75f7 (patch)
tree5e1d58334b83240015cc1dd0109c16ec0b8d3830
parentce0a62f6c5c8ea486869360f654356777cdf918e (diff)
downloadgnu-guix-27a2c9c3e071fdb380c2f4f389b7cf4008dc75f7.tar
gnu-guix-27a2c9c3e071fdb380c2f4f389b7cf4008dc75f7.tar.gz
marionette: Use QEMU's "VM channel" mechanism.
* gnu/tests.scm (<marionette-configuration>)[device]: Default to "/dev/virtio-ports/org.gnu.guix.port.0". * gnu/tests.scm (marionette-shepherd-service): Remove (guix build syscalls) from 'modules'. Remove 'tcsetattr' call from 'start'. * gnu/build/marionette.scm (make-marionette): Use "-virtserialport" instead of "-virtconsole".
-rw-r--r--gnu/build/marionette.scm7
-rw-r--r--gnu/tests.scm22
2 files changed, 10 insertions, 19 deletions
diff --git a/gnu/build/marionette.scm b/gnu/build/marionette.scm
index 7554a710a0..173a67cef9 100644
--- a/gnu/build/marionette.scm
+++ b/gnu/build/marionette.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -97,8 +97,11 @@ QEMU monitor and to the guest's backdoor REPL."
"-monitor" (string-append "unix:" socket-directory "/monitor")
"-chardev" (string-append "socket,id=repl,path=" socket-directory
"/repl")
+
+ ;; See
+ ;; <http://www.linux-kvm.org/page/VMchannel_Requirements#Invocation>.
"-device" "virtio-serial"
- "-device" "virtconsole,chardev=repl"))
+ "-device" "virtserialport,chardev=repl,name=org.gnu.guix.port.0"))
(define (accept* port)
(match (select (list port) '() (list port) timeout)
diff --git a/gnu/tests.scm b/gnu/tests.scm
index 3e4c3d4e3a..2aef370af5 100644
--- a/gnu/tests.scm
+++ b/gnu/tests.scm
@@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2016, 2017 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2016, 2017, 2018 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2017 Mathieu Othacehe <m.othacehe@gmail.com>
;;; Copyright © 2017 Tobias Geerinckx-Rice <me@tobias.gr>
;;;
@@ -69,7 +69,7 @@
marionette-configuration make-marionette-configuration
marionette-configuration?
(device marionette-configuration-device ;string
- (default "/dev/hvc0"))
+ (default "/dev/virtio-ports/org.gnu.guix.port.0"))
(imported-modules marionette-configuration-imported-modules
(default '()))
(requirements marionette-configuration-requirements ;list of symbols
@@ -87,17 +87,10 @@
(modules '((ice-9 match)
(srfi srfi-9 gnu)
- (guix build syscalls)
(rnrs bytevectors)))
(start
- (with-imported-modules `((guix build syscalls)
- ,@imported-modules)
+ (with-imported-modules imported-modules
#~(lambda ()
- (define (clear-echo termios)
- (set-field termios (termios-local-flags)
- (logand (lognot (local-flags ECHO))
- (termios-local-flags termios))))
-
(define (self-quoting? x)
(letrec-syntax ((one-of (syntax-rules ()
((_) #f)
@@ -112,13 +105,8 @@
(dynamic-wind
(const #t)
(lambda ()
- (let* ((repl (open-file #$device "r+0"))
- (termios (tcgetattr (fileno repl)))
- (console (open-file "/dev/console" "r+0")))
- ;; Don't echo input back.
- (tcsetattr (fileno repl) (tcsetattr-action TCSANOW)
- (clear-echo termios))
-
+ (let ((repl (open-file #$device "r+0"))
+ (console (open-file "/dev/console" "r+0")))
;; Redirect output to the console.
(close-fdes 1)
(close-fdes 2)