qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Daniel P. Berrange" <berrange@redhat.com>
To: Markus Armbruster <armbru@redhat.com>
Cc: "Cleber Rosa" <crosa@redhat.com>,
	"Lukáš Doktor" <ldoktor@redhat.com>,
	"Stefan Hajnoczi" <stefanha@gmail.com>,
	"Amador Pahim" <apahim@redhat.com>,
	qemu-devel@nongnu.org, "Cleber Rosa" <cleber@redhat.com>
Subject: Re: [Qemu-devel] Improving QMP test coverage
Date: Thu, 27 Jul 2017 11:04:42 +0100	[thread overview]
Message-ID: <20170727100442.GF2555@redhat.com> (raw)
In-Reply-To: <8760eiuxu5.fsf@dusky.pond.sub.org>

On Mon, Jul 24, 2017 at 08:56:50AM +0200, Markus Armbruster wrote:
> Cleber Rosa <crosa@redhat.com> writes:
> 
> > On 07/21/2017 11:33 AM, Stefan Hajnoczi wrote:
> >>> Output testing style delegates checking ouput to diff.  I rather like it
> >>> when text output is readily available.  It is when testing QMP.  A
> >>> non-trivial example using this style could be useful, as discussing
> >>> ideas tends to be more productive when they come with patches.
> >> 
> >> Yes, I was considering how many of the Python iotests could be rewritten
> >> comfortably in shell.  It is nice when the test simply executes commands
> >> and the output file shows the entire history of what happened.  Great
> >> for debugging.
> >> 
> >> Stefan
> >> 
> > I'd like to have a better understanding of the major pain points here.
> >
> > Although this can be seen as a matter of taste, style preferences and
> > even religion, I guess it's safe to say that Python can scale better
> > than shell.  The upside of shell based tests is the "automatic" and
> > complete logging, right?  Running "bash -x /path/to/test.sh" will give
> > much more *useful* information than "python -v /path/to/test.py" will, fact.
> >
> > I believe this has to do with how *generic* Python code is written, and
> > how builtin functions and most of the standard Python libraries work as
> > they do.  Now, when writing code aimed at testing, making use of testing
> > oriented libraries and tools, one would expect much more useful and
> > readily available debug information.
> >
> > I'm biased, for sure, but that's what you get when you write basic tests
> > using the Avocado libraries.  For instance, when using process.run()[1]
> > within a test, you can choose to see its command output quite easily
> > with a command such as "avocado --show=avocado.test.stdout run test.py".
> >
> > Using other custom logging channels is also trivial (for instance for
> > specific QMP communication)[2][3].
> >
> > I wonder if such logging capabilities fill in the gap of what you
> > describe as "[when the] output file shows the entire history of what
> > happened".
> 
> Test code language is orthogonal to verification method (with code
> vs. with diff).  Except verifying with shell code would be obviously
> nuts[*].
> 
> The existing iotests written in Python verify with code, and the ones
> written in shell verify with diff.  Doesn't mean that we have to port
> from Python to shell to gain "verify with diff".

Nb, not all the python tests verify with code. The LUKS test 149 that
I wrote in python verifies  with diff. I chose python because shell is
an awful programming language if the code needs conditionals, non-scalar
data structures, or is more than 10 lines long in total :-)

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|

      parent reply	other threads:[~2017-07-27 10:04 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-07-13 15:28 [Qemu-devel] Improving QMP test coverage Markus Armbruster
2017-07-17 10:33 ` Stefan Hajnoczi
2017-07-18 16:24   ` Markus Armbruster
2017-07-21 15:33     ` Stefan Hajnoczi
2017-07-21 16:16       ` Cleber Rosa
2017-07-24  6:56         ` Markus Armbruster
2017-07-26  1:21           ` Cleber Rosa
2017-07-27  8:14             ` Markus Armbruster
2017-07-27  9:19               ` Fam Zheng
2017-07-27  9:58                 ` Fam Zheng
2017-07-27 10:09                 ` Daniel P. Berrange
2017-07-27 11:16                   ` Fam Zheng
2017-08-01 10:25                     ` Stefan Hajnoczi
2017-07-27 10:04           ` Daniel P. Berrange [this message]

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=20170727100442.GF2555@redhat.com \
    --to=berrange@redhat.com \
    --cc=apahim@redhat.com \
    --cc=armbru@redhat.com \
    --cc=cleber@redhat.com \
    --cc=crosa@redhat.com \
    --cc=ldoktor@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).