fn waitid_w_nohang_then_kill()

in reverie-ptrace/src/trace/waitid.rs [266:291]


    fn waitid_w_nohang_then_kill() {
        let fork_result = unsafe { unistd::fork() };
        assert!(fork_result.is_ok());
        match fork_result.unwrap() {
            ForkResult::Parent { child, .. } => {
                assert_eq!(
                    waitid(
                        IdType::Pid(child),
                        WaitPidFlag::WEXITED | WaitPidFlag::WNOHANG
                    ),
                    Ok(WaitStatus::StillAlive),
                );
                assert!(nix::sys::signal::kill(child, Signal::SIGINT).is_ok());
                assert_eq!(
                    waitid(IdType::Pid(child), WaitPidFlag::WEXITED),
                    Ok(WaitStatus::Signaled(child, Signal::SIGINT, false))
                );
            }
            ForkResult::Child => {
                let one_sec = std::time::Duration::from_millis(100);
                loop {
                    std::thread::sleep(one_sec);
                }
            }
        }
    }