From 6389418fa67c8a1e8c5e332ed3545eaae1a1da75 Mon Sep 17 00:00:00 2001 From: Rob Bradford Date: Wed, 15 Apr 2020 18:17:51 +0100 Subject: [PATCH] tests: Enhance test_disk_hotplug to also unplug device Ensure that the device is removed and the removed device stays away after a reboot. Signed-off-by: Rob Bradford --- tests/integration.rs | 47 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/tests/integration.rs b/tests/integration.rs index e76f60bb3..09a99b6e9 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -3668,7 +3668,10 @@ mod tests { remote_command( &api_socket, "add-disk", - Some(&format!("path={}", blk_file_path.to_str().unwrap())) + Some(&format!( + "path={},id=test0", + blk_file_path.to_str().unwrap() + )) ) ); @@ -3707,6 +3710,48 @@ mod tests { 1 ); + aver!( + tb, + remote_command(&api_socket, "remove-device", Some("test0")) + ); + + thread::sleep(std::time::Duration::new(20, 0)); + + // Check device has gone away + aver_eq!( + tb, + guest + .ssh_command("lsblk | grep vdc | grep -c 16M") + .unwrap_or_default() + .trim() + .parse::() + .unwrap_or(1), + 0 + ); + + guest.ssh_command("sudo reboot").unwrap_or_default(); + + thread::sleep(std::time::Duration::new(20, 0)); + let reboot_count = guest + .ssh_command("sudo journalctl | grep -c -- \"-- Reboot --\"") + .unwrap_or_default() + .trim() + .parse::() + .unwrap_or_default(); + aver_eq!(tb, reboot_count, 2); + + // Check device still absent + aver_eq!( + tb, + guest + .ssh_command("lsblk | grep vdc | grep -c 16M") + .unwrap_or_default() + .trim() + .parse::() + .unwrap_or(1), + 0 + ); + let _ = child.kill(); let _ = child.wait(); Ok(())