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 <lmr@xxxxxxxxxx> > --- > 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 $? -- 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