new file mode 100644
@@ -0,0 +1,34 @@
+import os
+from autotest_lib.client.bin import utils
+from autotest_lib.client.common_lib import error
+
+def run_unit_test_kvmctl(test, params, env):
+ """
+ This is kvm userspace unit test, use kvm test harness kvmctl load binary
+ test case file to test various function of kvm kernel module.
+ The output of all unit test can be found in the test result dir.
+
+ @param test: KVM test object.
+ @param params: Dictionary with the test parameters.
+ @param env: Dictionary with test environment.
+ """
+ case_list = params.get("case_list").split()
+ srcdir = params.get("srcdir", test.srcdir)
+ user_dir = os.path.join(srcdir, "kvm_userspace", "kvm", "user")
+ os.chdir(user_dir)
+ fail = 0
+
+ result_file = (test.outputdir, "%s.flat" % case)
+ cmd = "./kvmctl test/x86/bootstrap test/x86/ %s" % testfile
+ results = None
+ try:
+ results = utils.system_output(cmd)
+ except error.CmdError, e:
+ logging.error("Unit test %s failed", case)
+ fail += 1
+
+ if results is not None:
+ utils.open_write_close(result_file, results)
+
+ if fail:
+ raise error.TestFail("Unit tests failed: %s", " ".join(test_fail_list))
@@ -306,6 +306,36 @@ variants:
- ksm_parallel:
ksm_mode = "parallel"
+ - unit_test_kvmctl:
+ type = unit_test
+ vms = ''
+ profilers = ''
+ variants:
+ - access:
+ case = access
+ - apic:
+ case = apic
+ - emulator:
+ case = emulator
+ - hypercall:
+ case = hypercall
+ - msr:
+ case = msr
+ - port80:
+ case = port80
+ - realmode:
+ case = realmode
+ - sieve:
+ case = sieve
+ - smptest:
+ case = smptest
+ - tsc:
+ case = tsc
+ - stringio:
+ case = stringio
+ - vmexit:
+ case = vmexit
+
- qemu_img:
type = qemu_img
vms = ''