Skip to content

Commit

Permalink
Netkvm: Fix session handling issue during netkvm driver installation
Browse files Browse the repository at this point in the history
During acceptance testing, installing the netkvm driver on an existing
network interface caused session handling issues, leading to test
failures. This patch changes the session handling from SSH to serial
session by replacing vm.wait_for_login() with vm.wait_for_serial_login()
. It also adds a ping test to verify network connectivity after the
driver installation.

Signed-off-by: wji <[email protected]>
  • Loading branch information
heywji committed Sep 25, 2024
1 parent af63fc5 commit 217316a
Showing 1 changed file with 12 additions and 1 deletion.
13 changes: 12 additions & 1 deletion qemu/tests/single_driver_install.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

from virttest import error_context
from virttest import utils_misc
from virttest import utils_net
from virttest.utils_windows import virtio_win, wmic
from virttest.utils_test.qemu import windrv_verify_running

Expand Down Expand Up @@ -144,7 +145,8 @@ def run(test, params, env):
vm.destroy()
vm.create()
vm = env.get_vm(params["main_vm"])
session = vm.wait_for_login()
# This is a workaround for session logout issue
session = vm.wait_for_serial_login()
else:
session = vm.reboot(session)

Expand Down Expand Up @@ -172,6 +174,15 @@ def run(test, params, env):
if not utils_misc.wait_for(lambda: not session.cmd_status(chk_cmd),
600, 60, 10):
test.fail("Failed to install driver '%s'" % driver_name)
if device_name[0:30] == "Red Hat VirtIO Ethernet Adapte":
ext_host = utils_net.get_ip_address_by_interface(ifname="%s" % params.get("netdst"))
test.log.info("ext_host of netkvm adapte is %s" % ext_host)
guest_ip = vm.get_address("nic2")
test.log.info("guest_ip of netkvm adapte is %s" % guest_ip)
status, output = utils_net.ping(
ext_host, interface=guest_ip, count=10, timeout=60, session=session)
if status:
test.fail("Ping %s failed, output=%s" % (ext_host, output))

installed_any |= True
if not installed_any:
Expand Down

0 comments on commit 217316a

Please sign in to comment.