qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
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!

  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).