diff mbox

KVM Test: Add KVM unit test (kvmctl) v2

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

Commit Message

Lucas Meneghel Rodrigues April 19, 2010, 11:10 a.m. UTC
None
diff mbox

Patch

diff --git a/client/tests/kvm/tests/unit_test_kvmctl.py b/client/tests/kvm/tests/unit_test_kvmctl.py
new file mode 100644
index 0000000..a5b88b6
--- /dev/null
+++ b/client/tests/kvm/tests/unit_test_kvmctl.py
@@ -0,0 +1,28 @@ 
+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 functions of the kvm kernel module.
+    The output of all unit tests 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 = params.get("case")
+    srcdir = params.get("srcdir", test.srcdir)
+    unit_dir = os.path.join(srcdir, "kvm_userspace", "kvm", "user")
+    os.chdir(unit_dir)
+
+    cmd = "./kvmctl test/x86/bootstrap test/x86/%s.flat" % case
+    try:
+        results = utils.system_output(cmd)
+    except error.CmdError, e:
+        raise error.TestFail("Unit test %s failed" % case)
+
+    result_file = os.path.join(test.resultsdir, case)
+    utils.open_write_close(result_file, results)
diff --git a/client/tests/kvm/tests_base.cfg.sample b/client/tests/kvm/tests_base.cfg.sample
index e73ba44..9f82ffb 100644
--- a/client/tests/kvm/tests_base.cfg.sample
+++ b/client/tests/kvm/tests_base.cfg.sample
@@ -306,6 +306,38 @@  variants:
             - ksm_parallel:
                 ksm_mode = "parallel"
 
+    # This unit test module is for older branches of KVM that use the
+    # kvmctl test harness (such as the code shipped with RHEL 5.x)
+    - 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 = ''