| import logging, os |
| from autotest_lib.client.bin import utils |
| from autotest_lib.client.tests.iozone import postprocessing |
| |
| |
| 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 = env.get_vm(params["main_vm"]) |
| vm.verify_alive() |
| timeout = int(params.get("login_timeout", 360)) |
| session = vm.wait_for_login(timeout=timeout) |
| 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 = params.get("iozone_cmd") |
| t = int(params.get("iozone_timeout")) |
| logging.info("Running IOzone command on guest, timeout %ss", t) |
| results = session.cmd_output(cmd=c, timeout=t) |
| 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() |