After guest's autotest finish, the results directory is copied to
host by get_results() function, so no need to get guest's test status
from guest again.

Signed-off-by: Qingtang Zhou <[email protected]>
Acked-by: Yiqiao Pu <[email protected]>
Signed-off-by: Feng Yang <[email protected]>
---
 client/virt/virt_test_utils.py |   25 ++++++++++++++++---------
 1 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/client/virt/virt_test_utils.py b/client/virt/virt_test_utils.py
index 5df6473..f5a2e0c 100644
--- a/client/virt/virt_test_utils.py
+++ b/client/virt/virt_test_utils.py
@@ -1112,20 +1112,27 @@ def run_autotest(vm, session, control_path, timeout, 
outputdir, params):
                            guest_results_dir)
 
 
-    def get_results_summary(guest_autotest_path):
+    def get_results_summary():
         """
-        Get the status of the tests that were executed on the host and close
-        the session where autotest was being executed.
+        Get the status of the tests that were executed on the guest.
+        NOTE: This function depends on the results copied to host by
+              get_results() function, so call get_results() first.
         """
-        session.cmd("cd %s" % guest_autotest_path)
-        output = session.cmd_output("cat results/*/status")
+        status_path = os.path.join(outputdir, "guest_autotest_results",
+                                   "*/status")
+
+        try:
+            output = utils.system_output("cat %s" % status_path)
+        except IOError, e:
+            logging.error("Error getting guest autotest status file: %s", e)
+            return None
+
         try:
             results = scan_results.parse_results(output)
             # Report test results
             logging.info("Results (test, status, duration, info):")
             for result in results:
-                logging.info(str(result))
-            session.close()
+                logging.info("\t %s", str(result))
             return results
         except Exception, e:
             logging.error("Error processing guest autotest results: %s", e)
@@ -1223,7 +1230,7 @@ def run_autotest(vm, session, control_path, timeout, 
outputdir, params):
     except aexpect.ShellTimeoutError:
         if vm.is_alive():
             get_results(destination_autotest_path)
-            get_results_summary(destination_autotest_path)
+            get_results_summary()
             raise error.TestError("Timeout elapsed while waiting for job to "
                                   "complete")
         else:
@@ -1234,8 +1241,8 @@ def run_autotest(vm, session, control_path, timeout, 
outputdir, params):
         raise error.TestError("Autotest job on guest failed "
                               "(Remote session terminated during job)")
 
-    results = get_results_summary(destination_autotest_path)
     get_results(destination_autotest_path)
+    results = get_results_summary()
 
     # Make a list of FAIL/ERROR/ABORT results (make sure FAIL results appear
     # before ERROR results, and ERROR results appear before ABORT results)
-- 
1.7.7.6

_______________________________________________
Autotest-kernel mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/autotest-kernel

Reply via email to