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