All of lore.kernel.org
 help / color / mirror / Atom feed
From: Kevin Wolf <kwolf@redhat.com>
To: Anthony Liguori <anthony@codemonkey.ws>
Cc: Lucas Meneghel Rodrigues <lmr@redhat.com>,
	qemu-devel@nongnu.org, Markus Armbruster <armbru@redhat.com>,
	Gerd Hoffmann <kraxel@redhat.com>, Cleber Rosa <crosa@redhat.com>,
	Avi Kivity <avi@redhat.com>
Subject: Re: [Qemu-devel] [PATCH 0/4] add "make check"
Date: Thu, 27 Oct 2011 10:20:48 +0200	[thread overview]
Message-ID: <4EA91460.9050301@redhat.com> (raw)
In-Reply-To: <4EA8726A.20309@codemonkey.ws>

Am 26.10.2011 22:49, schrieb Anthony Liguori:
> On 10/25/2011 10:22 AM, Kevin Wolf wrote:
>> Am 25.10.2011 17:03, schrieb Eduardo Habkost:
>> I think qemu-iotests could be considered an instance of B)
>>
>>> C) Functional tests that just need to run a small binary with no OS
>>>     installed in the guest, but running a fully-feature qemu process.
>>>     - The tests in the 'tests' directory do this, right? kvm-unittests
>>>       does this, right?
>>
>> Not sure what test/ does, but for kvm-unittests yes. And this is also
>> what I was talking about.
> 
> Thinking more about this...
> 
> We could add a new '-x-test-server CHR' option.  When this option is added, it 
> would do the following:
> 
> 1) Open CHR character device
> 2) Use /dev/shm for guest memory
> 3) Listen for connections on CHR
> 4) When something connects to CHR
>   a) reset device model
>   b) send /dev/shm fd over CHR
>   c) register CPU physical memory client
>      1. upon CPU physical memory changes, send the change info over CHR
>   d) instead of doing [kvm_]cpu_exec(), block reading on CHR
> 
> So when you launch qemu with -x-test-server, it'll sit there doing nothing 
> terribly useful.  But this lets you write a program that connects to CHR, and 
> then by mapping {out,in}[bwl] to RPCs over the connection, and accessing RAM via 
> mmap()'ing the passed fd using the client mapping table, you can essentially 
> write kvm-unittest style tests while still having full access to libc.

IRQs need to go through the connection as well.

Oh, and you would finally have a C user for libqmp. The test cases
definitely need to be able to access the monitor. For example I would
really love to have test cases for the I/O error paths that stop the VM
(or actually it's the resume that must be tested).

> And since each test program can reset QEMU after running, you could very nicely 
> tie into something like gtest as a unit test framework.  I think it's pretty 
> appealing from a debugability perspective too.
> 
> It also means that it's possible to have 100% C test cases such that you could 
> still build something like ppc64-softmmu and run it against the written test 
> cases without having to really understand ppc64 assembly or have a ppc64 build 
> environment (to generate native binaries to run under ppc64 TCG).
> 
> I think this could work out fairly well as a unit test framework.

Sounds great, where are the patches? ;-)

Kevin

  reply	other threads:[~2011-10-27  8:17 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-01 15:42 [Qemu-devel] [PATCH 0/4] add "make check" Gerd Hoffmann
2011-09-01 15:42 ` [Qemu-devel] [PATCH 1/4] Probe for libcheck by default Gerd Hoffmann
2011-09-01 19:37   ` Anthony Liguori
2011-09-02  7:42     ` Gerd Hoffmann
2011-09-05  7:39       ` Markus Armbruster
2011-09-01 15:42 ` [Qemu-devel] [PATCH 2/4] move checks to separate variable Gerd Hoffmann
2011-09-01 15:42 ` [Qemu-devel] [PATCH 3/4] add "make check" target Gerd Hoffmann
2011-09-01 15:42 ` [Qemu-devel] [PATCH 4/4] add test-coroutine to checks Gerd Hoffmann
2011-09-05  7:55 ` [Qemu-devel] [PATCH 0/4] add "make check" Markus Armbruster
2011-10-24 18:43   ` Eduardo Habkost
2011-10-24 18:57     ` Anthony Liguori
2011-10-25 12:21       ` Kevin Wolf
2011-10-25 13:27         ` Gerd Hoffmann
2011-10-25 14:16           ` Kevin Wolf
2011-10-25 15:03           ` Eduardo Habkost
2011-10-25 15:22             ` Kevin Wolf
2011-10-26 20:49               ` Anthony Liguori
2011-10-27  8:20                 ` Kevin Wolf [this message]
2011-10-27 17:58                   ` Anthony Liguori
2011-10-27 21:22                     ` Michael Roth
2011-10-25 15:54             ` Gerd Hoffmann
2011-10-25 16:30             ` Lucas Meneghel Rodrigues
2011-10-25 15:03         ` Anthony Liguori
2011-11-01 18:03 ` Anthony Liguori

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=4EA91460.9050301@redhat.com \
    --to=kwolf@redhat.com \
    --cc=anthony@codemonkey.ws \
    --cc=armbru@redhat.com \
    --cc=avi@redhat.com \
    --cc=crosa@redhat.com \
    --cc=kraxel@redhat.com \
    --cc=lmr@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.