[KVM-AUTOTEST PATCH 3/4] kvm_tests: Use autotest log files to scan results

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The 'autotest' kvm subtest was relying on autotest output, that
now has the logging line prefixes. The logging line prefixes
breaks the results parser, so we would either have to make the
parser to strip the logging prefixes or read autotest status
files generated on the results directory. The later is a simpler
approach, so this patch implements it.

Also, copy control files defined inside
self.bindir/autotest_control directory to the guest. This way
we can create more complex control files to run in guests
without having to touch other tests directories.

Signed-off-by: Lucas Meneghel Rodrigues <lmr@xxxxxxxxxx>
---
 client/tests/kvm/kvm_tests.py |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)

diff --git a/client/tests/kvm/kvm_tests.py b/client/tests/kvm/kvm_tests.py
index 4b87a76..62e5161 100644
--- a/client/tests/kvm/kvm_tests.py
+++ b/client/tests/kvm/kvm_tests.py
@@ -296,20 +296,30 @@ def run_autotest(test, params, env):
     if status != 0:
         raise error.TestFail("Could not extract %s.tar.bz2" % test_name)
 
+    # Cleaning up old remaining results
+    session.sendline("rm -rf autotest/results/*")
+    # Copying the selected control file (located inside
+    # test.bindir/autotest_control to the autotest dir
+    control_file_path = os.path.join(test.bindir, "autotest_control",
+                                     test_control_file)
+    if not vm.scp_to_remote(control_file_path, "autotest/control"):
+        raise error.TestFail("Could not copy the test control file to guest")
     # Run the test
     logging.info("Running test '%s'..." % test_name)
-    session.sendline("cd autotest/tests/%s" % test_name)
-    session.sendline("rm -f ./%s.state" % test_control_file)
+    session.sendline("cd autotest")
+    session.sendline("rm -f control.state")
     session.read_up_to_prompt()
-    session.sendline("../../bin/autotest ./%s" % test_control_file)
+    session.sendline("bin/autotest control")
     logging.info("---------------- Test output ----------------")
-    match, output = session.read_up_to_prompt(timeout=test_timeout,
-                                              print_func=logging.info)
+    match = session.read_up_to_prompt(timeout=test_timeout,
+                                      print_func=logging.info)[0]
     logging.info("---------------- End of test output ----------------")
     if not match:
         raise error.TestFail("Timeout elapsed while waiting for test to"
                              " complete")
-
+    # Get the results generated by autotest
+    session.sendline("cat results/*/status")
+    output = session.read_up_to_prompt()[1]
     session.close()
 
     # Parse test results
-- 
1.6.2.2

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux