From: Anthony Liguori <aliguori@us.ibm.com>
To: "Andreas Färber" <andreas.faerber@web.de>
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>,
"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>,
"Paul Brook" <paul@codesourcery.com>,
"Paolo Bonzini" <pbonzini@redhat.com>,
"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>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Michael Walle" <michael@walle.cc>,
"Amit Shah" <amit.shah@redhat.com>,
"Vassili Karpov (malc)" <av1474@comtv.ru>,
"Aurelien Jarno" <aurelien@aurel32.net>
Subject: Re: [Qemu-devel] Please read: make check framework
Date: Mon, 09 Jan 2012 17:56:18 -0600 [thread overview]
Message-ID: <4F0B7EA2.50909@us.ibm.com> (raw)
In-Reply-To: <4F0B76A2.1090408@web.de>
On 01/09/2012 05:22 PM, Andreas Färber wrote:
> Am 09.01.2012 22:42, schrieb Anthony Liguori:
>> On 01/09/2012 02:57 PM, Andreas Färber wrote:
>>> Am 09.01.2012 20:28, schrieb Anthony Liguori:
>>>> 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.
>>>
>>> Well, I already tried pointing out that qemu-test in the way previously
>>> proposed does not help catching the recent regressions for PReP.
>>
>> Actually, qemu-test did catch it. The only reason I didn't see it is
>> that I didn't add qemu-system-powerpc to my regression script that I'm
>> using to drive it. But simply booting up a Linux guest would have
>> caught it.
>
> Booting up a Linux kernel yes, but not the latest-and-greatest like you
> proposed. Meaning, we need to be able to reference different branches or
> trees instead of a single submodule (cf. qemu-test thread).
I don't understand what you mean. Given the set of submodules currently used,
I'm not aware of any target that has issues. You asserted that it may not be
the case that a single version of Linux, busybox, uclibc would all work on all
targets. But so far, I don't see any evidence to suggest that this isn't, in
fact, possible.
>> If there's some piece of QEMU you care about, start writing tests and
>> tie it into make check. It's that simple :-)
>
> Not quite. It would be easier if we just set up some storage space with
> images like the handful of *-test images on qemu.org.
It's not that simple. We cannot just host an image on qemu.org without getting
into GPL considerations. Even beyond the GPL, I don't think having opaque
images that people don't understand how to recreate if they need to is a good
strategy.
I've considered trying to do something based on automated installation (using
kickstart/preseed). This has limitations though. It takes an extremely long
time to generate these having the necessary hooks with preseeds appears to be
very difficult.
> That way we can
> supply working images for all targets, you can supply build scripts to
> rebuild them and we can all be done quickly and have fun.
That's what qemu-jeos is.
> I was just saying, stop bike-shedding about how we're supposed to deny
> patches without test cases from tomorrow on,
I never said that.
> and instead let's get the
> test infrastructure in place and see how well we get along with it.
> That's even simpler and much more convenient.
That's what I'm proposing. Specifically:
"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."
> You're building up quite a lot of time pressure on other people lately,
> claiming two days for review were long already, wanting to merge QOM and
The latest QOM series has been sitting on the list for a few weeks and I'm still
waiting to give people time to review. I think it's hard to claim I'm rushing it.
> now make check ASAP - despite all inchoate.
Yes, I am going to rush through make check but there's nothing new or exciting here.
> Me, I've reviewed most of this series in what I believe is a
> constructive way;
Yes, and I appreciate that :-)
> I'd love to build test cases for my code based on
> qtest - you've made this series a prerequisite, so getting libqtest for
> writing test cases based on it is going to take some more time until we
> can expect contributors to contribute test cases.
The reason I sent this out before qtest (which is my real goal) is based on past
experience. We have had two unit test frameworks in use, libcheck and gtester.
I'd wager that most developers haven't used either. The libcheck tests spent
a while with a small break too that no one noticed.
I don't want to introduce yet another test framework without having a
simple-to-consume mechanism for our existing test suites while also unifying
what we already have into a single mechanism.
> If however you're trying to push the work of writing tons of test cases
> for legacy code - be it qtest or qemu-test or a qemu-test alternative -
> upfront to submaintainers, like you seemed to with this thread, then
> you're on the wrong track IMO.
I think you mean 'existing code', not legacy code. I don't consider all of the
code we have today as legacy.
> KVM on x86_64 has the biggest user base
> in terms of people testing and potentially contributing test cases; this
> imbalance of manpower is not going to be remedied by any unit test
> frameworks we introduce.
Actually, I think it will. Why do non-x86 architectures break so often?
Because they aren't tested. Why aren't they tested? Because it's extremely
difficult.
AFAIK, the majority of folks that do test non-x86 architectures do so by running
images manually. Most of them use Aurelien's debian images.
What I'm trying to get at with make check/qemu-test is a simple way that we can
add test cases for less commonly used features that makes it very easy to test
these things. That's the only way we'll stop breaking other targets.
Don't view this as, "here is extra work you have to do to get your feature in",
but rather as, "here is an opportunity to make sure that no one else does
something silly and breaks your feature, forcing you to spend your time tracking
it down."
Regards,
Anthony Liguori
>
> Regards,
> Andreas
>
next prev parent reply other threads:[~2012-01-09 23:56 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
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 [this message]
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=4F0B7EA2.50909@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).