mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-27 19:17:43 +00:00
188 lines
4.9 KiB
Rust
188 lines
4.9 KiB
Rust
// This file is part of the uutils coreutils package.
|
||
//
|
||
// For the full copyright and license information, please view the LICENSE
|
||
// file that was distributed with this source code.
|
||
// spell-checker:ignore roff
|
||
|
||
use uutests::new_ucmd;
|
||
|
||
#[test]
|
||
fn test_invalid_arg() {
|
||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_rightward_no_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_no_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_rightward_no_ref_empty_word_regexp() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-R", "-W", "", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_no_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_rightward_no_ref_word_regexp_exc_space() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-R", "-W", "[^\t\n]+", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_no_ref_word_regexp_exc_space.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_rightward_input_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-r", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_input_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_rightward_auto_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-A", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_auto_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_tex_no_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-T", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_tex_no_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_tex_input_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-T", "-r", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_tex_input_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_tex_auto_ref() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-T", "-A", "-R", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_tex_auto_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_ignore_and_only_file() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-o", "only", "-i", "ignore", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_ignore_and_only_file.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_output_width_50() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-w", "50", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_output_width_50.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_output_width_70() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-w", "70", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_output_width_70.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_break_file() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-b", "break_file", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_break_file.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn gnu_ext_disabled_empty_word_regexp_ignores_break_file() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-b", "break_file", "-R", "-W", "", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("gnu_ext_disabled_rightward_no_ref.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn test_reject_too_many_operands() {
|
||
new_ucmd!().args(&["-G", "-", "-", "-"]).fails_with_code(1);
|
||
}
|
||
|
||
#[test]
|
||
fn test_break_file_regex_escaping() {
|
||
new_ucmd!()
|
||
.pipe_in("\\.+*?()|[]{}^$#&-~")
|
||
.args(&["-G", "-b", "-", "input"])
|
||
.succeeds()
|
||
.stdout_only_fixture("break_file_regex_escaping.expected");
|
||
}
|
||
|
||
#[test]
|
||
fn test_ignore_case() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-f"])
|
||
.pipe_in("a _")
|
||
.succeeds()
|
||
.stdout_only(".xx \"\" \"\" \"a _\" \"\"\n.xx \"\" \"a\" \"_\" \"\"\n");
|
||
}
|
||
|
||
#[test]
|
||
fn test_format() {
|
||
new_ucmd!()
|
||
.args(&["-G", "-O"])
|
||
.pipe_in("a")
|
||
.succeeds()
|
||
.stdout_only(".xx \"\" \"\" \"a\" \"\"\n");
|
||
new_ucmd!()
|
||
.args(&["-G", "-T"])
|
||
.pipe_in("a")
|
||
.succeeds()
|
||
.stdout_only("\\xx {}{}{a}{}{}\n");
|
||
new_ucmd!()
|
||
.args(&["-G", "--format=roff"])
|
||
.pipe_in("a")
|
||
.succeeds()
|
||
.stdout_only(".xx \"\" \"\" \"a\" \"\"\n");
|
||
new_ucmd!()
|
||
.args(&["-G", "--format=tex"])
|
||
.pipe_in("a")
|
||
.succeeds()
|
||
.stdout_only("\\xx {}{}{a}{}{}\n");
|
||
}
|
||
|
||
#[cfg(target_os = "linux")]
|
||
#[test]
|
||
fn test_failed_write_is_reported() {
|
||
new_ucmd!()
|
||
.arg("-G")
|
||
.pipe_in("hello")
|
||
.set_stdout(std::fs::File::create("/dev/full").unwrap())
|
||
.fails()
|
||
.stderr_is("ptx: write failed: No space left on device\n");
|
||
}
|
||
|
||
#[test]
|
||
fn test_utf8() {
|
||
new_ucmd!()
|
||
.args(&["-G"])
|
||
.pipe_in("it’s disabled\n")
|
||
.succeeds()
|
||
.stdout_only(".xx \"\" \"it’s\" \"disabled\" \"\"\n.xx \"\" \"\" \"it’s disabled\" \"\"\n");
|
||
new_ucmd!()
|
||
.args(&["-G", "-T"])
|
||
.pipe_in("it’s disabled\n")
|
||
.succeeds()
|
||
.stdout_only("\\xx {}{it’s}{disabled}{}{}\n\\xx {}{}{it’s}{ disabled}{}\n");
|
||
}
|