From 93d19329f9be17bf17ecf8dc733f55af78c6db0a Mon Sep 17 00:00:00 2001 From: Sebastien Boeuf Date: Tue, 28 Sep 2021 14:54:14 +0200 Subject: [PATCH] tests: Extend snapshot/restore test with virtio-mem Add virtio-mem plug/unplug testing to the existing snapshot/restore integration test. Signed-off-by: Sebastien Boeuf --- tests/integration.rs | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/tests/integration.rs b/tests/integration.rs index 7b8c654d7..2496d10ff 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -5015,7 +5015,10 @@ mod tests { let mut child = GuestCommand::new(&guest) .args(&["--api-socket", &api_socket]) .args(&["--cpus", "boot=4"]) - .args(&["--memory", "size=4G"]) + .args(&[ + "--memory", + "size=4G,hotplug_method=virtio-mem,hotplug_size=32G", + ]) .args(&["--balloon", "size=0"]) .args(&["--kernel", kernel_path.to_str().unwrap()]) .args(&[ @@ -5045,12 +5048,16 @@ mod tests { assert_eq!(guest.get_cpu_count().unwrap_or_default(), 4); // Check the guest RAM assert!(guest.get_total_memory().unwrap_or_default() > 3_840_000); + // Increase guest RAM with virtio-mem + resize_command(&api_socket, None, Some(6 << 30), None); + thread::sleep(std::time::Duration::new(5, 0)); + assert!(guest.get_total_memory().unwrap_or_default() > 5_760_000); // Use balloon to remove RAM from the VM resize_command(&api_socket, None, None, Some(1 << 30)); thread::sleep(std::time::Duration::new(5, 0)); let total_memory = guest.get_total_memory().unwrap_or_default(); - assert!(total_memory > 2_880_000); - assert!(total_memory < 3_840_000); + assert!(total_memory > 4_800_000); + assert!(total_memory < 5_760_000); // Check the guest virtio-devices, e.g. block, rng, vsock, console, and net guest.check_devices_common(Some(&socket), Some(&console_text)); @@ -5128,12 +5135,19 @@ mod tests { // Perform same checks to validate VM has been properly restored assert_eq!(guest.get_cpu_count().unwrap_or_default(), 4); let total_memory = guest.get_total_memory().unwrap_or_default(); - assert!(total_memory > 2_880_000); - assert!(total_memory < 3_840_000); + assert!(total_memory > 4_800_000); + assert!(total_memory < 5_760_000); // Deflate balloon to restore entire RAM to the VM resize_command(&api_socket, None, None, Some(0)); thread::sleep(std::time::Duration::new(5, 0)); - assert!(guest.get_total_memory().unwrap_or_default() > 3_840_000); + assert!(guest.get_total_memory().unwrap_or_default() > 5_760_000); + // Decrease guest RAM with virtio-mem + resize_command(&api_socket, None, Some(5 << 30), None); + thread::sleep(std::time::Duration::new(5, 0)); + let total_memory = guest.get_total_memory().unwrap_or_default(); + assert!(total_memory > 4_800_000); + assert!(total_memory < 5_760_000); + guest.check_devices_common(Some(&socket), Some(&console_text)); }); // Shutdown the target VM and check console output