Hi,
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:
http://git.qemu.org/qemu-test.git
See the README for instructions on how to use it.
Regards,
Anthony Liguori