Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(37)

Side by Side Diff: client/virt/tests/netperf.py

Issue 6883246: Merge autotest upstream from @5318 ~ @5336 (Closed) Base URL: ssh://gitrw.chromium.org:9222/autotest.git@master
Patch Set: patch Created 9 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « client/virt/tests/multicast.py ('k') | client/virt/tests/nic_promisc.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 import logging, os, signal 1 import logging, os, signal
2 from autotest_lib.client.common_lib import error 2 from autotest_lib.client.common_lib import error
3 from autotest_lib.client.bin import utils 3 from autotest_lib.client.bin import utils
4 import kvm_subprocess, kvm_utils 4 from autotest_lib.client.virt import aexpect, virt_utils
5
6 5
7 def run_netperf(test, params, env): 6 def run_netperf(test, params, env):
8 """ 7 """
9 Network stress test with netperf. 8 Network stress test with netperf.
10 9
11 1) Boot up a VM with multiple nics. 10 1) Boot up a VM with multiple nics.
12 2) Launch netserver on guest. 11 2) Launch netserver on guest.
13 3) Execute multiple netperf clients on host in parallel 12 3) Execute multiple netperf clients on host in parallel
14 with different protocols. 13 with different protocols.
15 4) Output the test result. 14 4) Output the test result.
(...skipping 17 matching lines...) Expand all
33 try: 32 try:
34 utils.run("iptables -F") 33 utils.run("iptables -F")
35 except: 34 except:
36 pass 35 pass
37 36
38 for i in params.get("netperf_files").split(): 37 for i in params.get("netperf_files").split():
39 vm.copy_files_to(os.path.join(netperf_dir, i), "/tmp") 38 vm.copy_files_to(os.path.join(netperf_dir, i), "/tmp")
40 39
41 try: 40 try:
42 session_serial.cmd(firewall_flush) 41 session_serial.cmd(firewall_flush)
43 except kvm_subprocess.ShellError: 42 except aexpect.ShellError:
44 logging.warning("Could not flush firewall rules on guest") 43 logging.warning("Could not flush firewall rules on guest")
45 44
46 session_serial.cmd(setup_cmd % "/tmp", timeout=200) 45 session_serial.cmd(setup_cmd % "/tmp", timeout=200)
47 session_serial.cmd(params.get("netserver_cmd") % "/tmp") 46 session_serial.cmd(params.get("netserver_cmd") % "/tmp")
48 47
49 tcpdump = env.get("tcpdump") 48 tcpdump = env.get("tcpdump")
50 pid = None 49 pid = None
51 if tcpdump: 50 if tcpdump:
52 # Stop the background tcpdump process 51 # Stop the background tcpdump process
53 try: 52 try:
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
85 raise error.TestFail("Some netperf tests failed: %s" % 84 raise error.TestFail("Some netperf tests failed: %s" %
86 ", ".join(list_fail)) 85 ", ".join(list_fail))
87 86
88 try: 87 try:
89 logging.info("Setup and run netperf clients on host") 88 logging.info("Setup and run netperf clients on host")
90 utils.run(setup_cmd % netperf_dir) 89 utils.run(setup_cmd % netperf_dir)
91 90
92 bg = [] 91 bg = []
93 nic_num = len(params.get("nics").split()) 92 nic_num = len(params.get("nics").split())
94 for i in range(nic_num): 93 for i in range(nic_num):
95 bg.append(kvm_utils.Thread(netperf, (i,))) 94 bg.append(virt_utils.Thread(netperf, (i,)))
96 bg[i].start() 95 bg[i].start()
97 96
98 completed = False 97 completed = False
99 while not completed: 98 while not completed:
100 completed = True 99 completed = True
101 for b in bg: 100 for b in bg:
102 if b.is_alive(): 101 if b.is_alive():
103 completed = False 102 completed = False
104 finally: 103 finally:
105 for b in bg: 104 for b in bg:
106 if b: 105 if b:
107 b.join() 106 b.join()
108 session_serial.cmd_output("killall netserver") 107 session_serial.cmd_output("killall netserver")
109 if tcpdump and pid: 108 if tcpdump and pid:
110 logging.debug("Resuming the background tcpdump") 109 logging.debug("Resuming the background tcpdump")
111 logging.info("pid is %s" % pid) 110 logging.info("pid is %s" % pid)
112 os.kill(pid, signal.SIGCONT) 111 os.kill(pid, signal.SIGCONT)
OLDNEW
« no previous file with comments | « client/virt/tests/multicast.py ('k') | client/virt/tests/nic_promisc.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698