qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 3/5] qemu-iotests: Add VM method qtest() to i


From: Benoît Canet
Subject: Re: [Qemu-devel] [PATCH v2 3/5] qemu-iotests: Add VM method qtest() to iotests.py
Date: Mon, 10 Feb 2014 13:11:51 +0100
User-agent: Mutt/1.5.21 (2010-09-15)

Le Friday 07 Feb 2014 à 18:43:31 (+0800), Fam Zheng a écrit :
> This will allow test case to run command in qtest protocol. It's
> write-only for now.
> 
> Signed-off-by: Fam Zheng <address@hidden>
> ---
>  tests/qemu-iotests/iotests.py | 20 ++++++++++++++++++--
>  1 file changed, 18 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> index e4fa9af..e2a3e73 100644
> --- a/tests/qemu-iotests/iotests.py
> +++ b/tests/qemu-iotests/iotests.py
> @@ -21,9 +21,13 @@ import re
>  import subprocess
>  import string
>  import unittest
> -import sys; sys.path.append(os.path.join(os.path.dirname(__file__), '..', 
> '..', 'scripts', 'qmp'))
> +import sys
> +sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 
> 'scripts', 'qmp'))
> +sys.path.append(os.path.join(os.path.dirname(__file__), '..', '..', 
> 'scripts', 'qtest'))
>  import qmp
> +import qtest
>  import struct
> +import socket
>  
>  __all__ = ['imgfmt', 'imgproto', 'test_dir' 'qemu_img', 'qemu_io',
>             'VM', 'QMPTestCase', 'notrun', 'main']
> @@ -80,10 +84,12 @@ class VM(object):
>      def __init__(self):
>          self._monitor_path = os.path.join(test_dir, 'qemu-mon.%d' % 
> os.getpid())
>          self._qemu_log_path = os.path.join(test_dir, 'qemu-log.%d' % 
> os.getpid())
> +        self._qtest_path = os.path.join(test_dir, 'qemu-qtest.%d' % 
> os.getpid())
>          self._args = qemu_args + ['-chardev',
>                       'socket,id=mon,path=' + self._monitor_path,
>                       '-mon', 'chardev=mon,mode=control',
> -                     '-qtest', 'stdio', '-machine', 'accel=qtest',
> +                     '-qtest', 'unix:path=' + self._qtest_path,
> +                     '-machine', 'accel=qtest',
>                       '-display', 'none', '-vga', 'none']
>          self._num_drives = 0
>  
> @@ -153,15 +159,20 @@ class VM(object):
>                               stderr=sys.stderr)
>          return p.wait()
>  

> +    def qtest(self, cmd):
> +        return self._qtest.cmd(cmd)
> +
I am under the impression that you define this qtest method twice in the same
VM(object) class.

>      def launch(self):
>          '''Launch the VM and establish a QMP connection'''
>          devnull = open('/dev/null', 'rb')
>          qemulog = open(self._qemu_log_path, 'wb')
>          try:
>              self._qmp = qmp.QEMUMonitorProtocol(self._monitor_path, 
> server=True)
> +            self._qtest = qtest.QEMUQtestProtocol(self._qtest_path, 
> server=True)
>              self._popen = subprocess.Popen(self._args, stdin=devnull, 
> stdout=qemulog,
>                                             stderr=subprocess.STDOUT)
>              self._qmp.accept()
> +            self._qtest.accept()
>          except:
>              os.remove(self._monitor_path)
>              raise
> @@ -172,6 +183,7 @@ class VM(object):
>              self._qmp.cmd('quit')
>              self._popen.wait()
>              os.remove(self._monitor_path)
> +            os.remove(self._qtest_path)
>              os.remove(self._qemu_log_path)
>              self._popen = None
>  
> @@ -184,6 +196,10 @@ class VM(object):
>  
>          return self._qmp.cmd(cmd, args=qmp_args)
>  
> +    def qtest(self, cmd):
> +        '''Send a qtest command to guest'''
> +        return self._qtest.cmd(cmd)
> +
>      def get_qmp_event(self, wait=False):
>          '''Poll for one queued QMP events and return it'''
>          return self._qmp.pull_event(wait=wait)
> -- 
> 1.8.5.4
> 



reply via email to

[Prev in Thread] Current Thread [Next in Thread]