Index: client/tests/kvm/tests/netperf.py |
diff --git a/client/tests/kvm/tests/netperf.py b/client/tests/kvm/tests/netperf.py |
index e1153e1b7921388b58ef6b9a9e5ce22f733dbbae..df2c839588704357a333d55180527b8fc6bf2ca7 100644 |
--- a/client/tests/kvm/tests/netperf.py |
+++ b/client/tests/kvm/tests/netperf.py |
@@ -1,4 +1,4 @@ |
-import logging, os |
+import logging, os, signal |
from autotest_lib.client.common_lib import error |
from autotest_lib.client.bin import utils |
import kvm_subprocess |
@@ -20,7 +20,7 @@ def run_netperf(test, params, env): |
vm = env.get_vm(params["main_vm"]) |
vm.verify_alive() |
login_timeout = int(params.get("login_timeout", 360)) |
- session = vm.wait_for_login(timeout=login_timeout) |
+ session_serial = vm.wait_for_serial_login(timeout=login_timeout) |
netperf_dir = os.path.join(os.environ['AUTODIR'], "tests/netperf2") |
setup_cmd = params.get("setup_cmd") |
@@ -28,18 +28,33 @@ def run_netperf(test, params, env): |
result_file = os.path.join(test.resultsdir, "output_%s" % test.iteration) |
firewall_flush = "iptables -F" |
- session.cmd_output(firewall_flush) |
+ session_serial.cmd_output(firewall_flush) |
+ try: |
+ utils.run("iptables -F") |
+ except: |
+ pass |
for i in params.get("netperf_files").split(): |
vm.copy_files_to(os.path.join(netperf_dir, i), "/tmp") |
try: |
- session.cmd(firewall_flush) |
+ session_serial.cmd(firewall_flush) |
except kvm_subprocess.ShellError: |
logging.warning("Could not flush firewall rules on guest") |
- session.cmd(setup_cmd % "/tmp", timeout=200) |
- session.cmd(params.get("netserver_cmd") % "/tmp") |
+ session_serial.cmd(setup_cmd % "/tmp", timeout=200) |
+ session_serial.cmd(params.get("netserver_cmd") % "/tmp") |
+ |
+ tcpdump = env.get("tcpdump") |
+ pid = None |
+ if tcpdump: |
+ # Stop the background tcpdump process |
+ try: |
+ pid = int(utils.system_output("pidof tcpdump")) |
+ logging.debug("Stopping the background tcpdump") |
+ os.kill(pid, signal.SIGSTOP) |
+ except: |
+ pass |
try: |
logging.info("Setup and run netperf client on host") |
@@ -69,5 +84,8 @@ def run_netperf(test, params, env): |
", ".join(list_fail)) |
finally: |
- session.cmd_output("killall netserver") |
- session.close() |
+ session_serial.cmd_output("killall netserver") |
+ if tcpdump and pid: |
+ logging.debug("Resuming the background tcpdump") |
+ logging.info("pid is %s" % pid) |
+ os.kill(pid, signal.SIGCONT) |