diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2025-02-19 01:30:09 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-02-19 01:30:09 +0100 |
| commit | 616b6c35a5f29d43493ae5ba7abfb2369bcdfd2c (patch) | |
| tree | 8bc9adaca198eac9f748fb029a22f10083887720 | |
| parent | f44efbf9e11b1b6bba77c046d7dd150de37e0e0f (diff) | |
| parent | 0ffb771607ed2401bbe3d1d840f68d79aaea8c97 (diff) | |
| download | rust-616b6c35a5f29d43493ae5ba7abfb2369bcdfd2c.tar.gz rust-616b6c35a5f29d43493ae5ba7abfb2369bcdfd2c.zip | |
Rollup merge of #136936 - xingxue-ibm:sigpipe-test, r=workingjubilee
Use 'yes' instead of 'while-echo' in tests/ui/process/process-sigpipe.rs except 'nto' The `sh` of AIX prints a message about a broken pipe when using the `while-echo` command. It works as expected when using the `yes` command instead. `yes` was originally used in this test but was later replaced with `while-echo` because QNX Neutrino does not have `yes` ([Replace yes command by while-echo in test tests/ui/process/process-sigpipe.rs](https://github.com/rust-lang/rust/pull/109379)). This PR updates the test to use `while-echo` for QNX Neutrino while reverting to `yes` for other platforms.
| -rw-r--r-- | tests/ui/process/process-sigpipe.rs | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/tests/ui/process/process-sigpipe.rs b/tests/ui/process/process-sigpipe.rs index 453e53379fc..3ecf271599d 100644 --- a/tests/ui/process/process-sigpipe.rs +++ b/tests/ui/process/process-sigpipe.rs @@ -9,9 +9,9 @@ // Make sure that these behaviors don't get inherited to children // spawned via std::process, since they're needed for traditional UNIX // filter behavior. -// This test checks that `while echo y ; do : ; done | head` terminates -// (instead of running forever), and that it does not print an error -// message about a broken pipe. +// This test checks that `yes` or `while echo y ; do : ; done | head` +// terminates (instead of running forever), and that it does not print an +// error message about a broken pipe. //@ ignore-vxworks no 'sh' //@ ignore-fuchsia no 'sh' @@ -22,14 +22,21 @@ use std::process; use std::thread; fn main() { - // Just in case `yes` doesn't check for EPIPE... + // Just in case `yes` or `while-echo` doesn't check for EPIPE... thread::spawn(|| { thread::sleep_ms(5000); process::exit(1); }); + // QNX Neutrino does not have `yes`. Therefore, use `while-echo` for `nto` + // and `yes` for other platforms. + let command = if cfg!(target_os = "nto") { + "while echo y ; do : ; done | head" + } else { + "yes | head" + }; let output = process::Command::new("sh") .arg("-c") - .arg("while echo y ; do : ; done | head") + .arg(command) .output() .unwrap(); assert!(output.status.success()); |
