| Index: client/tests/kvm/tests/nicdriver_unload.py
|
| diff --git a/client/tests/kvm/tests/nicdriver_unload.py b/client/tests/kvm/tests/nicdriver_unload.py
|
| index a515d6744b253c0e501f4addc6464d8e91160970..47318ba9c0193d5db8d48bde57167b4b91f98f5d 100644
|
| --- a/client/tests/kvm/tests/nicdriver_unload.py
|
| +++ b/client/tests/kvm/tests/nicdriver_unload.py
|
| @@ -20,12 +20,17 @@ def run_nicdriver_unload(test, params, env):
|
| timeout = int(params.get("login_timeout", 360))
|
| vm = kvm_test_utils.get_living_vm(env, params.get("main_vm"))
|
| session = kvm_test_utils.wait_for_login(vm, timeout=timeout)
|
| - session_serial = kvm_test_utils.wait_for_login(vm, 0, timeout, 0, 2,
|
| - serial=True)
|
| + logging.info("Trying to log into guest '%s' by serial", vm.name)
|
| + session2 = kvm_utils.wait_for(lambda: vm.serial_login(),
|
| + timeout, 0, step=2)
|
| + if not session2:
|
| + raise error.TestFail("Could not log into guest '%s'" % vm.name)
|
|
|
| ethname = kvm_test_utils.get_linux_ifname(session, vm.get_mac_address(0))
|
| sys_path = "/sys/class/net/%s/device/driver" % (ethname)
|
| - o = session.cmd("readlink -e %s" % sys_path)
|
| + s, o = session.get_command_status_output('readlink -e %s' % sys_path)
|
| + if s:
|
| + raise error.TestError("Could not find driver name")
|
| driver = os.path.basename(o.strip())
|
| logging.info("driver is %s", driver)
|
|
|
| @@ -40,8 +45,12 @@ def run_nicdriver_unload(test, params, env):
|
| logging.debug("Failed to transfer file %s", remote_file)
|
|
|
| def compare(origin_file, receive_file):
|
| + cmd = "md5sum %s"
|
| check_sum1 = utils.hash_file(origin_file, method="md5")
|
| - output2 = session.cmd("md5sum %s" % receive_file)
|
| + s, output2 = session.get_command_status_output(cmd % receive_file)
|
| + if s != 0:
|
| + logging.error("Could not get md5sum of receive_file")
|
| + return False
|
| check_sum2 = output2.strip().split()[0]
|
| logging.debug("original file md5: %s, received file md5: %s",
|
| check_sum1, check_sum2)
|
| @@ -68,11 +77,9 @@ def run_nicdriver_unload(test, params, env):
|
| logging.info("Unload/load NIC driver repeatedly in guest...")
|
| while True:
|
| logging.debug("Try to unload/load nic drive once")
|
| - try:
|
| - session_serial.cmd(unload_load_cmd, timeout=120)
|
| - except:
|
| - session.cmd_output("rm -rf /tmp/Thread-*")
|
| - raise
|
| + if session2.get_command_status(unload_load_cmd, timeout=120) != 0:
|
| + session.get_command_output("rm -rf /tmp/Thread-*")
|
| + raise error.TestFail("Unload/load nic driver failed")
|
| pid, s = os.waitpid(pid, os.WNOHANG)
|
| status = os.WEXITSTATUS(s)
|
| if (pid, status) != (0, 0):
|
| @@ -89,6 +96,7 @@ def run_nicdriver_unload(test, params, env):
|
| t.join(timeout = scp_timeout)
|
| os._exit(0)
|
|
|
| + session2.close()
|
|
|
| try:
|
| logging.info("Check MD5 hash for received files in multi-session")
|
| @@ -103,5 +111,5 @@ def run_nicdriver_unload(test, params, env):
|
| raise error.TestFail("Test nic function after load/unload fail")
|
|
|
| finally:
|
| - session.cmd_output("rm -rf /tmp/Thread-*")
|
| + session.get_command_output("rm -rf /tmp/Thread-*")
|
| session.close()
|
|
|