From 64afdd0879ede231f0b45c1813b4b83c3e8f5fd9 Mon Sep 17 00:00:00 2001 From: Jiahao XU Date: Wed, 15 Nov 2023 22:46:28 +1100 Subject: [PATCH] Add testing for `pidfd_reaper` Signed-off-by: Jiahao XU --- tokio/src/process/unix/pidfd_reaper.rs | 32 ++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/tokio/src/process/unix/pidfd_reaper.rs b/tokio/src/process/unix/pidfd_reaper.rs index 1aaf2352eec..4254cb341a2 100644 --- a/tokio/src/process/unix/pidfd_reaper.rs +++ b/tokio/src/process/unix/pidfd_reaper.rs @@ -172,3 +172,35 @@ where }); } } + +#[cfg(all(test, not(loom)))] +mod test { + use super::*; + use std::process::Command; + + #[crate::test] + async fn test_pidfd_reaper_poll() { + let child = Command::new("true").spawn().unwrap(); + let mut pidfd_reaper = PidfdReaper::new(child).unwrap(); + + let exit_status = pidfd_reaper.await.unwrap(); + assert!(exit_status.success()); + } + + #[crate::test] + async fn test_pidfd_reaper_kill() { + let child = Command::new("sleep").arg("1800").spawn().unwrap(); + let mut pidfd_reaper = PidfdReaper::new(child).unwrap(); + + pidfd_reaper.kill().unwrap(); + + let exit_status = pidfd_reaper.await.unwrap(); + assert!(!exit_status.success()); + } + + #[crate::test] + async fn test_pidfd_reaper_drop() { + let child = Command::new("true").spawn().unwrap(); + let mut pidfd_reaper = PidfdReaper::new(child).unwrap(); + } +}