From: Ademar Reis <areis@redhat.com>
To: Lucas Meneghel Rodrigues <lmr@redhat.com>
Cc: "kvm-autotest@redhat.com" <kvm-autotest@redhat.com>,
Scott Zawalski <scottz@google.com>,
QEMU devel <qemu-devel@nongnu.org>,
Anthony Liguori <anthony@codemonkey.ws>,
Cleber Rosa <crosa@redhat.com>
Subject: Re: [Qemu-devel] [RFC] Future goals for autotest and virtualization tests
Date: Thu, 8 Mar 2012 20:56:58 -0300 [thread overview]
Message-ID: <20120308235658.GA24526@t420s.optimusnet> (raw)
In-Reply-To: <4F593BAF.1020201@redhat.com>
On Thu, Mar 08, 2012 at 08:07:27PM -0300, Lucas Meneghel Rodrigues wrote:
> On 03/08/2012 06:24 PM, Anthony Liguori wrote:
> >>
> >>Cons:
> >>- Lot of code will be duplicated to cover the main code paths:
> >>writting tests will require writting/supporting considerable
> >>ammount of code (that already exists in autotest).
> >
> >Again, existence proof that this isn't true.
>
> Case in point, the virtio test (that uses an auxiliary script to
> send data to the host). Can you tell me if both tests cover even
> remotely the same amount of functionality?
>
> https://github.com/autotest/autotest/blob/master/client/tests/kvm/tests/virtio_console.py
>
> https://github.com/autotest/autotest/blob/master/client/virt/scripts/virtio_console_guest.py
>
> Here is the qemu-test version
>
> http://git.qemu.org/?p=qemu-test.git;a=blob;f=tests/virtio-serial.sh;h=e95ae6e0b63758262919702d51a9c83bebe2fb08;hb=master
>
> What the qemu-test version covers:
> * host starts qemu with one virtio console device backed by a file
> * guest verifies if the name of the device is correct
> * guest writes to the console device
> * host verifies if guest wrote to the virtio console
>
> What the virtio-console covers:
>
> * Sends data between host and guest back and forth, validates the
> data being sent, for both small and large amounts of data, both
> random or sequential.
> * Tests write/send in blocking, polling, selecting mode, with port
> mode sync/async
> * Verifies if the maximum amount of ports was created and it's
> available in the guest
> * Tries lseek on the device
> * Verifies if concomitant access to a single port passes or fails
> * Verifies data throughput and resource utilization
> * Repeats the data transfer with live migration to see if the port
> connections survive
> * Keeps an eye on the guest OS to see if we have kernel panics, and
> if it does, it'll clean up and put the guest in a working state so
> other functionality can be checked
> * Probably something else I'm forgetting right now.
>
Thanks for the example Lucas. :)
BTW, this is a QE-level test. Simpler tests may be sufficient for
developers and for TDD, but, if one implements even a much
simpler test using libautotest, he gets these benefits for free:
1. QE or somebody else may extend the test using the autotest
goodies the original developer was not aware of. Patches from QE
will flow to qemu.git. That's the integration with QE I was
talking about.
2. The test can run in the autotest grid, where a large matrix of
configurations and usage scenarios are used. That's possible
because we don't have much stuff hardcoded.
3. Autotest has a lot of checks for robustness. One of the main
problems of keeping thousands of tests running is to keep them
stable, without false positives.
Lucas: could you ellaborate more on what we get "for free" when
we use libautotest, even when writting a very simple
developer-level test?
> Good luck implementing that in a shell script. I'd love to see how
> you implement that amount of coverage in less lines in shell.
>
> So, more coverage, more code. It's as simple as that. We don't write
> code just for the sake of it.
>
> >>- QE will be alienated from the qemu test effort. There will be
> >>no integration between the QE efforts and the maintenance of
> >>the qemu developer-level tests.
> >
> >I think we're a pretty friendly and open community :-) There is no
> >reason that QE should be "alienated" unless folks are choosing not to
> >participate upstream.
> >
> >>- You don't get the goodies from autotest (standardized system
> >>info collection, video recording, grid support, etc).
> >>- The new tests will work only on the master branch.
> >
> >This last one is a legitimate point that I have considered myself. But I
> >think the value of having tests in HEAD outweigh the cost here.
> >
> >>3. A mix of (1) and (2): we "move" everything under qemu.git, but
> >>keep the compatibility layer and provide a "libqemutest" for
> >>third-parties.
> >>
> >>Anybody writting a test that interacts with qemu will use this
> >>library: qemu, libvirt, spice, ovirt, QE tests, etc.
> >
> >I really see this all as over architecting to be honest.
> >
> >Can someone explain in clear terms (without appealing to maturity,
> >flexibility, or any other qualitative aspect) why it takes anything more
> >than a few dozen shell functions to write all of the tests that are in
> >kvm-autotest test today?
>
> Clearly as your requirements are different than the ones we had when
> the project was written, qemu-test doesn't need any of the stuff
> present there and you can do it all with a handful of shell script
> functions.
>
> But to do cover the same things covered in autotest today with the
> same requirements, I really doubt you can do the same with the same
> handful of shell script functions. See the example about the virtio
> test above, not to mention other functionality we have with the
> tests, such as make possible to do tests run with a migration thread
> going on the background, while it's plugging/unplugging devices,
> running a stress test or ltp, or a benchmark, or measuring the time
> drift experienced by the guest.
--
Ademar de Souza Reis Jr.
Red Hat
^[:wq!
next prev parent reply other threads:[~2012-03-08 23:57 UTC|newest]
Thread overview: 84+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-08 4:00 [Qemu-devel] [RFC] Future goals for autotest and virtualization tests Lucas Meneghel Rodrigues
2012-03-08 11:44 ` Stefan Hajnoczi
2012-03-08 11:54 ` Stefan Hajnoczi
2012-03-08 12:17 ` Ademar Reis
2012-03-08 12:18 ` Ademar Reis
2012-03-09 11:48 ` [Qemu-devel] [KVM-AUTOTEST] " Osier Yang
2012-03-08 12:28 ` [Qemu-devel] " Cleber Rosa
2012-03-08 13:06 ` Stefan Hajnoczi
2012-03-08 13:36 ` Anthony Liguori
2012-03-08 14:01 ` Lucas Meneghel Rodrigues
2012-03-08 14:48 ` Anthony Liguori
2012-03-08 15:00 ` Ademar Reis
2012-03-08 23:59 ` Andreas Färber
2012-03-09 0:08 ` Ademar Reis
2012-03-08 14:49 ` Ademar Reis
2012-03-08 14:56 ` Anthony Liguori
2012-03-08 15:07 ` Ademar Reis
2012-03-08 15:14 ` Anthony Liguori
2012-03-08 16:05 ` Ademar Reis
2012-03-08 17:03 ` Anthony Liguori
2012-03-08 17:59 ` Ademar Reis
2012-03-08 18:21 ` Lucas Meneghel Rodrigues
2012-03-08 18:22 ` Lucas Meneghel Rodrigues
2012-03-08 19:16 ` Anthony Liguori
2012-03-08 21:02 ` Ademar Reis
2012-03-08 21:24 ` Anthony Liguori
2012-03-08 22:24 ` Ademar Reis
2012-03-08 23:21 ` Anthony Liguori
2012-03-08 23:51 ` Ademar Reis
2012-03-09 9:41 ` Stefan Hajnoczi
2012-03-09 14:00 ` Ademar Reis
2012-03-09 14:54 ` Stefan Hajnoczi
2012-03-09 15:01 ` Ademar Reis
2012-03-09 15:17 ` Stefan Hajnoczi
2012-03-09 11:14 ` Kevin Wolf
2012-03-09 11:59 ` Anthony Liguori
2012-03-09 12:13 ` Kevin Wolf
2012-03-09 12:24 ` Anthony Liguori
2012-03-09 11:20 ` Cleber Rosa
2012-03-09 12:04 ` Anthony Liguori
2012-03-09 12:40 ` Cleber Rosa
2012-03-09 12:42 ` Anthony Liguori
2012-03-09 12:46 ` Cleber Rosa
2012-03-08 23:07 ` Lucas Meneghel Rodrigues
2012-03-08 23:56 ` Ademar Reis [this message]
2012-03-09 0:04 ` Anthony Liguori
2012-03-09 13:24 ` Paolo Bonzini
2012-03-09 12:13 ` Anthony Liguori
2012-03-09 12:48 ` Lucas Meneghel Rodrigues
2012-03-09 14:13 ` Anthony Liguori
2012-03-09 14:40 ` Lucas Meneghel Rodrigues
2012-03-09 14:40 ` Ademar Reis
2012-03-09 13:07 ` Paolo Bonzini
2012-03-09 13:56 ` Anthony Liguori
2012-03-09 14:43 ` Paolo Bonzini
2012-03-09 14:48 ` Anthony Liguori
2012-03-09 13:03 ` Paolo Bonzini
2012-03-08 15:46 ` Kevin Wolf
2012-03-08 15:57 ` Ademar Reis
2012-03-08 16:10 ` Anthony Liguori
2012-03-08 16:34 ` Kevin Wolf
2012-03-08 16:36 ` Anthony Liguori
2012-03-08 16:46 ` Ademar Reis
2012-03-08 16:47 ` Kevin Wolf
2012-03-08 16:08 ` Anthony Liguori
2012-03-08 15:19 ` Lucas Meneghel Rodrigues
2012-03-08 18:57 ` Anthony Liguori
2012-03-08 19:34 ` Lucas Meneghel Rodrigues
2012-03-08 19:43 ` Anthony Liguori
2012-03-08 20:17 ` Lucas Meneghel Rodrigues
2012-03-08 21:02 ` Andreas Färber
2012-03-08 21:03 ` Anthony Liguori
2012-03-09 13:36 ` Paolo Bonzini
2012-03-09 14:01 ` Anthony Liguori
2012-03-09 14:30 ` Paolo Bonzini
2012-03-09 14:43 ` Anthony Liguori
2012-03-09 15:00 ` Paolo Bonzini
2012-03-09 15:02 ` Anthony Liguori
2012-03-09 15:17 ` Paolo Bonzini
2012-03-09 15:24 ` Anthony Liguori
2012-03-09 15:34 ` Paolo Bonzini
2012-03-09 15:48 ` Anthony Liguori
2012-03-09 17:02 ` Cleber Rosa
2012-03-08 14:04 ` Alon Levy
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=20120308235658.GA24526@t420s.optimusnet \
--to=areis@redhat.com \
--cc=anthony@codemonkey.ws \
--cc=crosa@redhat.com \
--cc=kvm-autotest@redhat.com \
--cc=lmr@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=scottz@google.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).