diff mbox

KVM-Test: Add KVM unit test (kvmctl)

Message ID 1271656059-13646-1-git-send-email-lmr@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lucas Meneghel Rodrigues April 19, 2010, 5:47 a.m. UTC
None
diff mbox

Patch

diff --git a/client/tests/kvm/tests/unit_test.py b/client/tests/kvm/tests/unit_test.py
new file mode 100644
index 0000000..433cbcc
--- /dev/null
+++ b/client/tests/kvm/tests/unit_test.py
@@ -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))
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index e73ba44..eaba30f 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -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 = ''