[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [ANNOUNCE] qemu-test: a set of tests scripts for QEMU

From: Anthony Liguori
Subject: [Qemu-devel] [ANNOUNCE] qemu-test: a set of tests scripts for QEMU
Date: Mon, 19 Dec 2011 11:13:24 -0600
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20110922 Lightning/1.0b2 Thunderbird/3.1.15


I've published a set of tests I wrote over the weekend on qemu.org. My motivations were 1) to prevent regressions like the libguestfs one and 2) to have an easier way to do development testing as I work on QEMU Object Model.

Now before sending the obligatory, "What about using KVM autotest" reply, note that this is significantly different than KVM autotest and really occupies a different use-case.

It has the following characteristics:

1) It builds a custom kernel and initramfs based on busybox. This is fairly important to ensure that we can run tests with no device pre-requisites.

2) Tests are scripts that are launched in the initramfs

3) The test controls exactly how QEMU is launched which allows easy testing of various QEMU options

4) Tests can interact with the monitor via QMP while the test is running

5) The tests execute very quickly, can be run stand alone, and do not require root privileges

6) They are random by nature with the ability to fix the seed in order to be used in git-bisect.

I think Gerd had been looking at doing something similar with a custom initrd.

I've tried to consider other architectures and had hoped that we could commit the vmlinuz and initramfs into git so that it was easy to test other architectures without having a full build environment. Unfortunately, busybox doesn't link statically with glibc and I can't see an obvious way to commit binaries while respecting the GPL since we need to pull glibc into the initramfs.

I know buildroot exists specifically to deal with this but in my experience, buildroot is very unreliable and extremely heavy weight since it rebuilds gcc multiple times in order to bootstrap a ulibc environment.

Anyway, the code is available at:


See the README for instructions on how to use it.


Anthony Liguori

reply via email to

[Prev in Thread] Current Thread [Next in Thread]