On 05/04/2010 01:03 AM, Lucas Meneghel Rodrigues wrote:
> Following the new IOzone postprocessing changes, add a new
> KVM subtest iozone_windows, which takes advantage of the
> fact that there's a windows build for the test, so we can
> ship it on winutils.iso and run it, providing this way
> the ability to track IO performance for windows guests also.
> The new test imports the postprocessing library directly
> from iozone, so it can postprocess the results right after
> the benchmark is finished on the windows guest.
>
> I'll update winutils.iso on the download page soon.
>
> Signed-off-by: Lucas Meneghel Rodrigues <[email protected]>
> ---
> client/tests/kvm/tests/iozone_windows.py | 40
> ++++++++++++++++++++++++++++++
> client/tests/kvm/tests_base.cfg.sample | 7 ++++-
> 2 files changed, 46 insertions(+), 1 deletions(-)
> create mode 100644 client/tests/kvm/tests/iozone_windows.py
>
> diff --git a/client/tests/kvm/tests/iozone_windows.py
> b/client/tests/kvm/tests/iozone_windows.py
> new file mode 100644
> index 0000000..86ec2c4
> --- /dev/null
> +++ b/client/tests/kvm/tests/iozone_windows.py
> @@ -0,0 +1,40 @@
> +import logging, time, os
> +from autotest_lib.client.common_lib import error
> +from autotest_lib.client.bin import utils
> +from autotest_lib.client.tests.iozone import postprocessing
> +import kvm_subprocess, kvm_test_utils, kvm_utils
> +
> +
> +def run_iozone_windows(test, params, env):
> + """
> + Run IOzone for windows on a windows guest:
> + 1) Log into a guest
> + 2) Execute the IOzone test contained in the winutils.iso
> + 3) Get results
> + 4) Postprocess it with the IOzone postprocessing module
> +
> + @param test: kvm test object
> + @param params: Dictionary with the test parameters
> + @param env: Dictionary with test environment.
> + """
> + vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
> + session = kvm_test_utils.wait_for_login(vm)
> + results_path = os.path.join(test.resultsdir,
> + 'raw_output_%s' % test.iteration)
> + analysisdir = os.path.join(test.resultsdir, 'analysis_%s' %
> test.iteration)
> +
> + # Run IOzone and record its results
> + c = command=params.get("iozone_cmd")
'command=' looks unnecessary here.
> + t = int(params.get("iozone_timeout"))
> + logging.info("Running IOzone command on guest, timeout %ss", t)
> + results = session.get_command_output(command=c, timeout=t)
Does IOzone produce any output while it's running or only when it's
done? If the former is true, we might want to print that output as it's
being produced:
results = session.get_command_output(command=c, timeout=t,
print_func=logging.debug)
> + utils.open_write_close(results_path, results)
> +
> + # Postprocess the results using the IOzone postprocessing module
> + logging.info("Iteration succeed, postprocessing")
> + a = postprocessing.IOzoneAnalyzer(list_files=[results_path],
> + output_dir=analysisdir)
> + a.analyze()
> + p = postprocessing.IOzonePlotter(results_file=results_path,
> + output_dir=analysisdir)
> + p.plot_all()
> diff --git a/client/tests/kvm/tests_base.cfg.sample
> b/client/tests/kvm/tests_base.cfg.sample
> index f1104ed..e21f3c8 100644
> --- a/client/tests/kvm/tests_base.cfg.sample
> +++ b/client/tests/kvm/tests_base.cfg.sample
> @@ -214,6 +214,11 @@ variants:
> dst_rsc_dir = "C:\"
> autoit_entry = "C:\autoit\stub\stub.au3"
>
> + - iozone_windows: unattended_install
> + type = iozone_windows
> + iozone_cmd = "D:\IOzone\iozone.exe -a"
> + iozone_timeout = 3600
> +
> - guest_s4: install setup unattended_install
> type = guest_s4
> check_s4_support_cmd = grep -q disk /sys/power/state
> @@ -417,7 +422,7 @@ variants:
> variants:
> # Linux section
> - @Linux:
> - no autoit
> + no autoit iozone_windows
> shutdown_command = shutdown -h now
> reboot_command = shutdown -r now
> status_test_command = echo $?
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest