Re: [Autotest] [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]

 



----- "Lucas Meneghel Rodrigues" <lmr@xxxxxxxxxx> wrote:

> 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")

Do you think the space should be at the end of the first line or at the
beginning of the second? The only clue PEP 8 gives us is that operators
should be at the end of the first line. I'm not sure about this space.
It may not be important enough to spend time on.

> -
> +    # Get the results generated by autotest
> +    session.sendline("cat results/*/status")
> +    output = session.read_up_to_prompt()[1]

You can use

output = session.get_command_output("cat results/*/status")

which will return a string that does not include the final prompt
(unlike read_up_to_prompt()). It's also a little shorter.
You can also use it to print the test output (between "Test output"
and "End of test output").

>      session.close()
>  
>      # Parse test results
> -- 
> 1.6.2.2
> 
> _______________________________________________
> Autotest mailing list
> Autotest@xxxxxxxxxxxxxxx
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
--
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