mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2026-01-15 17:51:07 +00:00
tests/tail:
* test_stdin_redirect_file:. Test fails now when assert_alive()!
The follow test `tail -f < file` where file's content is `foo` fails with:
Assertion failed. Expected 'tail' to be running but exited with status=exit status: 0
I also tried on the command line and can confirm that tail isn't runnning when following by
descriptor. The test is deactivated until the implementation is fixed.
* test_follow_stdin_descriptor
* test_follow_stdin_explicit_indefinitely.
* test_follow_single
* test_follow_non_utf8_bytes
* test_follow_multiple
* test_follow_name_multiple
* test_follow_invalid_pid
* test_single_big_args
* test_retry3
* test_retry4
* test_retry5
* test_retry7
* test_retry8
* test_retry9
* test_follow_descriptor_vs_rename1
* test_follow_descriptor_vs_rename2
* test_follow_name_retry_headers
* test_follow_name_remove
* test_follow_name_truncate1
* test_follow_name_truncate2
* test_follow_name_truncate3
* test_follow_name_truncate4
* test_follow_truncate_fast
* test_follow_name_move_create1
* test_follow_name_move_create2
* test_follow_name_move1
* test_follow_name_move2
* test_follow_name_move_retry1
* test_follow_name_move_retry2
* test_follow_inotify_only_regular
* test_fifo
* test_illegal_seek
tests/cat:
* test_dev_full
* test_dev_full_show_all
* test_dev_random
* test_fifo_symlink
tests/dd:
* test_random_73k_test_lazy_fullblock
* test_sync_delayed_reader
tests/factor:
* test_parallel
tests/rm:
* test_rm_force_prompts_order
* test_rm_descend_directory
* test_rm_prompts
tests/seq:
* the helper run method
tests/sort:
* test_sigpipe_panic
tests/tee:
* the helper run_tee method
tests/tty:
* test_tty module
tests/yes:
* the helper run method
85 lines
1.9 KiB
Rust
85 lines
1.9 KiB
Rust
use std::fs::File;
|
|
|
|
use crate::common::util::*;
|
|
|
|
#[test]
|
|
#[cfg(not(windows))]
|
|
fn test_dev_null() {
|
|
new_ucmd!()
|
|
.set_stdin(File::open("/dev/null").unwrap())
|
|
.fails()
|
|
.code_is(1)
|
|
.stdout_is("not a tty\n");
|
|
}
|
|
|
|
#[test]
|
|
#[cfg(not(windows))]
|
|
fn test_dev_null_silent() {
|
|
new_ucmd!()
|
|
.args(&["-s"])
|
|
.set_stdin(File::open("/dev/null").unwrap())
|
|
.fails()
|
|
.code_is(1)
|
|
.stdout_is("");
|
|
}
|
|
|
|
#[test]
|
|
fn test_close_stdin() {
|
|
let mut child = new_ucmd!().run_no_wait();
|
|
child.close_stdin();
|
|
child.wait().unwrap().code_is(1).stdout_is("not a tty\n");
|
|
}
|
|
|
|
#[test]
|
|
fn test_close_stdin_silent() {
|
|
let mut child = new_ucmd!().arg("-s").run_no_wait();
|
|
child.close_stdin();
|
|
child.wait().unwrap().code_is(1).no_stdout();
|
|
}
|
|
|
|
#[test]
|
|
fn test_close_stdin_silent_long() {
|
|
let mut child = new_ucmd!().arg("--silent").run_no_wait();
|
|
child.close_stdin();
|
|
child.wait().unwrap().code_is(1).no_stdout();
|
|
}
|
|
|
|
#[test]
|
|
fn test_close_stdin_silent_alias() {
|
|
let mut child = new_ucmd!().arg("--quiet").run_no_wait();
|
|
child.close_stdin();
|
|
child.wait().unwrap().code_is(1).no_stdout();
|
|
}
|
|
|
|
#[test]
|
|
fn test_wrong_argument() {
|
|
new_ucmd!().args(&["a"]).fails().code_is(2);
|
|
}
|
|
|
|
#[test]
|
|
fn test_help() {
|
|
new_ucmd!().args(&["--help"]).succeeds();
|
|
}
|
|
|
|
#[test]
|
|
// FixME: freebsd panic
|
|
#[cfg(all(unix, not(target_os = "freebsd")))]
|
|
fn test_stdout_fail() {
|
|
use std::process::{Command, Stdio};
|
|
let ts = TestScenario::new(util_name!());
|
|
// Sleep inside a shell to ensure the process doesn't finish before we've
|
|
// closed its stdout
|
|
let mut proc = Command::new("sh")
|
|
.arg("-c")
|
|
.arg(format!(
|
|
"sleep 0.2; exec {} {}",
|
|
ts.bin_path.to_str().unwrap(),
|
|
ts.util_name
|
|
))
|
|
.stdout(Stdio::piped())
|
|
.spawn()
|
|
.unwrap();
|
|
drop(proc.stdout.take());
|
|
let status = proc.wait().unwrap();
|
|
assert_eq!(status.code(), Some(3));
|
|
}
|