1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
commit df8666dfa327670b680ff05d5c43fff715c62ff9
Author: Jonas Eriksson <jonas.eriksson@enea.com>
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 <jonas.eriksson@enea.com>
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)])
|