From: "Benoît Canet" <benoit.canet@irqsave.net>
To: Fam Zheng <famz@redhat.com>
Cc: "Kevin Wolf" <kwolf@redhat.com>,
"Benoît Canet" <benoit.canet@irqsave.net>,
qemu-devel@nongnu.org, "Stefan Hajnoczi" <stefanha@redhat.com>,
pbonzini@redhat.com
Subject: Re: [Qemu-devel] [PATCH v3 2/5] qtest: Add scripts/qtest/qtest.py
Date: Tue, 11 Feb 2014 11:41:07 +0100 [thread overview]
Message-ID: <20140211104107.GA2978@irqsave.net> (raw)
In-Reply-To: <1392100862-25943-3-git-send-email-famz@redhat.com>
The Tuesday 11 Feb 2014 à 14:40:59 (+0800), Fam Zheng wrote :
> This removes the dummy scripts/qtest and adds scripts/qtest/qtest.py as
> a python library for qtest protocol.
>
> This is a skeleton with a basic "cmd" method to execute a command,
> reading and parsing of qtest output will be added later on demand.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
> scripts/qtest | 5 ----
> scripts/qtest/qtest.py | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 74 insertions(+), 5 deletions(-)
> delete mode 100755 scripts/qtest
> create mode 100644 scripts/qtest/qtest.py
>
> diff --git a/scripts/qtest b/scripts/qtest
> deleted file mode 100755
> index 4ef6c1c..0000000
> --- a/scripts/qtest
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#!/bin/sh
> -
> -export QTEST_QEMU_BINARY=$1
> -shift
> -"$@"
> diff --git a/scripts/qtest/qtest.py b/scripts/qtest/qtest.py
> new file mode 100644
> index 0000000..16c6713
> --- /dev/null
> +++ b/scripts/qtest/qtest.py
> @@ -0,0 +1,74 @@
> +# QEMU qtest library
> +#
> +# Copyright (C) 2014 Red Hat Inc.
> +#
> +# Authors:
> +# Fam Zheng <famz@redhat.com>
> +#
> +# This work is licensed under the terms of the GNU GPL, version 2. See
> +# the COPYING file in the top-level directory.
> +#
> +# Based on qmp.py.
> +#
> +
> +import errno
> +import socket
> +
> +class QEMUQtestProtocol:
> + def __init__(self, address, server=False):
> + """
> + Create a QEMUQtestProtocol object.
> +
> + @param address: QEMU address, can be either a unix socket path (string)
> + or a tuple in the form ( address, port ) for a TCP
> + connection
> + @param server: server mode listens on the socket (bool)
> + @raise socket.error on socket connection errors
> + @note No connection is established, this is done by the connect() or
> + accept() methods
> + """
> + self.__address = address
> + self.__sock = self.__get_sock()
> + if server:
> + self.__sock.bind(self.__address)
> + self.__sock.listen(1)
> +
> + def __get_sock(self):
> + if isinstance(self.__address, tuple):
> + family = socket.AF_INET
> + else:
> + family = socket.AF_UNIX
> + return socket.socket(family, socket.SOCK_STREAM)
> +
> + def connect(self):
> + """
> + Connect to the qtest socket.
> +
> + @raise socket.error on socket connection errors
> + """
> + self.__sock.connect(self.__address)
> + self.__sockfile = self.__sock.makefile()
> +
> + def accept(self):
> + """
> + Await connection from QEMU.
> +
> + @raise socket.error on socket connection errors
> + """
> + self.__sock, _ = self.__sock.accept()
> + self.__sockfile = self.__sock.makefile()
> +
> + def cmd(self, qtest_cmd):
> + """
> + Send a qtest command on the wire.
> +
> + @param qtest_cmd: qtest command text to be sent
> + """
> + self.__sock.sendall(qtest_cmd + "\n")
> +
> + def close(self):
> + self.__sockfile.close()
> + self.__sock.close()
> +
> + def settimeout(self, timeout):
> + self.__sock.settimeout(timeout)
> --
> 1.8.5.4
>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
next prev parent reply other threads:[~2014-02-11 10:41 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-02-11 6:40 [Qemu-devel] [PATCH v3 0/5] qemu-iotests: Test case for IO throttling Fam Zheng
2014-02-11 6:40 ` [Qemu-devel] [PATCH v3 1/5] qemu-io: Account IO by aio_read and aio_write Fam Zheng
2014-02-11 6:40 ` [Qemu-devel] [PATCH v3 2/5] qtest: Add scripts/qtest/qtest.py Fam Zheng
2014-02-11 10:41 ` Benoît Canet [this message]
2014-02-11 6:41 ` [Qemu-devel] [PATCH v3 3/5] qemu-iotests: Add VM method qtest() to iotests.py Fam Zheng
2014-02-11 10:58 ` Benoît Canet
2014-02-11 6:41 ` [Qemu-devel] [PATCH v3 4/5] qemu-iotests: Allow caller to disable underscore convertion for qmp Fam Zheng
2014-02-11 6:41 ` [Qemu-devel] [PATCH v3 5/5] qemu-iotests: Add 080 for IO throttling Fam Zheng
2014-02-11 10:41 ` Benoît Canet
2014-06-02 13:41 ` [Qemu-devel] [PATCH v3 0/5] qemu-iotests: Test case " Stefan Hajnoczi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20140211104107.GA2978@irqsave.net \
--to=benoit.canet@irqsave.net \
--cc=famz@redhat.com \
--cc=kwolf@redhat.com \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.