| Index: client/tests/kvm/tests/ethtool.py
 | 
| diff --git a/client/tests/kvm/tests/ethtool.py b/client/tests/kvm/tests/ethtool.py
 | 
| index 8951fcb3468e78e9cc45177876c7188c1644981f..56b1c70e70fbfb9c2e3d9afcaa9f9691ba5bc3ee 100644
 | 
| --- a/client/tests/kvm/tests/ethtool.py
 | 
| +++ b/client/tests/kvm/tests/ethtool.py
 | 
| @@ -1,7 +1,7 @@
 | 
|  import logging, commands, re
 | 
|  from autotest_lib.client.common_lib import error
 | 
|  from autotest_lib.client.bin import utils
 | 
| -import kvm_test_utils, kvm_utils, kvm_subprocess
 | 
| +import kvm_test_utils, kvm_utils
 | 
|  
 | 
|  def run_ethtool(test, params, env):
 | 
|      """
 | 
| @@ -32,7 +32,7 @@ def run_ethtool(test, params, env):
 | 
|              'gro': 'generic.*receive.*offload',
 | 
|              'lro': 'large.*receive.*offload',
 | 
|              }
 | 
| -        o = session.cmd("ethtool -k %s" % ethname)
 | 
| +        s, o = session.get_command_status_output("ethtool -k %s" % ethname)
 | 
|          try:
 | 
|              return re.findall("%s: (.*)" % feature_pattern.get(type), o)[0]
 | 
|          except IndexError:
 | 
| @@ -51,11 +51,7 @@ def run_ethtool(test, params, env):
 | 
|              return False
 | 
|          cmd = "ethtool -K %s %s %s" % (ethname, type, status)
 | 
|          if ethtool_get(type) != status:
 | 
| -            try:
 | 
| -                session.cmd(cmd)
 | 
| -                return True
 | 
| -            except:
 | 
| -                return False
 | 
| +            return session.get_command_status(cmd) == 0
 | 
|          if ethtool_get(type) != status:
 | 
|              logging.error("Fail to set %s %s" % (type, status))
 | 
|              return False
 | 
| @@ -78,7 +74,7 @@ def run_ethtool(test, params, env):
 | 
|          logging.info("Compare md5sum of the files on guest and host")
 | 
|          host_result = utils.hash_file(name, method="md5")
 | 
|          try:
 | 
| -            o = session.cmd_output("md5sum %s" % name)
 | 
| +            o = session.get_command_output("md5sum %s" % name)
 | 
|              guest_result = re.findall("\w+", o)[0]
 | 
|          except IndexError:
 | 
|              logging.error("Could not get file md5sum in guest")
 | 
| @@ -96,13 +92,13 @@ def run_ethtool(test, params, env):
 | 
|          @param src: Source host of transfer file
 | 
|          @return: Tuple (status, error msg/tcpdump result)
 | 
|          """
 | 
| -        session2.cmd_output("rm -rf %s" % filename)
 | 
| -        dd_cmd = ("dd if=/dev/urandom of=%s bs=1M count=%s" %
 | 
| -                  (filename, params.get("filesize")))
 | 
| +        session2.get_command_status("rm -rf %s" % filename)
 | 
| +        dd_cmd = "dd if=/dev/urandom of=%s bs=1M count=%s" % (filename,
 | 
| +                                                   params.get("filesize"))
 | 
|          logging.info("Creat file in source host, cmd: %s" % dd_cmd)
 | 
|          tcpdump_cmd = "tcpdump -lep -s 0 tcp -vv port ssh"
 | 
|          if src == "guest":
 | 
| -            session.cmd_output(dd_cmd, timeout=360)
 | 
| +            s = session.get_command_status(dd_cmd, timeout=360)
 | 
|              tcpdump_cmd += " and src %s" % guest_ip
 | 
|              copy_files_fun = vm.copy_files_from
 | 
|          else:
 | 
| @@ -119,18 +115,18 @@ def run_ethtool(test, params, env):
 | 
|              tcpdump_cmd += " and not port %s" % i
 | 
|          logging.debug("Listen by command: %s" % tcpdump_cmd)
 | 
|          session2.sendline(tcpdump_cmd)
 | 
| -        if not kvm_utils.wait_for(
 | 
| -                           lambda:session.cmd_status("pgrep tcpdump") == 0, 30):
 | 
| +        if not kvm_utils.wait_for(lambda: session.get_command_status(
 | 
| +                                           "pgrep tcpdump") == 0, 30):
 | 
|              return (False, "Tcpdump process wasn't launched")
 | 
|  
 | 
|          logging.info("Start to transfer file")
 | 
|          if not copy_files_fun(filename, filename):
 | 
|              return (False, "Child process transfer file failed")
 | 
|          logging.info("Transfer file completed")
 | 
| -        session.cmd("killall tcpdump")
 | 
| -        try:
 | 
| -            tcpdump_string = session2.read_up_to_prompt(timeout=60)
 | 
| -        except kvm_subprocess.ExpectError:
 | 
| +        if session.get_command_status("killall tcpdump") != 0:
 | 
| +            return (False, "Could not kill all tcpdump process")
 | 
| +        s, tcpdump_string = session2.read_up_to_prompt(timeout=60)
 | 
| +        if not s:
 | 
|              return (False, "Fail to read tcpdump's output")
 | 
|  
 | 
|          if not compare_md5sum(filename):
 | 
| @@ -177,7 +173,8 @@ def run_ethtool(test, params, env):
 | 
|      session = kvm_test_utils.wait_for_login(vm,
 | 
|                    timeout=int(params.get("login_timeout", 360)))
 | 
|      # Let's just error the test if we identify that there's no ethtool installed
 | 
| -    session.cmd("ethtool -h")
 | 
| +    if session.get_command_status("ethtool -h"):
 | 
| +        raise error.TestError("Command ethtool not installed on guest")
 | 
|      session2 = kvm_test_utils.wait_for_login(vm,
 | 
|                    timeout=int(params.get("login_timeout", 360)))
 | 
|      mtu = 1514
 | 
| 
 |