diff mbox

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

Message ID 1244823190-9299-3-git-send-email-lmr@redhat.com (mailing list archive)
State New, archived
Headers show

Commit Message

Lucas Meneghel Rodrigues June 12, 2009, 4:13 p.m. UTC
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@redhat.com>
---
 client/tests/kvm/kvm_tests.py |   22 ++++++++++++++++------
 1 files changed, 16 insertions(+), 6 deletions(-)
diff mbox

Patch

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