diff options
Diffstat (limited to 'vendor/tokio/tests/process_raw_handle.rs')
-rw-r--r-- | vendor/tokio/tests/process_raw_handle.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/vendor/tokio/tests/process_raw_handle.rs b/vendor/tokio/tests/process_raw_handle.rs new file mode 100644 index 000000000..fbe22b07c --- /dev/null +++ b/vendor/tokio/tests/process_raw_handle.rs @@ -0,0 +1,23 @@ +#![warn(rust_2018_idioms)] +#![cfg(feature = "full")] +#![cfg(windows)] + +use tokio::process::Command; +use windows_sys::Win32::System::Threading::GetProcessId; + +#[tokio::test] +async fn obtain_raw_handle() { + let mut cmd = Command::new("cmd"); + cmd.kill_on_drop(true); + cmd.arg("/c"); + cmd.arg("pause"); + + let child = cmd.spawn().unwrap(); + + let orig_id = child.id().expect("missing id"); + assert!(orig_id > 0); + + let handle = child.raw_handle().expect("process stopped"); + let handled_id = unsafe { GetProcessId(handle as _) }; + assert_eq!(handled_id, orig_id); +} |