Skip to content

Commit

Permalink
Installer test: add static DNS configuration test
Browse files Browse the repository at this point in the history
Driver installer supports restoring DNS configurations after driver
upgrade, so add a DNS checkpoint here.

Reference: The previous static IP configuration test was #3860
Signed-off-by: wji <wji@redhat.com>
  • Loading branch information
heywji committed Feb 27, 2024
1 parent 78e23fe commit 902a123
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion qemu/tests/win_virtio_driver_update_by_installer.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,10 @@ def run(test, params, env):
5) Install driver from previous virtio-win.iso.
Or virtio-win-guest-tool.
6) Start virtio fs service on guest.
7) Upgrade driver via virtio-win-guest-tools.exe
7) Check for ip and dns loss before and after upgrade driver
7.1) Set ip and dns
7.2) Upgrade driver via virtio-win-guest-tools.exe
7.3) Check ip and dns loss
8) Start virtio fs service on guest.
9) Verify the qemu-ga version match expected version.
10) Run driver signature check command in guest.
Expand All @@ -45,6 +48,15 @@ def change_virtio_media(cdrom_virtio):
test.log.info("Changing virtio iso image to '%s'", virtio_iso)
vm.change_media("drive_virtio", virtio_iso)

def check_dns_loss(session_serial):
static_dns_address = utils_net.get_windows_nic_attribute(
session_serial, global_switch="nicconfig",
key="MACAddress", value=f"{virtio_nic_mac}",
target="DNSServerSearchOrder")
static_dns_address = static_dns_address.strip('{}').strip('"')
if static_dns_address != params["static_dns"]:
test.fail("Static dns is lost after upgrade driver, current dns is %s" % static_dns_address)

devcon_path = params["devcon_path"]
installer_pkg_check_cmd = params["installer_pkg_check_cmd"]
run_install_cmd = params["run_install_cmd"]
Expand Down Expand Up @@ -96,6 +108,9 @@ def change_virtio_media(cdrom_virtio):
static_ip_address = utils_net.get_guest_ip_addr(session_serial, virtio_nic_mac, os_type='windows')
if static_ip_address != params["static_ip"]:
test.fail("Failed to setup static ip,current ip is %s" % static_ip_address)
setup_dns_cmd = params["setup_dns_cmd"] % ifname
session_serial.cmd_status(setup_dns_cmd)
check_dns_loss(session_serial)
session_serial.close()
else:
for driver_name, device_name, device_hwid in zip(
Expand Down Expand Up @@ -128,6 +143,7 @@ def change_virtio_media(cdrom_virtio):
static_ip_address = utils_net.get_guest_ip_addr(session_serial, virtio_nic_mac, os_type='windows')
if static_ip_address != params["static_ip"]:
test.fail("Static ip is lost after upgrade driver,current ip is %s" % static_ip_address)
check_dns_loss(session_serial)
session_serial.close()

# for some guests, need to reboot guest after drivers are updated
Expand Down

0 comments on commit 902a123

Please sign in to comment.