commit df8666dfa327670b680ff05d5c43fff715c62ff9 Author: Jonas Eriksson Date: Tue Mar 18 16:11:50 2014 +0100 multi_nic_stress: Check if netperf is installed To avoid an unnecessary download and build of netperf, check if the application is present before building. Signed-off-by: Jonas Eriksson Upstream-Status: Pending diff --git a/qemu/tests/cfg/multi_nic_stress.cfg b/qemu/tests/cfg/multi_nic_stress.cfg index 2ec6cb6..36a073e 100644 --- a/qemu/tests/cfg/multi_nic_stress.cfg +++ b/qemu/tests/cfg/multi_nic_stress.cfg @@ -15,6 +15,9 @@ pkg_md5sum = 9654ffdfd4c4f2c93ce3733cd9ed9236 remote_dir = /var/tmp setup_cmd = "cd ${remote_dir} && rm -rf netperf-2.6.0 && tar xvfj netperf-2.6.0.tar.bz2 && cd netperf-2.6.0 && ./configure --enable-burst --enable-demo=yes && make" + app_check_cmd = "netperf -V" + client_cmd = netperf + server_cmd = netserver l = 30 protocols = "TCP_STREAM TCP_MAERTS TCP_RR TCP_CRR" sessions = "1" diff --git a/qemu/tests/multi_nic_stress.py b/qemu/tests/multi_nic_stress.py index 698bc99..aaf6d21 100644 --- a/qemu/tests/multi_nic_stress.py +++ b/qemu/tests/multi_nic_stress.py @@ -41,20 +41,24 @@ def run(test, params, env): """ error.context("Setup env for %s" % ip_addr) ssh_cmd(session, "service iptables stop; true") - netperf_links = params["netperf_links"].split() - remote_dir = params.get("remote_dir", "/var/tmp") - for netperf_link in netperf_links: - if utils.is_url(netperf_link): - download_dir = data_dir.get_download_dir() - md5sum = params.get("pkg_md5sum") - netperf_dir = utils.unmap_url_cache(download_dir, - netperf_link, md5sum) - elif netperf_link: - netperf_dir = os.path.join(data_dir.get_root_dir(), - "shared/%s" % netperf_link) - remote.scp_to_remote(ip_addr, shell_port, username, password, - netperf_dir, remote_dir) - ssh_cmd(session, params.get("setup_cmd")) + app_check_cmd = params.get("app_check_cmd", "") + + # Install netperf in guest if not already available + if not (app_check_cmd and session.cmd_status(app_check_cmd) == 0): + netperf_links = params["netperf_links"].split() + remote_dir = params.get("remote_dir", "/var/tmp") + for netperf_link in netperf_links: + if utils.is_url(netperf_link): + download_dir = data_dir.get_download_dir() + md5sum = params.get("pkg_md5sum") + netperf_dir = utils.unmap_url_cache(download_dir, + netperf_link, md5sum) + elif netperf_link: + netperf_dir = os.path.join(data_dir.get_root_dir(), + "shared/%s" % netperf_link) + remote.scp_to_remote(ip_addr, shell_port, username, password, + netperf_dir, remote_dir) + ssh_cmd(session, params.get("setup_cmd")) vm = env.get_vm(params["main_vm"]) vm.verify_alive() @@ -202,8 +206,10 @@ def launch_client(sessions, servers, server_ctl, clients, # Start netserver error.context("Start Netserver on guest", logging.info) remote_dir = params.get("remote_dir", "/var/tmp") - client_path = os.path.join(remote_dir, "netperf-2.6.0/src/netperf") - server_path = os.path.join(remote_dir, "netperf-2.6.0/src/netserver") + client_path_default = os.path.join(remote_dir, "netperf-2.6.0/src/netperf") + client_cmd = params.get("client_cmd", client_path_default) + server_path_default = os.path.join(remote_dir, "netperf-2.6.0/src/netserver") + server_cmd = params.get("server_cmd", server_path_default) if params.get("os_type") == "windows": winutils_vol = utils_misc.get_winutils_vol(server_ctl) @@ -219,8 +225,8 @@ def launch_client(sessions, servers, server_ctl, clients, raise error.TestError(msg) else: - logging.info("Netserver start cmd is '%s'" % server_path) - ssh_cmd(server_ctl, "pidof netserver || %s" % server_path) + logging.info("Netserver start cmd is '%s'" % server_cmd) + ssh_cmd(server_ctl, "pidof netserver || %s" % server_cmd) logging.info("Netserver start successfully") # start netperf @@ -230,7 +236,7 @@ def launch_client(sessions, servers, server_ctl, clients, for client in clients: test_timeout = len(clients) * l server = servers[clients.index(client) % len(servers)] - netperf_cmd = "%s -H %s -l %s %s" % (client_path, server, + netperf_cmd = "%s -H %s -l %s %s" % (client_cmd, server, int(l), nf_args) client_threads.append([ssh_cmd, (client, netperf_cmd, test_timeout)])