|
1 | 1 | use crate::io::prelude::*;
|
2 | 2 |
|
3 |
| -use super::{Command, Output, Stdio}; |
| 3 | +use super::{Child, Command, Output, Stdio}; |
4 | 4 | use crate::io::{BorrowedBuf, ErrorKind};
|
5 | 5 | use crate::mem::MaybeUninit;
|
6 | 6 | use crate::str;
|
@@ -61,11 +61,13 @@ fn exit_reported_right() {
|
61 | 61 | fn signal_reported_right() {
|
62 | 62 | use crate::os::unix::process::ExitStatusExt;
|
63 | 63 |
|
64 |
| - let mut p = shell_cmd().arg("-c").arg("read a").stdin(Stdio::piped()).spawn().unwrap(); |
65 |
| - p.kill().unwrap(); |
66 |
| - match p.wait().unwrap().signal() { |
67 |
| - Some(9) => {} |
68 |
| - result => panic!("not terminated by signal 9 (instead, {result:?})"), |
| 64 | + for (kill, signal) in [Child::kill, Child::terminate].into_iter().zip([9, 15]) { |
| 65 | + let mut p = shell_cmd().arg("-c").arg("read a").stdin(Stdio::piped()).spawn().unwrap(); |
| 66 | + kill(&mut p).unwrap(); |
| 67 | + match p.wait().unwrap().signal() { |
| 68 | + Some(got) if got == signal => {} |
| 69 | + result => panic!("not terminated by signal {signal} (instead, {result:?})"), |
| 70 | + } |
69 | 71 | }
|
70 | 72 | }
|
71 | 73 |
|
@@ -715,15 +717,17 @@ fn run_canonical_bat_script() {
|
715 | 717 |
|
716 | 718 | #[test]
|
717 | 719 | fn terminate_exited_process() {
|
718 |
| - let mut cmd = if cfg!(target_os = "android") { |
719 |
| - let mut p = shell_cmd(); |
720 |
| - p.args(&["-c", "true"]); |
721 |
| - p |
722 |
| - } else { |
723 |
| - known_command() |
724 |
| - }; |
725 |
| - let mut p = cmd.stdout(Stdio::null()).spawn().unwrap(); |
726 |
| - p.wait().unwrap(); |
727 |
| - assert!(p.kill().is_ok()); |
728 |
| - assert!(p.kill().is_ok()); |
| 720 | + for kill in [Child::kill, Child::terminate] { |
| 721 | + let mut cmd = if cfg!(target_os = "android") { |
| 722 | + let mut p = shell_cmd(); |
| 723 | + p.args(&["-c", "true"]); |
| 724 | + p |
| 725 | + } else { |
| 726 | + known_command() |
| 727 | + }; |
| 728 | + let mut p = cmd.stdout(Stdio::null()).spawn().unwrap(); |
| 729 | + p.wait().unwrap(); |
| 730 | + assert!(kill(&mut p).is_ok()); |
| 731 | + assert!(kill(&mut p).is_ok()); |
| 732 | + } |
729 | 733 | }
|
0 commit comments