Use yes
except target_os = "nto".
This commit is contained in:
parent
3b022d8cee
commit
0ffb771607
1 changed files with 12 additions and 5 deletions
|
@ -9,9 +9,9 @@
|
||||||
// Make sure that these behaviors don't get inherited to children
|
// Make sure that these behaviors don't get inherited to children
|
||||||
// spawned via std::process, since they're needed for traditional UNIX
|
// spawned via std::process, since they're needed for traditional UNIX
|
||||||
// filter behavior.
|
// filter behavior.
|
||||||
// This test checks that `while echo y ; do : ; done | head` terminates
|
// This test checks that `yes` or `while echo y ; do : ; done | head`
|
||||||
// (instead of running forever), and that it does not print an error
|
// terminates (instead of running forever), and that it does not print an
|
||||||
// message about a broken pipe.
|
// error message about a broken pipe.
|
||||||
|
|
||||||
//@ ignore-vxworks no 'sh'
|
//@ ignore-vxworks no 'sh'
|
||||||
//@ ignore-fuchsia no 'sh'
|
//@ ignore-fuchsia no 'sh'
|
||||||
|
@ -22,14 +22,21 @@ use std::process;
|
||||||
use std::thread;
|
use std::thread;
|
||||||
|
|
||||||
fn main() {
|
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::spawn(|| {
|
||||||
thread::sleep_ms(5000);
|
thread::sleep_ms(5000);
|
||||||
process::exit(1);
|
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")
|
let output = process::Command::new("sh")
|
||||||
.arg("-c")
|
.arg("-c")
|
||||||
.arg("while echo y ; do : ; done | head")
|
.arg(command)
|
||||||
.output()
|
.output()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
assert!(output.status.success());
|
assert!(output.status.success());
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue