qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [PATCH 2/4] qemu-iotests: Add VM method qtest_cmd() to


From: Fam Zheng
Subject: Re: [Qemu-devel] [PATCH 2/4] qemu-iotests: Add VM method qtest_cmd() to iotests.py
Date: Sat, 1 Feb 2014 23:23:27 +0800
User-agent: Mutt/1.5.22 (2013-10-16)

On Wed, 01/29 15:22, Stefan Hajnoczi wrote:
> On Wed, Jan 29, 2014 at 04:40:41PM +0800, Fam Zheng wrote:
> > 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 | 7 +++++--
> >  1 file changed, 5 insertions(+), 2 deletions(-)
> > 
> > diff --git a/tests/qemu-iotests/iotests.py b/tests/qemu-iotests/iotests.py
> > index e4fa9af..ca79d09 100644
> > --- a/tests/qemu-iotests/iotests.py
> > +++ b/tests/qemu-iotests/iotests.py
> > @@ -153,13 +153,16 @@ class VM(object):
> >                               stderr=sys.stderr)
> >          return p.wait()
> >  
> > +    def qtest_cmd(self, cmd):
> > +        self._popen.stdin.write(cmd + "\n")
> > +
> >      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._popen = subprocess.Popen(self._args, stdin=devnull, 
> > stdout=qemulog,
> > +            self._popen = subprocess.Popen(self._args, 
> > stdin=subprocess.PIPE,
> > +                                           stdout=qemulog,
> >                                             stderr=subprocess.STDOUT)
> 
> Commit 0fd05e8dd1ee7ae143fba3d6bcc6abe3fbeaeb34 ("qemu-iotests: start
> vms in qtest mode") put qtest on stdio.  I think that was a mistake and
> it should be fixed if you want to drive qtest.
> 
> Let's not mix qtest output with QEMU stderr.  If you need to drive
> qtest, put it on a dedicated UNIX domain socket
> (just like QMP).
> 
> Implement the qtest protocol as documented in qtest.c:
> 
>  * Line based protocol, request/response based.  Server can send async 
> messages
>  * so clients should always handle many async messages before the response
>  * comes in.
> 

OK, good idea, I'll respin for a better qtest support.

Fam



reply via email to

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