summaryrefslogtreecommitdiffstats
path: root/recipes-test/virt-test/files/qemu-tests-multi-nic-stress.patch
blob: 9c916f56b0242f559d541fc757920dd2618f97f8 (plain)
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)])