Skip to content

Commit 834624a

Browse files
vmm: add unit test for attach_net_devices
Signed-off-by: Andreea Florescu <[email protected]>
1 parent 1d5c768 commit 834624a

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed

vmm/src/lib.rs

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2172,6 +2172,40 @@ mod tests {
21722172
);
21732173
}
21742174

2175+
#[test]
2176+
fn test_attach_net_devices() {
2177+
let mut vmm = create_vmm_object(InstanceState::Uninitialized);
2178+
assert!(vmm.init_guest_memory().is_ok());
2179+
assert!(vmm.guest_memory.is_some());
2180+
2181+
vmm.default_kernel_config();
2182+
2183+
let guest_mem = vmm.guest_memory.clone().unwrap();
2184+
let mut device_manager =
2185+
MMIODeviceManager::new(guest_mem.clone(), x86_64::get_32bit_gap_start() as u64);
2186+
2187+
// test create network interface
2188+
let network_interface = NetworkInterfaceBody {
2189+
iface_id: String::from("netif"),
2190+
state: DeviceState::Attached,
2191+
host_dev_name: String::from("hostname3"),
2192+
guest_mac: None,
2193+
rx_rate_limiter: None,
2194+
tx_rate_limiter: None,
2195+
allow_mmds_requests: false,
2196+
};
2197+
2198+
match vmm.put_net_device(network_interface) {
2199+
Ok(outcome) => assert!(outcome == SyncOkStatus::Created),
2200+
Err(_) => assert!(false),
2201+
}
2202+
2203+
assert!(vmm.attach_net_devices(&mut device_manager).is_ok());
2204+
// a second call to attach_net_devices should fail because when
2205+
// we are creating the virtio::Net object, we are taking the tap.
2206+
assert!(vmm.attach_net_devices(&mut device_manager).is_err());
2207+
}
2208+
21752209
#[test]
21762210
fn test_rescan() {
21772211
let mut vmm = create_vmm_object(InstanceState::Uninitialized);

0 commit comments

Comments
 (0)