diff options
author | Ludovic Courtès <ludo@gnu.org> | 2018-02-19 21:58:18 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2018-02-19 22:04:11 +0100 |
commit | 27a2c9c3e071fdb380c2f4f389b7cf4008dc75f7 (patch) | |
tree | 5e1d58334b83240015cc1dd0109c16ec0b8d3830 | |
parent | ce0a62f6c5c8ea486869360f654356777cdf918e (diff) | |
download | gnu-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.scm | 7 | ||||
-rw-r--r-- | gnu/tests.scm | 22 |
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) |