A fair amount of host tools need to run kvm-test.

Requirements:

 * Host needs to have Intel/AMD Virtualization hardware support.
 * Capable of building kvm releases
 * Functioning vncserver

New software requirements - (software you probably don't have)
 * gtk-vnc 
 	1. hg clone http://gtk-vnc.sourceforge.net/hg/aliguori.hg
	2. ./autogen.sh (you'll likely need to install a bunch of dev libraries)
    3. make
	4. make install


If you don't already have kvm modules installed and loaded, look at running
with the external module build control file:

 % bin/autotest test/kvmtest/control.with_modbuild

This control file will attempt to pull down a recent snapshot from the kvm
nightly repo, build, install and load kvm modules before running kvmtest.  After
running once with the modbuild control file, you can just run the regular
control.

 % bin/autotest test/kvmtest/control.testdir

If you do not have any kvm-test test created you will need to do so.  Check out
the wiki (http://kvm.qumranet.com/kvmwiki/KVMTest) for instructions on how to
create your own tests.
