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 <l...@redhat.com>
---
 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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to