qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Paul Brook <paul@codesourcery.com>
Cc: "Mark McLoughlin" <markmc@redhat.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, "Alexander Graf" <agraf@suse.de>,
	"Blue Swirl" <blauwirbel@gmail.com>,
	"Max Filippov" <jcmvbkbc@gmail.com>,
	"Gerd Hoffmann" <kraxel@redhat.com>,
	"Edgar E. Iglesias" <edgar.iglesias@gmail.com>,
	"Peter Maydell" <peter.maydell@linaro.org>,
	"Markus Armbruster" <armbru@redhat.com>,
	"Andreas Färber" <andreas.faerber@web.de>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Avi Kivity" <avi@redhat.com>,
	"Stefan Hajnoczi" <stefanha@linux.vnet.ibm.com>,
	"Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
	"Stefan Weil" <sw@weilnetz.de>,
	"Riku Voipio" <riku.voipio@iki.fi>,
	"Jan Kiszka" <jan.kiszka@web.de>,
	"Daniel Gollub" <gollub@b1-systems.de>,
	"Luiz Capitulino" <lcapitulino@redhat.com>,
	"Venkateswararao Jujjuri (JV)" <jvrao@linux.vnet.ibm.com>,
	"Richard Henderson" <rth@twiddle.net>,
	"Kevin Wolf" <kwolf@redhat.com>,
	"Vassili Karpov (malc)" <av1474@comtv.ru>,
	"Marcelo Tosatti" <mtosatti@redhat.com>,
	"Michael Walle" <michael@walle.cc>,
	"Amit Shah" <amit.shah@redhat.com>,
	"Paolo Bonzini" <pbonzini@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] Please read: make check framework
Date: Mon, 09 Jan 2012 13:28:34 -0600	[thread overview]
Message-ID: <4F0B3FE2.8080909@us.ibm.com> (raw)
In-Reply-To: <201201091747.52115.paul@codesourcery.com>

On 01/09/2012 11:47 AM, Paul Brook wrote:
>> I'm going to apply this series quickly and will start running 'make
>> check-quick' as part a sniff test before pushing patches.
>>
>> I'd like to request that all maintainers/submaintainers do the same and
>> that everyone contributes unit tests to this target.
>>
>> The general rules for 'make check-quick':
>>
>>    1) It must complete in less than 10 minutes start to finish (the entire
>> rule). We can re-examine this over time but for now, it seems like a
>> reasonable limit.
>
> No objection in principle, though I'm a bit unclear on the guidelines.
> In particular:
>
> - 10 minutes on what hardware?  10 minutes on one of my fat build machines is
> an hour on an average year-old laptop/desktop, and I guess 6+ hours on the
> netbook I use when travelling.  Maybe relating this to the time taken to do a
> clean build would make more sense?

10 minutes on my laptop.  It's a soft rule and is meant to give people an idea 
of what to target.

gtest has a set of functions to use to select run profiles (quick, slow, 
thorough, etc.).  It's just a matter of making sure that you don't add anything 
ridiculous to the quick profile.

We can tweak the profiles over time

>
> - What level of testing is appropriate? As a maintainer when can/should I
> bounce a patch due to lack of tests?

Yes.

> e.g should new device emulation come with
> unit tests? New infrastructure? What about fixes to both of the above, should
> these include regression tests?

There's a careful balance that we're going to need to work out over time.  We 
need to balance test coverage with setting reasonable criteria for patch inclusion.

We're still short on infrastructure right now so I expect that a lot of stuff 
will get merged without tests at first.  As we get more test infrastructure like 
qtest and qemu-test, I expect that to change.

In terms of total coverage for any given feature, I think ultimately the goal is 
to move the responsibility for regression testing from the contributors of new 
features to the subsystems themselves.

IOW, after we get going with our test infrastructure, when we do big sweeping 
changes like the memory API or QOM, I will have much less sympathy for breakages 
that are caused by subsystems with an incomplete test suite.

So I think the most important thing for maintainers to start thinking about is 
how they can add the necessary infrastructure for testing their subsystems.

> Given the size of the test surface for many
> components (in particular emulated CPUs), I'm guessing we're looking at
> extremely basic smoke-tests.  Consistent regression tests or any sort of
> architecture conformance tests are going to completely blow your time budget.

Right, testing is a cost that should be minimized.  Ultimately, the right 
testing investment is something like the amount of hours that you would have 
spent fixing introduced regressions multiplied by the impact of the regression 
appear in the first place.  That's not an easy formula to use for prediction :-)

That probably means that for subsystems that are well isolated and not in 
anyone's critical path, not a lot of test infrastructure is practical.

> Obviously level of testing is always a bit of a judgement call - anyone who
> claims of have complete test coverage is either lying or writing trivially
> uninteresting code.  However given qemu has historically had zero active test
> coverage I'd appreciate some guidance (as both maintainers and contrubutor).

We're going to have to strike a balance.  To start with, I'd recommend enforcing 
at least sniff tests.  We'll get a huge return on investment with a reasonable 
set of sniff tests.  Longer term, we're going to have to just wait and see at 
what point the ROI starts to diminish significantly.

Regards,

Anthony Liguori

> Paul
>

  reply	other threads:[~2012-01-09 19:28 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-01-09 15:56 [Qemu-devel] [PATCH 01/11] tests: mv tests/* -> tests/tcg Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 02/11] build: split unit test builds to a separate makefile fragment Anthony Liguori
2012-01-09 19:23   ` Andreas Färber
2012-01-09 19:38     ` Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 03/11] check-qdict: convert to gtest Anthony Liguori
2012-01-09 18:27   ` Luiz Capitulino
2012-01-09 19:15     ` Anthony Liguori
2012-01-09 19:37       ` Luiz Capitulino
2012-01-09 19:26   ` Andreas Färber
2012-01-09 19:39     ` Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 04/11] check-qfloat: " Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 05/11] check-qint: " Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 06/11] check-qstring: " Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 07/11] check-qlist: " Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 08/11] check-qjson: " Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 09/11] check-qjson: enable disabled tests Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 10/11] test: eliminate libcheck tests and have make check use gtester Anthony Liguori
2012-01-09 19:35   ` Andreas Färber
2012-01-10  9:17   ` Gerd Hoffmann
2012-01-10 13:10     ` Anthony Liguori
2012-01-09 15:56 ` [Qemu-devel] [PATCH 11/11] check: add a check-report and check-help target Anthony Liguori
2012-01-09 20:00   ` Andreas Färber
2012-01-09 16:04 ` [Qemu-devel] Please read: make check framework Anthony Liguori
2012-01-09 16:16   ` Avi Kivity
2012-01-09 16:28     ` Anthony Liguori
2012-01-09 16:47   ` Daniel Gollub
2012-01-09 17:47   ` Paul Brook
2012-01-09 19:28     ` Anthony Liguori [this message]
2012-01-09 20:57       ` Andreas Färber
2012-01-09 21:42         ` Anthony Liguori
2012-01-09 23:22           ` Andreas Färber
2012-01-09 23:56             ` Anthony Liguori
2012-01-10  9:57               ` Kevin Wolf
2012-01-10 13:11                 ` Anthony Liguori
2012-01-10 14:49               ` Andreas Färber
2012-01-10 15:39                 ` Peter Maydell
2012-01-09 20:00   ` Stefan Weil
2012-01-10  8:39   ` Stefan Hajnoczi
2012-01-10 13:21     ` Luiz Capitulino
2012-01-09 19:18 ` [Qemu-devel] [PATCH 01/11] tests: mv tests/* -> tests/tcg Andreas Färber

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=4F0B3FE2.8080909@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=agraf@suse.de \
    --cc=amit.shah@redhat.com \
    --cc=andreas.faerber@web.de \
    --cc=armbru@redhat.com \
    --cc=aurelien@aurel32.net \
    --cc=av1474@comtv.ru \
    --cc=avi@redhat.com \
    --cc=blauwirbel@gmail.com \
    --cc=edgar.iglesias@gmail.com \
    --cc=gollub@b1-systems.de \
    --cc=hpoussin@reactos.org \
    --cc=jan.kiszka@web.de \
    --cc=jcmvbkbc@gmail.com \
    --cc=jvrao@linux.vnet.ibm.com \
    --cc=kraxel@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=lcapitulino@redhat.com \
    --cc=markmc@redhat.com \
    --cc=michael@walle.cc \
    --cc=mst@redhat.com \
    --cc=mtosatti@redhat.com \
    --cc=paul@codesourcery.com \
    --cc=pbonzini@redhat.com \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=riku.voipio@iki.fi \
    --cc=rth@twiddle.net \
    --cc=stefanha@linux.vnet.ibm.com \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=sw@weilnetz.de \
    /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).