From cc85d896a541e01a118ebb713eb14c8628fdff56 Mon Sep 17 00:00:00 2001 From: Bo Chen Date: Tue, 9 Jun 2020 12:06:17 -0700 Subject: [PATCH] tests: Extend test_*_reboot with checks on fd leaking This revised version of the patch reuses the back-off strategy from 'ssh_command()' to deal with varying booting time. Fixes: #1209 Signed-off-by: Bo Chen --- tests/integration.rs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/tests/integration.rs b/tests/integration.rs index 32e5d697c..2a4cb382e 100644 --- a/tests/integration.rs +++ b/tests/integration.rs @@ -2951,6 +2951,10 @@ mod tests { }); } + fn get_fd_count(pid: u32) -> usize { + fs::read_dir(format!("/proc/{}/fd", pid)).unwrap().count() + } + #[cfg_attr(not(feature = "mmio"), test)] fn test_reboot() { test_block!(tb, "", { @@ -2985,6 +2989,7 @@ mod tests { .trim() .parse::() .unwrap_or(1); + let fd_count_1 = get_fd_count(child.id()); aver_eq!(tb, reboot_count, 0); guest.ssh_command("sudo reboot").unwrap_or_default(); @@ -2996,7 +3001,9 @@ mod tests { .trim() .parse::() .unwrap_or_default(); + let fd_count_2 = get_fd_count(child.id()); aver_eq!(tb, reboot_count, 1); + aver_eq!(tb, fd_count_1, fd_count_2); guest .ssh_command("sudo shutdown -h now") @@ -3041,6 +3048,7 @@ mod tests { .trim() .parse::() .unwrap_or(1); + let fd_count_1 = get_fd_count(child.id()); aver_eq!(tb, reboot_count, 0); guest.ssh_command("sudo reboot")?; @@ -3052,7 +3060,9 @@ mod tests { .trim() .parse::() .unwrap_or_default(); + let fd_count_2 = get_fd_count(child.id()); aver_eq!(tb, reboot_count, 1); + aver_eq!(tb, fd_count_1, fd_count_2); guest.ssh_command("sudo shutdown -h now")?; thread::sleep(std::time::Duration::new(20, 0));