mirror of
https://github.com/cloud-hypervisor/cloud-hypervisor.git
synced 2025-02-01 17:35:19 +00:00
tests: Add case for multiple net devices for Windows guest
Signed-off-by: Anatol Belski <anbelski@linux.microsoft.com>
This commit is contained in:
parent
81ec47b283
commit
5e42e0f1f7
@ -6252,6 +6252,63 @@ mod tests {
|
||||
|
||||
handle_child_output(r, &output);
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(not(feature = "mshv"))]
|
||||
fn test_windows_guest_netdev_multi() {
|
||||
let windows_guest = WindowsGuest::new();
|
||||
|
||||
let mut ovmf_path = dirs::home_dir().unwrap();
|
||||
ovmf_path.push("workloads");
|
||||
ovmf_path.push(OVMF_NAME);
|
||||
|
||||
let tmp_dir = TempDir::new_with_prefix("/tmp/ch").unwrap();
|
||||
let api_socket = temp_api_path(&tmp_dir);
|
||||
|
||||
let mut child = GuestCommand::new(windows_guest.guest())
|
||||
.args(&["--api-socket", &api_socket])
|
||||
.args(&["--cpus", "boot=2,kvm_hyperv=on"])
|
||||
.args(&["--memory", "size=4G"])
|
||||
.args(&["--kernel", ovmf_path.to_str().unwrap()])
|
||||
.args(&["--serial", "tty"])
|
||||
.args(&["--console", "off"])
|
||||
.default_disks()
|
||||
// The multi net dev config is borrowed from test_multiple_network_interfaces
|
||||
.args(&[
|
||||
"--net",
|
||||
windows_guest.guest().default_net_string().as_str(),
|
||||
"tap=,mac=8a:6b:6f:5a:de:ac,ip=192.168.3.1,mask=255.255.255.0",
|
||||
"tap=mytap42,mac=fe:1f:9e:e1:60:f2,ip=192.168.4.1,mask=255.255.255.0",
|
||||
])
|
||||
.capture_output()
|
||||
.spawn()
|
||||
.unwrap();
|
||||
|
||||
let mut child_dnsmasq = windows_guest.run_dnsmasq();
|
||||
|
||||
let r = std::panic::catch_unwind(|| {
|
||||
// Wait to make sure Windows boots up
|
||||
assert!(windows_guest.wait_for_boot());
|
||||
|
||||
let netdev_num = 3;
|
||||
assert_eq!(windows_guest.netdev_count(), netdev_num);
|
||||
assert_eq!(netdev_ctrl_threads_count(child.id()), netdev_num);
|
||||
|
||||
let tap_count = exec_host_command_output("ip link | grep -c mytap42");
|
||||
assert_eq!(String::from_utf8_lossy(&tap_count.stdout).trim(), "1");
|
||||
|
||||
windows_guest.shutdown();
|
||||
});
|
||||
|
||||
let _ = child.wait_timeout(std::time::Duration::from_secs(60));
|
||||
let _ = child.kill();
|
||||
let output = child.wait_with_output().unwrap();
|
||||
|
||||
let _ = child_dnsmasq.kill();
|
||||
let _ = child_dnsmasq.wait();
|
||||
|
||||
handle_child_output(r, &output);
|
||||
}
|
||||
}
|
||||
|
||||
#[cfg(target_arch = "x86_64")]
|
||||
|
Loading…
x
Reference in New Issue
Block a user