mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 03:27:44 +00:00
Merge pull request #7371 from sylvestre/use-new-function
use the new function fails_with_code
This commit is contained in:
commit
0936cee9d5
90 changed files with 448 additions and 732 deletions
|
@ -19,5 +19,5 @@ fn test_arch_help() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
|
|
@ -192,14 +192,13 @@ fn test_simple_format() {
|
|||
new_ucmd!().args(&["a-z", "-z"]).succeeds().stdout_is("a\n");
|
||||
new_ucmd!()
|
||||
.args(&["a", "b", "c"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("extra operand 'c'");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -615,8 +615,7 @@ fn test_write_to_self() {
|
|||
.arg("first_file")
|
||||
.arg("first_file")
|
||||
.arg("second_file")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("cat: first_file: input file is output file\ncat: first_file: input file is output file\n");
|
||||
|
||||
assert_eq!(
|
||||
|
|
|
@ -14,7 +14,7 @@ fn test_invalid_option() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
static DIR: &str = "/dev";
|
||||
|
|
|
@ -266,8 +266,7 @@ fn test_chmod_error_permissions() {
|
|||
|
||||
ucmd.args(&["-w", "file"])
|
||||
.umask(0o022)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is(
|
||||
// spell-checker:disable-next-line
|
||||
"chmod: file: new permissions are r-xrwxrwx, not r-xr-xr-x\n",
|
||||
|
@ -442,9 +441,8 @@ fn test_chmod_non_existing_file_silent() {
|
|||
.arg("--quiet")
|
||||
.arg("-r,a+w")
|
||||
.arg("does-not-exist")
|
||||
.fails()
|
||||
.no_stderr()
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.no_stderr();
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -454,7 +452,7 @@ fn test_chmod_preserve_root() {
|
|||
.arg("--preserve-root")
|
||||
.arg("755")
|
||||
.arg("/")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("chmod: it is dangerous to operate recursively on '/'");
|
||||
}
|
||||
|
||||
|
@ -478,8 +476,7 @@ fn test_chmod_symlink_non_existing_file() {
|
|||
.arg("755")
|
||||
.arg("-v")
|
||||
.arg(test_symlink)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_contains(expected_stdout)
|
||||
.stderr_contains(expected_stderr);
|
||||
|
||||
|
@ -585,14 +582,13 @@ fn test_chmod_keep_setgid() {
|
|||
fn test_no_operands() {
|
||||
new_ucmd!()
|
||||
.arg("777")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.usage_error("missing operand");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -624,9 +620,8 @@ fn test_chmod_file_after_non_existing_file() {
|
|||
.arg("u+x")
|
||||
.arg("does-not-exist")
|
||||
.arg(TEST_FILE)
|
||||
.fails()
|
||||
.stderr_contains("chmod: cannot access 'does-not-exist': No such file or directory")
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("chmod: cannot access 'does-not-exist': No such file or directory");
|
||||
|
||||
assert_eq!(at.metadata(TEST_FILE).permissions().mode(), 0o100_764);
|
||||
|
||||
|
@ -636,9 +631,8 @@ fn test_chmod_file_after_non_existing_file() {
|
|||
.arg("--q")
|
||||
.arg("does-not-exist")
|
||||
.arg("file2")
|
||||
.fails()
|
||||
.no_stderr()
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.no_stderr();
|
||||
assert_eq!(at.metadata("file2").permissions().mode(), 0o100_764);
|
||||
}
|
||||
|
||||
|
@ -669,8 +663,7 @@ fn test_chmod_file_symlink_after_non_existing_file() {
|
|||
.arg("-v")
|
||||
.arg(test_dangling_symlink)
|
||||
.arg(test_existing_symlink)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_contains(expected_stdout)
|
||||
.stderr_contains(expected_stderr);
|
||||
assert_eq!(
|
||||
|
|
|
@ -81,7 +81,7 @@ fn test_invalid_option() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -10,14 +10,12 @@ use crate::common::util::{run_ucmd_as_root, TestScenario};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(125);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_missing_operand() {
|
||||
let result = new_ucmd!().fails();
|
||||
|
||||
result.code_is(125);
|
||||
let result = new_ucmd!().fails_with_code(125);
|
||||
|
||||
assert!(result
|
||||
.stderr_str()
|
||||
|
@ -34,8 +32,7 @@ fn test_enter_chroot_fails() {
|
|||
|
||||
at.mkdir("jail");
|
||||
|
||||
let result = ucmd.arg("jail").fails();
|
||||
result.code_is(125);
|
||||
let result = ucmd.arg("jail").fails_with_code(125);
|
||||
assert!(result
|
||||
.stderr_str()
|
||||
.starts_with("chroot: cannot chroot to 'jail': Operation not permitted (os error 1)"));
|
||||
|
@ -48,9 +45,8 @@ fn test_no_such_directory() {
|
|||
at.touch(at.plus_as_string("a"));
|
||||
|
||||
ucmd.arg("a")
|
||||
.fails()
|
||||
.stderr_is("chroot: cannot change root directory to 'a': no such directory\n")
|
||||
.code_is(125);
|
||||
.fails_with_code(125)
|
||||
.stderr_is("chroot: cannot change root directory to 'a': no such directory\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -160,9 +156,7 @@ fn test_preference_of_userspec() {
|
|||
.arg("--groups")
|
||||
.arg("ABC,DEF")
|
||||
.arg(format!("--userspec={username}:{group_name}"))
|
||||
.fails();
|
||||
|
||||
result.code_is(125);
|
||||
.fails_with_code(125);
|
||||
|
||||
println!("result.stdout = {}", result.stdout_str());
|
||||
println!("result.stderr = {}", result.stderr_str());
|
||||
|
@ -216,9 +210,8 @@ fn test_chroot_skip_chdir_not_root() {
|
|||
|
||||
ucmd.arg("--skip-chdir")
|
||||
.arg(dir)
|
||||
.fails()
|
||||
.stderr_contains("chroot: option --skip-chdir only permitted if NEWROOT is old '/'")
|
||||
.code_is(125);
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("chroot: option --skip-chdir only permitted if NEWROOT is old '/'");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -12,7 +12,7 @@ const ALGOS: [&str; 11] = [
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -75,7 +75,7 @@ fn test_nonexisting_file() {
|
|||
|
||||
new_ucmd!()
|
||||
.arg(file_name)
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains(format!("cksum: {file_name}: No such file or directory"));
|
||||
}
|
||||
|
@ -301,32 +301,28 @@ fn test_check_algo() {
|
|||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}");
|
||||
new_ucmd!()
|
||||
.arg("-a=sysv")
|
||||
.arg("--check")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}");
|
||||
new_ucmd!()
|
||||
.arg("-a=crc")
|
||||
.arg("--check")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}");
|
||||
new_ucmd!()
|
||||
.arg("-a=crc32b")
|
||||
.arg("--check")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --check is not supported with --algorithm={bsd,sysv,crc,crc32b}");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -335,20 +331,18 @@ fn test_length_with_wrong_algorithm() {
|
|||
.arg("--length=16")
|
||||
.arg("--algorithm=md5")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --length is only supported with --algorithm=blake2b")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --length is only supported with --algorithm=blake2b");
|
||||
|
||||
new_ucmd!()
|
||||
.arg("--length=16")
|
||||
.arg("--algorithm=md5")
|
||||
.arg("-c")
|
||||
.arg("foo.sums")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: --length is only supported with --algorithm=blake2b")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: --length is only supported with --algorithm=blake2b");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -356,10 +350,9 @@ fn test_length_not_supported() {
|
|||
new_ucmd!()
|
||||
.arg("--length=15")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("--length is only supported with --algorithm=blake2b")
|
||||
.code_is(1);
|
||||
.stderr_contains("--length is only supported with --algorithm=blake2b");
|
||||
|
||||
new_ucmd!()
|
||||
.arg("-l")
|
||||
|
@ -368,10 +361,9 @@ fn test_length_not_supported() {
|
|||
.arg("-a")
|
||||
.arg("crc")
|
||||
.arg("/tmp/xxx")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("--length is only supported with --algorithm=blake2b")
|
||||
.code_is(1);
|
||||
.stderr_contains("--length is only supported with --algorithm=blake2b");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -394,7 +386,7 @@ fn test_length_greater_than_512() {
|
|||
.arg("--algorithm=blake2b")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.arg("alice_in_wonderland.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is_fixture("length_larger_than_512.expected");
|
||||
}
|
||||
|
@ -443,10 +435,9 @@ fn test_raw_multiple_files() {
|
|||
.arg("--raw")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.arg("alice_in_wonderland.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: the --raw option is not supported with multiple files")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: the --raw option is not supported with multiple files");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -455,7 +446,7 @@ fn test_base64_raw_conflicts() {
|
|||
.arg("--base64")
|
||||
.arg("--raw")
|
||||
.arg("lorem_ipsum.txt")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("--base64")
|
||||
.stderr_contains("cannot be used with")
|
||||
|
@ -749,12 +740,11 @@ fn test_conflicting_options() {
|
|||
.arg("--binary")
|
||||
.arg("--check")
|
||||
.arg("f")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains(
|
||||
"cksum: the --binary and --text options are meaningless when verifying checksums",
|
||||
)
|
||||
.code_is(1);
|
||||
);
|
||||
|
||||
scene
|
||||
.ucmd()
|
||||
|
@ -762,12 +752,11 @@ fn test_conflicting_options() {
|
|||
.arg("-c")
|
||||
.arg("-a")
|
||||
.arg("md5")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains(
|
||||
"cksum: the --binary and --text options are meaningless when verifying checksums",
|
||||
)
|
||||
.code_is(1);
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -784,10 +773,9 @@ fn test_check_algo_err() {
|
|||
.arg("sm3")
|
||||
.arg("--check")
|
||||
.arg("f")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: f: no properly formatted checksum lines found")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: f: no properly formatted checksum lines found");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -803,10 +791,9 @@ fn test_check_pipe() {
|
|||
.arg("--check")
|
||||
.arg("-")
|
||||
.pipe_in("f")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_contains("cksum: 'standard input': no properly formatted checksum lines found")
|
||||
.code_is(1);
|
||||
.stderr_contains("cksum: 'standard input': no properly formatted checksum lines found");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -459,8 +459,7 @@ fn test_sorted() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["comm1", "comm2"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("1\n\t\t3\n\t2\n")
|
||||
.stderr_is(expected_stderr);
|
||||
}
|
||||
|
@ -477,8 +476,7 @@ fn test_sorted_check_order() {
|
|||
.ucmd()
|
||||
.arg("--check-order")
|
||||
.args(&["comm1", "comm2"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("1\n\t\t3\n")
|
||||
.stderr_is(expected_stderr);
|
||||
}
|
||||
|
@ -493,8 +491,7 @@ fn test_both_inputs_out_of_order() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["file_a", "file_b"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("\t\t3\n1\n0\n\t2\n\t0\n")
|
||||
.stderr_is(
|
||||
"comm: file 1 is not in sorted order\n\
|
||||
|
@ -513,8 +510,7 @@ fn test_both_inputs_out_of_order_last_pair() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["file_a", "file_b"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("\t\t3\n1\n\t2\n")
|
||||
.stderr_is(
|
||||
"comm: file 1 is not in sorted order\n\
|
||||
|
@ -533,8 +529,7 @@ fn test_first_input_out_of_order_extended() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["file_a", "file_b"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("0\n\t2\n\t\t3\n1\n")
|
||||
.stderr_is(
|
||||
"comm: file 1 is not in sorted order\n\
|
||||
|
|
|
@ -185,8 +185,7 @@ fn test_cp_same_file() {
|
|||
|
||||
ucmd.arg(file)
|
||||
.arg(file)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("'{file}' and '{file}' are the same file"));
|
||||
}
|
||||
|
||||
|
@ -664,8 +663,7 @@ fn test_cp_arg_interactive_update_overwrite_older() {
|
|||
at.touch("a");
|
||||
ucmd.args(&["-i", "-u", "a", "b"])
|
||||
.pipe_in("N\n")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("cp: overwrite 'b'? ");
|
||||
|
||||
|
@ -1720,8 +1718,7 @@ fn test_cp_preserve_invalid_rejected() {
|
|||
.arg("--preserve=invalid-value")
|
||||
.arg(TEST_COPY_FROM_FOLDER_FILE)
|
||||
.arg(TEST_HELLO_WORLD_DEST)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
|
@ -3465,8 +3462,7 @@ fn test_copy_dir_preserve_permissions_inaccessible_file() {
|
|||
// | | | |
|
||||
// V V V V
|
||||
ucmd.args(&["-p", "-R", "d1", "d2"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("cp: cannot open 'd1/f' for reading: permission denied\n");
|
||||
assert!(at.dir_exists("d2"));
|
||||
assert!(!at.file_exists("d2/f"));
|
||||
|
@ -5979,16 +5975,14 @@ fn test_cp_with_options_backup_and_rem_when_dest_is_symlink() {
|
|||
fn test_cp_single_file() {
|
||||
let (_at, mut ucmd) = at_and_ucmd!();
|
||||
ucmd.arg(TEST_HELLO_WORLD_SOURCE)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("missing destination file");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_cp_no_file() {
|
||||
let (_at, mut ucmd) = at_and_ucmd!();
|
||||
ucmd.fails()
|
||||
.code_is(1)
|
||||
ucmd.fails_with_code(1)
|
||||
.stderr_contains("error: the following required arguments were not provided:");
|
||||
}
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ fn generate(from: u32, to: u32) -> String {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -1467,12 +1467,10 @@ fn test_directory_input_file() {
|
|||
|
||||
#[cfg(unix)]
|
||||
ucmd.args(&["test_directory", "1"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("csplit: read error: Is a directory\n");
|
||||
#[cfg(windows)]
|
||||
ucmd.args(&["test_directory", "1"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("csplit: cannot open 'test_directory' for reading: Permission denied\n");
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ fn test_no_args() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -107,24 +107,21 @@ fn test_whitespace_delimited() {
|
|||
fn test_whitespace_with_explicit_delimiter() {
|
||||
new_ucmd!()
|
||||
.args(&["-w", "-f", COMPLEX_SEQUENCE.sequence, "-d:"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_whitespace_with_byte() {
|
||||
new_ucmd!()
|
||||
.args(&["-w", "-b", COMPLEX_SEQUENCE.sequence])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_whitespace_with_char() {
|
||||
new_ucmd!()
|
||||
.args(&["-c", COMPLEX_SEQUENCE.sequence, "-w"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -132,9 +129,9 @@ fn test_delimiter_with_byte_and_char() {
|
|||
for conflicting_arg in ["-c", "-b"] {
|
||||
new_ucmd!()
|
||||
.args(&[conflicting_arg, COMPLEX_SEQUENCE.sequence, "-d="])
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_is("cut: invalid input: The '--delimiter' ('-d') option only usable if printing a sequence of fields\n")
|
||||
.code_is(1);
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -142,8 +139,7 @@ fn test_delimiter_with_byte_and_char() {
|
|||
fn test_too_large() {
|
||||
new_ucmd!()
|
||||
.args(&["-b1-18446744073709551615", "/dev/null"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -240,8 +236,7 @@ fn test_is_a_directory() {
|
|||
|
||||
ucmd.arg("-b1")
|
||||
.arg("some")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("cut: some: Is a directory\n");
|
||||
}
|
||||
|
||||
|
@ -250,8 +245,7 @@ fn test_no_such_file() {
|
|||
new_ucmd!()
|
||||
.arg("-b1")
|
||||
.arg("some")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("cut: some: No such file or directory\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@ use uucore::process::geteuid;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -214,9 +214,8 @@ fn test_date_format_without_plus() {
|
|||
// [+FORMAT]
|
||||
new_ucmd!()
|
||||
.arg("%s")
|
||||
.fails()
|
||||
.stderr_contains("date: invalid date '%s'")
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("date: invalid date '%s'");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -99,7 +99,7 @@ fn build_ascii_block(n: usize) -> Vec<u8> {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
// Sanity Tests
|
||||
|
@ -1563,8 +1563,7 @@ fn test_nocache_stdin_error() {
|
|||
let detail = "Invalid seek";
|
||||
new_ucmd!()
|
||||
.args(&["iflag=nocache", "count=0", "status=noxfer"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("dd: failed to discard cache for: 'standard input': {detail}\n0+0 records in\n0+0 records out\n"));
|
||||
}
|
||||
|
||||
|
@ -1573,8 +1572,7 @@ fn test_nocache_stdin_error() {
|
|||
fn test_empty_count_number() {
|
||||
new_ucmd!()
|
||||
.args(&["count=B"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("dd: invalid number: ‘B’\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -16,7 +16,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -9,7 +9,7 @@ use dircolors::{guess_syntax, OutputFmt, StrUtils};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -77,7 +77,7 @@ fn du_basics(s: &str) {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -132,20 +132,17 @@ fn test_du_invalid_size() {
|
|||
ts.ucmd()
|
||||
.arg(format!("--{s}=1fb4t"))
|
||||
.arg("/tmp")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("du: invalid suffix in --{s} argument '1fb4t'\n"));
|
||||
ts.ucmd()
|
||||
.arg(format!("--{s}=x"))
|
||||
.arg("/tmp")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("du: invalid --{s} argument 'x'\n"));
|
||||
ts.ucmd()
|
||||
.arg(format!("--{s}=1Y"))
|
||||
.arg("/tmp")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("du: --{s} argument '1Y' too large\n"));
|
||||
}
|
||||
}
|
||||
|
@ -1019,7 +1016,7 @@ fn test_du_symlink_fail() {
|
|||
|
||||
at.symlink_file("non-existing.txt", "target.txt");
|
||||
|
||||
ts.ucmd().arg("-L").arg("target.txt").fails().code_is(1);
|
||||
ts.ucmd().arg("-L").arg("target.txt").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[cfg(not(windows))]
|
||||
|
@ -1086,8 +1083,7 @@ fn test_du_files0_from_with_invalid_zero_length_file_names() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg("--files0-from=filelist")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_contains("testfile")
|
||||
.stderr_contains("filelist:1: invalid zero-length file name")
|
||||
.stderr_contains("filelist:3: invalid zero-length file name");
|
||||
|
@ -1133,8 +1129,7 @@ fn test_du_files0_from_stdin_with_invalid_zero_length_file_names() {
|
|||
new_ucmd!()
|
||||
.arg("--files0-from=-")
|
||||
.pipe_in("\0\0")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("-:1: invalid zero-length file name")
|
||||
.stderr_contains("-:2: invalid zero-length file name");
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@ impl Drop for Target {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(125);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -84,8 +84,7 @@ fn test_env_version() {
|
|||
fn test_env_permissions() {
|
||||
new_ucmd!()
|
||||
.arg(".")
|
||||
.fails()
|
||||
.code_is(126)
|
||||
.fails_with_code(126)
|
||||
.stderr_is("env: '.': Permission denied\n");
|
||||
}
|
||||
|
||||
|
@ -537,106 +536,91 @@ fn test_env_parsing_errors() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg("-S\\|echo hallo") // no quotes, invalid escape sequence |
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\|' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg("-S\\a") // no quotes, invalid escape sequence a
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\a' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg("-S\"\\a\"") // double quotes, invalid escape sequence a
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\a' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r#"-S"\a""#) // same as before, just using r#""#
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\a' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg("-S'\\a'") // single quotes, invalid escape sequence a
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\a' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S\|\&\;") // no quotes, invalid escape sequence |
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\|' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S\<\&\;") // no quotes, invalid escape sequence <
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\<' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S\>\&\;") // no quotes, invalid escape sequence >
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\>' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S\`\&\;") // no quotes, invalid escape sequence `
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r#"-S"\`\&\;""#) // double quotes, invalid escape sequence `
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S'\`\&\;'") // single quotes, invalid escape sequence `
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S\`") // ` escaped without quotes
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r#"-S"\`""#) // ` escaped in double quotes
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.arg(r"-S'\`'") // ` escaped in single quotes
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\`' in -S\n");
|
||||
|
||||
ts.ucmd()
|
||||
.args(&[r"-S\🦉"]) // ` escaped in single quotes
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.no_stdout()
|
||||
.stderr_is("env: invalid sequence '\\\u{FFFD}' in -S\n"); // gnu doesn't show the owl. Instead a invalid unicode ?
|
||||
}
|
||||
|
@ -647,8 +631,7 @@ fn test_env_with_empty_executable_single_quotes() {
|
|||
|
||||
ts.ucmd()
|
||||
.args(&["-S''"]) // empty single quotes, considered as program name
|
||||
.fails()
|
||||
.code_is(127)
|
||||
.fails_with_code(127)
|
||||
.no_stdout()
|
||||
.stderr_is("env: '': No such file or directory\n"); // gnu version again adds escaping here
|
||||
}
|
||||
|
@ -659,8 +642,7 @@ fn test_env_with_empty_executable_double_quotes() {
|
|||
|
||||
ts.ucmd()
|
||||
.args(&["-S\"\""]) // empty double quotes, considered as program name
|
||||
.fails()
|
||||
.code_is(127)
|
||||
.fails_with_code(127)
|
||||
.no_stdout()
|
||||
.stderr_is("env: '': No such file or directory\n");
|
||||
}
|
||||
|
@ -801,23 +783,19 @@ fn test_env_arg_ignore_signal_invalid_signals() {
|
|||
let ts = TestScenario::new(util_name!());
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=banana"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: 'banana': invalid signal");
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=SIGbanana"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: 'SIGbanana': invalid signal");
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=exit"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: 'exit': invalid signal");
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=SIGexit"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: 'SIGexit': invalid signal");
|
||||
}
|
||||
|
||||
|
@ -829,32 +807,28 @@ fn test_env_arg_ignore_signal_special_signals() {
|
|||
let signal_kill = nix::sys::signal::SIGKILL;
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=stop", "echo", "hello"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains(format!(
|
||||
"env: failed to set signal action for signal {}: Invalid argument",
|
||||
signal_stop as i32
|
||||
));
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=kill", "echo", "hello"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains(format!(
|
||||
"env: failed to set signal action for signal {}: Invalid argument",
|
||||
signal_kill as i32
|
||||
));
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=SToP", "echo", "hello"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains(format!(
|
||||
"env: failed to set signal action for signal {}: Invalid argument",
|
||||
signal_stop as i32
|
||||
));
|
||||
ts.ucmd()
|
||||
.args(&["--ignore-signal=SIGKILL", "echo", "hello"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains(format!(
|
||||
"env: failed to set signal action for signal {}: Invalid argument",
|
||||
signal_kill as i32
|
||||
|
@ -898,19 +872,16 @@ fn disallow_equals_sign_on_short_unset_option() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg("-u=")
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: cannot unset '=': Invalid argument");
|
||||
ts.ucmd()
|
||||
.arg("-u=A1B2C3")
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: cannot unset '=A1B2C3': Invalid argument");
|
||||
ts.ucmd().arg("--split-string=A1B=2C3=").succeeds();
|
||||
ts.ucmd()
|
||||
.arg("--unset=")
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("env: cannot unset '': Invalid argument");
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ use uucore::display::Quotable;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -9,29 +9,25 @@ use crate::common::util::TestScenario;
|
|||
#[test]
|
||||
fn test_no_arguments() {
|
||||
new_ucmd!()
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.usage_error("missing operand");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_simple_values() {
|
||||
// null or 0 => EXIT_VALUE == 1
|
||||
new_ucmd!().args(&[""]).fails().code_is(1).stdout_only("\n");
|
||||
new_ucmd!().args(&[""]).fails_with_code(1).stdout_only("\n");
|
||||
new_ucmd!()
|
||||
.args(&["0"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("0\n");
|
||||
new_ucmd!()
|
||||
.args(&["00"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("00\n");
|
||||
new_ucmd!()
|
||||
.args(&["-0"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("-0\n");
|
||||
|
||||
// non-null and non-0 => EXIT_VALUE = 0
|
||||
|
@ -47,8 +43,7 @@ fn test_simple_arithmetic() {
|
|||
|
||||
new_ucmd!()
|
||||
.args(&["1", "-", "1"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("0\n");
|
||||
|
||||
new_ucmd!()
|
||||
|
@ -111,8 +106,7 @@ fn test_parenthesis() {
|
|||
|
||||
new_ucmd!()
|
||||
.args(&["1", "(", ")"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("expr: syntax error: unexpected argument '('\n");
|
||||
}
|
||||
|
||||
|
@ -208,8 +202,7 @@ fn test_and() {
|
|||
fn test_index() {
|
||||
new_ucmd!()
|
||||
.args(&["index", "αbcdef", "x"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("0\n");
|
||||
new_ucmd!()
|
||||
.args(&["index", "αbcdef", "α"])
|
||||
|
@ -238,8 +231,7 @@ fn test_index() {
|
|||
|
||||
new_ucmd!()
|
||||
.args(&["αbcdef", "index", "α"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("expr: syntax error: unexpected argument 'index'\n");
|
||||
}
|
||||
|
||||
|
@ -257,8 +249,7 @@ fn test_length() {
|
|||
|
||||
new_ucmd!()
|
||||
.args(&["abcdef", "length"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("expr: syntax error: unexpected argument 'length'\n");
|
||||
}
|
||||
|
||||
|
@ -304,8 +295,7 @@ fn test_substr() {
|
|||
|
||||
new_ucmd!()
|
||||
.args(&["abc", "substr", "1", "1"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("expr: syntax error: unexpected argument 'substr'\n");
|
||||
}
|
||||
|
||||
|
@ -313,20 +303,17 @@ fn test_substr() {
|
|||
fn test_invalid_substr() {
|
||||
new_ucmd!()
|
||||
.args(&["substr", "abc", "0", "1"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("\n");
|
||||
|
||||
new_ucmd!()
|
||||
.args(&["substr", "abc", &(usize::MAX.to_string() + "0"), "1"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("\n");
|
||||
|
||||
new_ucmd!()
|
||||
.args(&["substr", "abc", "0", &(usize::MAX.to_string() + "0")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_only("\n");
|
||||
}
|
||||
|
||||
|
@ -357,8 +344,7 @@ fn test_invalid_syntax() {
|
|||
for invalid_syntax in invalid_syntaxes {
|
||||
new_ucmd!()
|
||||
.args(&invalid_syntax)
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("syntax error");
|
||||
}
|
||||
}
|
||||
|
|
|
@ -22,7 +22,7 @@ const NUM_TESTS: usize = 100;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,12 +6,12 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_input() {
|
||||
new_ucmd!().arg(".").fails().code_is(1);
|
||||
new_ucmd!().arg(".").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -50,8 +50,7 @@ fn test_fmt_width() {
|
|||
fn test_fmt_width_invalid() {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", "-w", "apple"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("fmt: invalid width: 'apple'\n");
|
||||
// an invalid width can be successfully overwritten later:
|
||||
|
@ -86,8 +85,7 @@ fn test_fmt_width_too_big() {
|
|||
for param in ["-w", "--width"] {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", param, "2501"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("fmt: invalid width: '2501': Numerical result out of range\n");
|
||||
}
|
||||
// However, as a temporary value it is okay:
|
||||
|
@ -102,8 +100,7 @@ fn test_fmt_invalid_width() {
|
|||
for param in ["-w", "--width"] {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", param, "invalid"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("invalid width: 'invalid'");
|
||||
}
|
||||
}
|
||||
|
@ -112,8 +109,7 @@ fn test_fmt_invalid_width() {
|
|||
fn test_fmt_positional_width_not_first() {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", "-10"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("fmt: invalid option -- 1; -WIDTH is recognized only when it is the first\noption; use -w N instead");
|
||||
}
|
||||
|
||||
|
@ -121,8 +117,7 @@ fn test_fmt_positional_width_not_first() {
|
|||
fn test_fmt_width_not_valid_number() {
|
||||
new_ucmd!()
|
||||
.args(&["-25x", "one-word-per-line.txt"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("fmt: invalid width: '25x'");
|
||||
}
|
||||
|
||||
|
@ -146,8 +141,7 @@ fn test_fmt_goal_too_big() {
|
|||
for param in ["-g", "--goal"] {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", "--width=75", param, "76"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("fmt: GOAL cannot be greater than WIDTH.\n");
|
||||
}
|
||||
}
|
||||
|
@ -157,8 +151,7 @@ fn test_fmt_goal_bigger_than_default_width_of_75() {
|
|||
for param in ["-g", "--goal"] {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", param, "76"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("fmt: GOAL cannot be greater than WIDTH.\n");
|
||||
}
|
||||
}
|
||||
|
@ -190,8 +183,7 @@ fn test_fmt_goal_too_small_to_check_negative_minlength() {
|
|||
fn test_fmt_non_existent_file() {
|
||||
new_ucmd!()
|
||||
.args(&["non-existing"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("fmt: cannot open 'non-existing' for reading: No such file or directory\n");
|
||||
}
|
||||
|
||||
|
@ -200,8 +192,7 @@ fn test_fmt_invalid_goal() {
|
|||
for param in ["-g", "--goal"] {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", param, "invalid"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
// GNU complains about "invalid width", which is confusing.
|
||||
// We intentionally deviate from GNU, and show a more helpful message:
|
||||
.stderr_contains("invalid goal: 'invalid'");
|
||||
|
@ -220,14 +211,12 @@ fn test_fmt_invalid_goal_override() {
|
|||
fn test_fmt_invalid_goal_width_priority() {
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", "-g", "apple", "-w", "banana"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("fmt: invalid width: 'banana'\n");
|
||||
new_ucmd!()
|
||||
.args(&["one-word-per-line.txt", "-w", "banana", "-g", "apple"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("fmt: invalid width: 'banana'\n");
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -12,7 +12,7 @@ const VERSION_MIN_MULTIPLE_USERS: &str = "8.31"; // this feature was introduced
|
|||
#[test]
|
||||
#[cfg(unix)]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -228,8 +228,7 @@ fn test_invalid_b2sum_length_option_not_multiple_of_8() {
|
|||
.ccmd("b2sum")
|
||||
.arg("--length=9")
|
||||
.arg(at.subdir.join("testf"))
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -243,8 +242,7 @@ fn test_invalid_b2sum_length_option_too_large() {
|
|||
.ccmd("b2sum")
|
||||
.arg("--length=513")
|
||||
.arg(at.subdir.join("testf"))
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -473,13 +471,12 @@ fn test_check_md5sum_mixed_format() {
|
|||
.arg("--strict")
|
||||
.arg("-c")
|
||||
.arg("check.md5sum")
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -488,14 +485,12 @@ fn test_conflicting_arg() {
|
|||
.arg("--tag")
|
||||
.arg("--check")
|
||||
.arg("--md5")
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
new_ucmd!()
|
||||
.arg("--tag")
|
||||
.arg("--text")
|
||||
.arg("--md5")
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -20,7 +20,7 @@ static INPUT: &str = "lorem_ipsum.txt";
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -15,7 +15,6 @@ fn test_normal() {
|
|||
fn test_invalid_flag() {
|
||||
new_ucmd!()
|
||||
.arg("--invalid-argument")
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
|
|
|
@ -35,5 +35,5 @@ fn test_hostname_full() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
|
|
@ -11,7 +11,7 @@ const VERSION_MIN_MULTIPLE_USERS: &str = "8.31"; // this feature was introduced
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -17,7 +17,7 @@ use uucore::process::{getegid, geteuid};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -490,8 +490,7 @@ fn test_install_failing_omitting_directory() {
|
|||
.arg(file1)
|
||||
.arg(dir1)
|
||||
.arg(dir3)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("omitting directory");
|
||||
assert!(at.file_exists(format!("{dir3}/{file1}")));
|
||||
|
||||
|
@ -500,8 +499,7 @@ fn test_install_failing_omitting_directory() {
|
|||
.ucmd()
|
||||
.arg(dir1)
|
||||
.arg(dir3)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("omitting directory");
|
||||
}
|
||||
|
||||
|
@ -518,8 +516,7 @@ fn test_install_failing_no_such_file() {
|
|||
ucmd.arg(file1)
|
||||
.arg(file2)
|
||||
.arg(dir1)
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("No such file or directory");
|
||||
}
|
||||
|
||||
|
@ -1391,8 +1388,7 @@ fn test_install_missing_arguments() {
|
|||
|
||||
scene
|
||||
.ucmd()
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.usage_error("missing file operand");
|
||||
|
||||
scene
|
||||
|
@ -1630,14 +1626,12 @@ fn test_install_compare_option() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-C", "--preserve-timestamps", first, second])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Options --compare and --preserve-timestamps are mutually exclusive");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-C", "--strip", "--strip-program=echo", first, second])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Options --compare and --strip are mutually exclusive");
|
||||
}
|
||||
|
||||
|
|
|
@ -14,7 +14,7 @@ use std::{ffi::OsString, os::windows::ffi::OsStringExt};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -51,7 +51,7 @@ impl Drop for Target {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[cfg(not(target_os = "android"))]
|
||||
|
|
|
@ -9,7 +9,7 @@ use std::path::PathBuf;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -776,8 +776,7 @@ fn test_symlink_remove_existing_same_src_and_dest() {
|
|||
at.touch("a");
|
||||
at.write("a", "sample");
|
||||
ucmd.args(&["-sf", "a", "a"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("'a' and 'a' are the same file");
|
||||
assert!(at.file_exists("a") && !at.symlink_exists("a"));
|
||||
assert_eq!(at.read("a"), "sample");
|
||||
|
|
|
@ -7,7 +7,7 @@ use std::env;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -57,9 +57,8 @@ const COLUMN_ARGS: &[&str] = &["-C", "--format=columns", "--for=columns"];
|
|||
fn test_invalid_flag() {
|
||||
new_ucmd!()
|
||||
.arg("--invalid-argument")
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(2);
|
||||
.fails_with_code(2)
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -77,9 +76,8 @@ fn test_invalid_value_returns_1() {
|
|||
] {
|
||||
new_ucmd!()
|
||||
.arg(format!("{flag}=definitely_invalid_value"))
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -89,9 +87,8 @@ fn test_invalid_value_returns_2() {
|
|||
for flag in ["--block-size", "--width", "--tab-size"] {
|
||||
new_ucmd!()
|
||||
.arg(format!("{flag}=definitely_invalid_value"))
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(2);
|
||||
.fails_with_code(2)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -107,9 +104,8 @@ fn test_invalid_value_time_style() {
|
|||
new_ucmd!()
|
||||
.arg("-g")
|
||||
.arg("--time-style=definitely_invalid_value")
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(2);
|
||||
.fails_with_code(2)
|
||||
.no_stdout();
|
||||
// If it only looks temporarily like it might be used, no error:
|
||||
new_ucmd!()
|
||||
.arg("-l")
|
||||
|
@ -505,8 +501,7 @@ fn test_ls_io_errors() {
|
|||
.ucmd()
|
||||
.arg("-1")
|
||||
.arg("some-dir1")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("cannot open directory")
|
||||
.stderr_contains("Permission denied");
|
||||
|
||||
|
@ -514,8 +509,7 @@ fn test_ls_io_errors() {
|
|||
.ucmd()
|
||||
.arg("-Li")
|
||||
.arg("some-dir2")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("cannot access")
|
||||
.stderr_contains("No such file or directory")
|
||||
.stdout_contains(if cfg!(windows) { "dangle" } else { "? dangle" });
|
||||
|
@ -530,8 +524,7 @@ fn test_ls_io_errors() {
|
|||
.ucmd()
|
||||
.arg("-laR")
|
||||
.arg("some-dir3")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("some-dir4")
|
||||
.stderr_contains("cannot open directory")
|
||||
.stderr_contains("Permission denied")
|
||||
|
@ -1980,8 +1973,7 @@ fn test_ls_styles() {
|
|||
.ucmd()
|
||||
.arg("-l")
|
||||
.arg("--time-style=invalid")
|
||||
.fails()
|
||||
.code_is(2);
|
||||
.fails_with_code(2);
|
||||
|
||||
//Overwrite options tests
|
||||
scene
|
||||
|
@ -4075,14 +4067,12 @@ fn test_ls_dangling_symlinks() {
|
|||
.ucmd()
|
||||
.arg("-L")
|
||||
.arg("temp_dir/dangle")
|
||||
.fails()
|
||||
.code_is(2);
|
||||
.fails_with_code(2);
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-H")
|
||||
.arg("temp_dir/dangle")
|
||||
.fails()
|
||||
.code_is(2);
|
||||
.fails_with_code(2);
|
||||
|
||||
scene
|
||||
.ucmd()
|
||||
|
@ -4094,8 +4084,7 @@ fn test_ls_dangling_symlinks() {
|
|||
.ucmd()
|
||||
.arg("-Li")
|
||||
.arg("temp_dir")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("cannot access")
|
||||
.stderr_contains("No such file or directory")
|
||||
.stdout_contains(if cfg!(windows) { "dangle" } else { "? dangle" });
|
||||
|
@ -4104,8 +4093,7 @@ fn test_ls_dangling_symlinks() {
|
|||
.ucmd()
|
||||
.arg("-LZ")
|
||||
.arg("temp_dir")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("cannot access")
|
||||
.stderr_contains("No such file or directory")
|
||||
.stdout_contains(if cfg!(windows) { "dangle" } else { "? dangle" });
|
||||
|
@ -4114,8 +4102,7 @@ fn test_ls_dangling_symlinks() {
|
|||
.ucmd()
|
||||
.arg("-Ll")
|
||||
.arg("temp_dir")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_contains("l?????????");
|
||||
|
||||
#[cfg(unix)]
|
||||
|
@ -4308,8 +4295,7 @@ fn test_ls_dereference_looped_symlinks_recursive() {
|
|||
at.relative_symlink_dir("../loop", "loop/sub");
|
||||
|
||||
ucmd.args(&["-RL", "loop"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("not listing already-listed directory");
|
||||
}
|
||||
|
||||
|
@ -4322,8 +4308,7 @@ fn test_dereference_dangling_color() {
|
|||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
at.relative_symlink_file("wat", "nonexistent");
|
||||
ucmd.args(&["-L", "--color"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("No such file or directory")
|
||||
.stdout_is(out_exp);
|
||||
}
|
||||
|
@ -4458,8 +4443,7 @@ fn test_ls_perm_io_errors() {
|
|||
.ucmd()
|
||||
.arg("-l")
|
||||
.arg("d")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Permission denied");
|
||||
}
|
||||
|
||||
|
@ -4537,8 +4521,7 @@ fn test_ls_dired_and_zero_are_incompatible() {
|
|||
.arg("--dired")
|
||||
.arg("-l")
|
||||
.arg("--zero")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("--dired and --zero are incompatible");
|
||||
}
|
||||
|
||||
|
@ -4917,8 +4900,7 @@ fn test_posixly_correct_and_block_size_env_vars_with_k() {
|
|||
fn test_ls_invalid_block_size() {
|
||||
new_ucmd!()
|
||||
.arg("--block-size=invalid")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.no_stdout()
|
||||
.stderr_is("ls: invalid --block-size argument 'invalid'\n");
|
||||
}
|
||||
|
|
|
@ -15,14 +15,13 @@ use std::os::unix::fs::PermissionsExt;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_no_arg() {
|
||||
new_ucmd!()
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("error: the following required arguments were not provided:");
|
||||
}
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
#[test]
|
||||
#[cfg(not(windows))]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[cfg(not(windows))]
|
||||
|
@ -80,15 +80,13 @@ fn test_mknod_character_device_requires_major_and_minor() {
|
|||
new_ucmd!()
|
||||
.arg("test_file")
|
||||
.arg("c")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Special files require major and minor device numbers.");
|
||||
new_ucmd!()
|
||||
.arg("test_file")
|
||||
.arg("c")
|
||||
.arg("1")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Special files require major and minor device numbers.");
|
||||
new_ucmd!()
|
||||
.arg("test_file")
|
||||
|
|
|
@ -644,8 +644,7 @@ fn test_too_few_xs_suffix_directory() {
|
|||
fn test_too_many_arguments() {
|
||||
new_ucmd!()
|
||||
.args(&["-q", "a", "b"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.usage_error("too many templates");
|
||||
}
|
||||
|
||||
|
|
|
@ -11,7 +11,7 @@ use std::io::Write;
|
|||
|
||||
#[test]
|
||||
fn test_mv_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -68,7 +68,7 @@ fn test_command_where_command_takes_n_flag() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_argument() {
|
||||
new_ucmd!().arg("--invalid").fails().code_is(125);
|
||||
new_ucmd!().arg("--invalid").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -13,7 +13,7 @@ use std::thread::sleep;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(125);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -58,8 +58,7 @@ fn test_from_iec_i() {
|
|||
fn test_from_iec_i_requires_suffix() {
|
||||
new_ucmd!()
|
||||
.args(&["--from=iec-i", "10M"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_is("numfmt: missing 'i' suffix in input: '10M' (e.g Ki/Mi/Gi)\n");
|
||||
}
|
||||
|
||||
|
@ -257,8 +256,7 @@ fn test_suffixes() {
|
|||
} else {
|
||||
new_ucmd!()
|
||||
.args(&args)
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only(format!("numfmt: invalid suffix in input: '1{c}'\n"));
|
||||
}
|
||||
}
|
||||
|
@ -683,7 +681,7 @@ fn test_suffix_with_padding() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_stdin_number_returns_status_2() {
|
||||
new_ucmd!().pipe_in("hello").fails().code_is(2);
|
||||
new_ucmd!().pipe_in("hello").fails_with_code(2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -691,9 +689,8 @@ fn test_invalid_stdin_number_in_middle_of_input() {
|
|||
new_ucmd!()
|
||||
.pipe_in("100\nhello\n200")
|
||||
.ignore_stdin_write_error()
|
||||
.fails()
|
||||
.stdout_is("100\n")
|
||||
.code_is(2);
|
||||
.fails_with_code(2)
|
||||
.stdout_is("100\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -720,8 +717,7 @@ fn test_invalid_stdin_number_with_abort_returns_status_2() {
|
|||
new_ucmd!()
|
||||
.args(&["--invalid=abort"])
|
||||
.pipe_in("4Q")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("numfmt: invalid suffix in input: '4Q'\n");
|
||||
}
|
||||
|
||||
|
@ -730,8 +726,7 @@ fn test_invalid_stdin_number_with_fail_returns_status_2() {
|
|||
new_ucmd!()
|
||||
.args(&["--invalid=fail"])
|
||||
.pipe_in("4Q")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stdout_is("4Q\n")
|
||||
.stderr_is("numfmt: invalid suffix in input: '4Q'\n");
|
||||
}
|
||||
|
@ -757,8 +752,7 @@ fn test_invalid_arg_number_with_ignore_returns_status_0() {
|
|||
fn test_invalid_arg_number_with_abort_returns_status_2() {
|
||||
new_ucmd!()
|
||||
.args(&["--invalid=abort", "4Q"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("numfmt: invalid suffix in input: '4Q'\n");
|
||||
}
|
||||
|
||||
|
@ -766,8 +760,7 @@ fn test_invalid_arg_number_with_abort_returns_status_2() {
|
|||
fn test_invalid_arg_number_with_fail_returns_status_2() {
|
||||
new_ucmd!()
|
||||
.args(&["--invalid=fail", "4Q"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stdout_is("4Q\n")
|
||||
.stderr_is("numfmt: invalid suffix in input: '4Q'\n");
|
||||
}
|
||||
|
@ -778,8 +771,7 @@ fn test_invalid_argument_returns_status_1() {
|
|||
.args(&["--header=hello"])
|
||||
.pipe_in("53478")
|
||||
.ignore_stdin_write_error()
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -790,8 +782,7 @@ fn test_invalid_padding_value() {
|
|||
new_ucmd!()
|
||||
.arg(format!("--padding={padding_value}"))
|
||||
.arg("5")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("invalid padding value '{padding_value}'"));
|
||||
}
|
||||
}
|
||||
|
@ -821,8 +812,7 @@ fn test_invalid_unit_size() {
|
|||
for invalid_size in &invalid_sizes {
|
||||
new_ucmd!()
|
||||
.arg(format!("--{command}-unit={invalid_size}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("invalid unit size: '{invalid_size}'"));
|
||||
}
|
||||
}
|
||||
|
@ -835,8 +825,7 @@ fn test_valid_but_forbidden_suffix() {
|
|||
for number in numbers {
|
||||
new_ucmd!()
|
||||
.arg(number)
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains(format!(
|
||||
"rejecting suffix in input: '{number}' (consider using --from)"
|
||||
));
|
||||
|
@ -1011,8 +1000,7 @@ fn test_format_without_percentage_directive() {
|
|||
for invalid_format in invalid_formats {
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("format '{invalid_format}' has no % directive"));
|
||||
}
|
||||
}
|
||||
|
@ -1023,8 +1011,7 @@ fn test_format_with_percentage_directive_at_end() {
|
|||
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("format '{invalid_format}' ends in %"));
|
||||
}
|
||||
|
||||
|
@ -1034,8 +1021,7 @@ fn test_format_with_too_many_percentage_directives() {
|
|||
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!(
|
||||
"format '{invalid_format}' has too many % directives"
|
||||
));
|
||||
|
@ -1048,8 +1034,7 @@ fn test_format_with_invalid_format() {
|
|||
for invalid_format in invalid_formats {
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!(
|
||||
"invalid format '{invalid_format}', directive must be %[0]['][-][N][.][N]f"
|
||||
));
|
||||
|
@ -1061,8 +1046,7 @@ fn test_format_with_width_overflow() {
|
|||
let invalid_format = "%18446744073709551616f";
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!(
|
||||
"invalid format '{invalid_format}' (width overflow)"
|
||||
));
|
||||
|
@ -1075,8 +1059,7 @@ fn test_format_with_invalid_precision() {
|
|||
for invalid_format in invalid_formats {
|
||||
new_ucmd!()
|
||||
.arg(format!("--format={invalid_format}"))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(format!("invalid precision in format '{invalid_format}'"));
|
||||
}
|
||||
}
|
||||
|
@ -1085,7 +1068,6 @@ fn test_format_with_invalid_precision() {
|
|||
fn test_format_grouping_conflicts_with_to_option() {
|
||||
new_ucmd!()
|
||||
.args(&["--format=%'f", "--to=si"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("grouping cannot be combined with --to");
|
||||
}
|
||||
|
|
|
@ -17,7 +17,7 @@ static ALPHA_OUT: &str = "
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
// Test that od can read one file and dump with default format
|
||||
|
@ -868,15 +868,13 @@ fn test_od_invalid_bytes() {
|
|||
new_ucmd!()
|
||||
.arg(format!("{option}={INVALID_SIZE}"))
|
||||
.arg("file")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("od: invalid {option} argument '{INVALID_SIZE}'\n"));
|
||||
|
||||
new_ucmd!()
|
||||
.arg(format!("{option}={INVALID_SUFFIX}"))
|
||||
.arg("file")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!(
|
||||
"od: invalid suffix in {option} argument '{INVALID_SUFFIX}'\n"
|
||||
));
|
||||
|
@ -884,8 +882,7 @@ fn test_od_invalid_bytes() {
|
|||
new_ucmd!()
|
||||
.arg(format!("{option}={BIG_SIZE}"))
|
||||
.arg("file")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only(format!("od: {option} argument '{BIG_SIZE}' too large\n"));
|
||||
}
|
||||
}
|
||||
|
|
|
@ -137,7 +137,7 @@ const EXAMPLE_DATA: &[TestData] = &[
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -14,7 +14,7 @@ fn test_no_args() {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -13,7 +13,7 @@ use uucore::entries::{Locate, Passwd};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -47,9 +47,8 @@ fn valid_last_modified_template_vars(from: DateTime<Utc>) -> Vec<Vec<(String, St
|
|||
fn test_invalid_flag() {
|
||||
new_ucmd!()
|
||||
.arg("--invalid-argument")
|
||||
.fails()
|
||||
.no_stdout()
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -50,8 +50,7 @@ fn escaped_hex() {
|
|||
fn test_missing_escaped_hex_value() {
|
||||
new_ucmd!()
|
||||
.arg(r"\x")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("printf: missing hexadecimal number in escape\n");
|
||||
}
|
||||
|
||||
|
@ -289,8 +288,7 @@ fn sub_num_hex_upper() {
|
|||
fn sub_num_hex_non_numerical() {
|
||||
new_ucmd!()
|
||||
.args(&["parameters need to be numbers %X", "%194"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -640,8 +638,7 @@ fn sub_general_round_float_leading_zeroes() {
|
|||
fn partial_float() {
|
||||
new_ucmd!()
|
||||
.args(&["%.2f is %s", "42.03x", "a lot"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("42.03 is a lot")
|
||||
.stderr_is("printf: '42.03x': value not completely converted\n");
|
||||
}
|
||||
|
@ -650,8 +647,7 @@ fn partial_float() {
|
|||
fn partial_integer() {
|
||||
new_ucmd!()
|
||||
.args(&["%d is %s", "42x23", "a lot"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("42 is a lot")
|
||||
.stderr_is("printf: '42x23': value not completely converted\n");
|
||||
}
|
||||
|
@ -660,8 +656,7 @@ fn partial_integer() {
|
|||
fn test_overflow() {
|
||||
new_ucmd!()
|
||||
.args(&["%d", "36893488147419103232"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("printf: '36893488147419103232': Numerical result out of range\n");
|
||||
}
|
||||
|
||||
|
@ -669,8 +664,7 @@ fn test_overflow() {
|
|||
fn partial_char() {
|
||||
new_ucmd!()
|
||||
.args(&["%d", "'abc"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("97")
|
||||
.stderr_is(
|
||||
"printf: warning: bc: character(s) following character constant have been ignored\n",
|
||||
|
@ -805,13 +799,13 @@ fn pad_string() {
|
|||
#[test]
|
||||
fn format_spec_zero_char_fails() {
|
||||
// It is invalid to have the format spec '%0c'
|
||||
new_ucmd!().args(&["%0c", "3"]).fails().code_is(1);
|
||||
new_ucmd!().args(&["%0c", "3"]).fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn format_spec_zero_string_fails() {
|
||||
// It is invalid to have the format spec '%0s'
|
||||
new_ucmd!().args(&["%0s", "3"]).fails().code_is(1);
|
||||
new_ucmd!().args(&["%0s", "3"]).fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::common::util::{TestScenario, UCommand};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -14,7 +14,7 @@ static NOT_A_DIRECTORY: &str = "The directory name is invalid.";
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -91,8 +91,7 @@ fn test_symlink_to_itself_verbose() {
|
|||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
at.relative_symlink_file("a", "a");
|
||||
ucmd.args(&["-ev", "a"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("Too many levels of symbolic links");
|
||||
}
|
||||
|
||||
|
@ -104,8 +103,7 @@ fn test_trailing_slash_regular_file() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-ev", "./regfile/"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(NOT_A_DIRECTORY)
|
||||
.no_stdout();
|
||||
scene
|
||||
|
@ -124,8 +122,7 @@ fn test_trailing_slash_symlink_to_regular_file() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-ev", "./link/"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(NOT_A_DIRECTORY)
|
||||
.no_stdout();
|
||||
scene
|
||||
|
@ -136,8 +133,7 @@ fn test_trailing_slash_symlink_to_regular_file() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-e", "./link/more"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
|
@ -171,8 +167,7 @@ fn test_trailing_slash_symlink_to_directory() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-ev", "./link/more"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("No such file or directory")
|
||||
.no_stdout();
|
||||
}
|
||||
|
@ -197,8 +192,7 @@ fn test_trailing_slash_symlink_to_missing() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-ev", query])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("No such file or directory")
|
||||
.no_stdout();
|
||||
}
|
||||
|
@ -219,22 +213,19 @@ fn test_canonicalize_trailing_slash_regfile() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-fv", &format!("./{name}/")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(NOT_A_DIRECTORY)
|
||||
.no_stdout();
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-fv", &format!("{name}/more")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(NOT_A_DIRECTORY)
|
||||
.no_stdout();
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-fv", &format!("./{name}/more/")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains(NOT_A_DIRECTORY)
|
||||
.no_stdout();
|
||||
}
|
||||
|
@ -270,14 +261,12 @@ fn test_canonicalize_trailing_slash_subdir() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", &format!("{name}/more/more2")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", &format!("./{name}/more/more2/")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
@ -301,14 +290,12 @@ fn test_canonicalize_trailing_slash_missing() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", &format!("{name}/more")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", &format!("./{name}/more/")])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
@ -330,8 +317,7 @@ fn test_canonicalize_trailing_slash_subdir_missing() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", query])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
@ -345,8 +331,7 @@ fn test_canonicalize_trailing_slash_symlink_loop() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-f", query])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_stdout();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -277,8 +277,7 @@ fn test_relative_existing_require_directories() {
|
|||
at.mkdir("dir1");
|
||||
at.touch("dir1/f");
|
||||
ucmd.args(&["-e", "--relative-base=.", "--relative-to=dir1/f", "."])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("directory");
|
||||
}
|
||||
|
||||
|
@ -384,7 +383,7 @@ fn test_realpath_trailing_slash() {
|
|||
.arg("link_file")
|
||||
.succeeds()
|
||||
.stdout_contains(format!("{}file\n", std::path::MAIN_SEPARATOR));
|
||||
scene.ucmd().arg("link_file/").fails().code_is(1);
|
||||
scene.ucmd().arg("link_file/").fails_with_code(1);
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("link_dir")
|
||||
|
@ -410,7 +409,7 @@ fn test_realpath_trailing_slash() {
|
|||
.args(&["-e", "link_file"])
|
||||
.succeeds()
|
||||
.stdout_contains(format!("{}file\n", std::path::MAIN_SEPARATOR));
|
||||
scene.ucmd().args(&["-e", "link_file/"]).fails().code_is(1);
|
||||
scene.ucmd().args(&["-e", "link_file/"]).fails_with_code(1);
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-e", "link_dir"])
|
||||
|
@ -421,12 +420,11 @@ fn test_realpath_trailing_slash() {
|
|||
.args(&["-e", "link_dir/"])
|
||||
.succeeds()
|
||||
.stdout_contains(format!("{}dir\n", std::path::MAIN_SEPARATOR));
|
||||
scene.ucmd().args(&["-e", "link_no_dir"]).fails().code_is(1);
|
||||
scene.ucmd().args(&["-e", "link_no_dir"]).fails_with_code(1);
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-e", "link_no_dir/"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-m", "link_file"])
|
||||
|
@ -461,5 +459,5 @@ fn test_realpath_trailing_slash() {
|
|||
|
||||
#[test]
|
||||
fn test_realpath_empty() {
|
||||
new_ucmd!().fails().code_is(1);
|
||||
new_ucmd!().fails_with_code(1);
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -26,14 +26,13 @@ const NOT_A_DIRECTORY: &str = "Not a directory";
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_no_arg() {
|
||||
new_ucmd!()
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("error: the following required arguments were not provided:");
|
||||
}
|
||||
|
||||
|
|
|
@ -24,7 +24,7 @@ fn help() {
|
|||
|
||||
#[test]
|
||||
fn invalid_input() {
|
||||
new_ucmd!().arg("-/").fails().code_is(125);
|
||||
new_ucmd!().arg("-/").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -45,34 +45,34 @@ fn print() {
|
|||
|
||||
#[test]
|
||||
fn invalid() {
|
||||
new_ucmd!().arg("invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("invalid").fails_with_code(1);
|
||||
|
||||
let args = &[
|
||||
"unconfined_u:unconfined_r:unconfined_t:s0",
|
||||
"inexistent-file",
|
||||
];
|
||||
new_ucmd!().args(args).fails().code_is(1);
|
||||
new_ucmd!().args(args).fails_with_code(1);
|
||||
|
||||
let args = &["invalid", "/bin/true"];
|
||||
new_ucmd!().args(args).fails().code_is(1);
|
||||
new_ucmd!().args(args).fails_with_code(1);
|
||||
|
||||
let args = &["--compute", "inexistent-file"];
|
||||
new_ucmd!().args(args).fails().code_is(1);
|
||||
new_ucmd!().args(args).fails_with_code(1);
|
||||
|
||||
let args = &["--compute", "--compute"];
|
||||
new_ucmd!().args(args).fails().code_is(125);
|
||||
new_ucmd!().args(args).fails_with_code(125);
|
||||
|
||||
// clap has an issue that makes this test fail: https://github.com/clap-rs/clap/issues/1543
|
||||
// TODO: Enable this code once the issue is fixed in the clap version we're using.
|
||||
//new_ucmd!().arg("--compute=example").fails().code_is(1);
|
||||
//new_ucmd!().arg("--compute=example").fails_with_code(1);
|
||||
|
||||
for flag in [
|
||||
"-t", "--type", "-u", "--user", "-r", "--role", "-l", "--range",
|
||||
] {
|
||||
new_ucmd!().arg(flag).fails().code_is(125);
|
||||
new_ucmd!().arg(flag).fails_with_code(125);
|
||||
|
||||
let args = &[flag, "example", flag, "example"];
|
||||
new_ucmd!().args(args).fails().code_is(125);
|
||||
new_ucmd!().args(args).fails_with_code(125);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -81,7 +81,7 @@ fn invalid() {
|
|||
fn plain_context() {
|
||||
let ctx = "unconfined_u:unconfined_r:unconfined_t:s0-s0";
|
||||
new_ucmd!().args(&[ctx, "/bin/true"]).succeeds();
|
||||
new_ucmd!().args(&[ctx, "/bin/false"]).fails().code_is(1);
|
||||
new_ucmd!().args(&[ctx, "/bin/false"]).fails_with_code(1);
|
||||
|
||||
let output = new_ucmd!().args(&[ctx, "sestatus", "-v"]).succeeds();
|
||||
let r = get_sestatus_context(output.stdout());
|
||||
|
@ -105,7 +105,7 @@ fn custom_context() {
|
|||
new_ucmd!().args(&["--compute", "/bin/true"]).succeeds();
|
||||
|
||||
let args = &["--compute", "/bin/false"];
|
||||
new_ucmd!().args(args).fails().code_is(1);
|
||||
new_ucmd!().args(args).fails_with_code(1);
|
||||
|
||||
let args = &["--type", t_ud, "/bin/true"];
|
||||
new_ucmd!().args(args).succeeds();
|
||||
|
|
|
@ -8,14 +8,13 @@ use std::process::Stdio;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_no_args() {
|
||||
new_ucmd!()
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("missing operand");
|
||||
}
|
||||
|
||||
|
|
|
@ -9,17 +9,17 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_remove_arg() {
|
||||
new_ucmd!().arg("--remove=unknown").fails().code_is(1);
|
||||
new_ucmd!().arg("--remove=unknown").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_ambiguous_remove_arg() {
|
||||
new_ucmd!().arg("--remove=wip").fails().code_is(1);
|
||||
new_ucmd!().arg("--remove=wip").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -66,15 +66,13 @@ fn test_invalid_buffer_size() {
|
|||
new_ucmd!()
|
||||
.arg("-S")
|
||||
.arg("asd")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("sort: invalid --buffer-size argument 'asd'\n");
|
||||
|
||||
new_ucmd!()
|
||||
.arg("-S")
|
||||
.arg("100f")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("sort: invalid suffix in --buffer-size argument '100f'\n");
|
||||
|
||||
// TODO Percentage sizes are not yet supported beyond Linux.
|
||||
|
@ -82,8 +80,7 @@ fn test_invalid_buffer_size() {
|
|||
new_ucmd!()
|
||||
.arg("-S")
|
||||
.arg("0x123%")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("sort: invalid --buffer-size argument '0x123%'\n");
|
||||
|
||||
new_ucmd!()
|
||||
|
@ -91,8 +88,7 @@ fn test_invalid_buffer_size() {
|
|||
.arg("-S")
|
||||
.arg("1Y")
|
||||
.arg("ext_sort.txt")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only("sort: --buffer-size argument '1Y' too large\n");
|
||||
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
|
@ -104,8 +100,7 @@ fn test_invalid_buffer_size() {
|
|||
.arg("-S")
|
||||
.arg(buffer_size)
|
||||
.arg("ext_sort.txt")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only(format!(
|
||||
"sort: --buffer-size argument '{}' too large\n",
|
||||
buffer_size
|
||||
|
@ -881,8 +876,7 @@ fn test_check_unique() {
|
|||
new_ucmd!()
|
||||
.args(&["-c", "-u"])
|
||||
.pipe_in("A\nA\n")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("sort: -:2: disorder: A\n");
|
||||
}
|
||||
|
||||
|
@ -891,8 +885,7 @@ fn test_check_unique_combined() {
|
|||
new_ucmd!()
|
||||
.args(&["-cu"])
|
||||
.pipe_in("A\nA\n")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("sort: -:2: disorder: A\n");
|
||||
}
|
||||
|
||||
|
@ -935,8 +928,7 @@ fn test_trailing_separator() {
|
|||
fn test_nonexistent_file() {
|
||||
new_ucmd!()
|
||||
.arg("nonexistent.txt")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only(
|
||||
#[cfg(not(windows))]
|
||||
"sort: cannot read: nonexistent.txt: No such file or directory\n",
|
||||
|
@ -1054,8 +1046,7 @@ fn test_batch_size_invalid() {
|
|||
TestScenario::new(util_name!())
|
||||
.ucmd()
|
||||
.arg("--batch-size=0")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("sort: invalid --batch-size argument '0'")
|
||||
.stderr_contains("sort: minimum --batch-size argument is '2'");
|
||||
}
|
||||
|
@ -1066,8 +1057,7 @@ fn test_batch_size_too_large() {
|
|||
TestScenario::new(util_name!())
|
||||
.ucmd()
|
||||
.arg(format!("--batch-size={large_batch_size}"))
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains(format!(
|
||||
"--batch-size argument '{large_batch_size}' too large"
|
||||
));
|
||||
|
@ -1075,8 +1065,7 @@ fn test_batch_size_too_large() {
|
|||
TestScenario::new(util_name!())
|
||||
.ucmd()
|
||||
.arg(format!("--batch-size={large_batch_size}"))
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("maximum --batch-size argument with current rlimit is");
|
||||
}
|
||||
|
||||
|
@ -1163,8 +1152,7 @@ fn test_verifies_out_file() {
|
|||
.args(&["-o", "nonexistent_dir/nonexistent_file"])
|
||||
.pipe_in(input)
|
||||
.ignore_stdin_write_error()
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_only(
|
||||
#[cfg(not(windows))]
|
||||
"sort: open failed: nonexistent_dir/nonexistent_file: No such file or directory\n",
|
||||
|
@ -1184,8 +1172,7 @@ fn test_verifies_files_after_keys() {
|
|||
"0",
|
||||
"nonexistent_dir/input_file",
|
||||
])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("failed to parse key");
|
||||
}
|
||||
|
||||
|
@ -1194,8 +1181,7 @@ fn test_verifies_files_after_keys() {
|
|||
fn test_verifies_input_files() {
|
||||
new_ucmd!()
|
||||
.args(&["/dev/random", "nonexistent_file"])
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_is("sort: cannot read: nonexistent_file: No such file or directory\n");
|
||||
}
|
||||
|
||||
|
@ -1252,8 +1238,7 @@ fn test_no_error_for_version() {
|
|||
fn test_wrong_args_exit_code() {
|
||||
new_ucmd!()
|
||||
.arg("--misspelled")
|
||||
.fails()
|
||||
.code_is(2)
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("--misspelled");
|
||||
}
|
||||
|
||||
|
|
|
@ -120,15 +120,14 @@ impl RandomFile {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_split_non_existing_file() {
|
||||
new_ucmd!()
|
||||
.arg("non-existing")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_is("split: cannot open 'non-existing' for reading: No such file or directory\n");
|
||||
}
|
||||
|
||||
|
@ -403,26 +402,22 @@ fn test_split_lines_number() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["--lines", "0", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("split: invalid number of lines: 0\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-0", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("split: invalid number of lines: 0\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--lines", "2fb", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("split: invalid number of lines: '2fb'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--lines", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("split: invalid number of lines: 'file'\n");
|
||||
}
|
||||
|
||||
|
@ -476,8 +471,7 @@ fn test_split_obs_lines_within_invalid_combined_shorts() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-2fb", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("error: unexpected argument '-f' found\n");
|
||||
}
|
||||
|
||||
|
@ -545,14 +539,12 @@ fn test_split_both_lines_and_obs_lines_standalone() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-l", "2", "-2", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: cannot split in more than one way\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--lines", "2", "-2", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: cannot split in more than one way\n");
|
||||
}
|
||||
|
||||
|
@ -568,62 +560,52 @@ fn test_split_obs_lines_as_other_option_value() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["--lines", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of lines: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-l", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of lines: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-a", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid suffix length: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--suffix-length", "-d200e", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid suffix length: '-d200e'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-C", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of bytes: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--line-bytes", "-x200a4", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of bytes: '-x200a4'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-b", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of bytes: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--bytes", "-200xd", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of bytes: '-200xd'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-n", "-200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of chunks: '-200'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["--number", "-e200", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: invalid number of chunks: '-e200'\n");
|
||||
}
|
||||
|
||||
|
@ -677,14 +659,12 @@ fn test_split_obs_lines_within_combined_with_number() {
|
|||
scene
|
||||
.ucmd()
|
||||
.args(&["-3dxen", "4", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: cannot split in more than one way\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.args(&["-dxe30n", "4", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("split: cannot split in more than one way\n");
|
||||
}
|
||||
|
||||
|
@ -692,8 +672,7 @@ fn test_split_obs_lines_within_combined_with_number() {
|
|||
fn test_split_invalid_bytes_size() {
|
||||
new_ucmd!()
|
||||
.args(&["-b", "1024W"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("split: invalid number of bytes: '1024W'\n");
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
{
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::{expected_result, TestScenario};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -375,8 +375,7 @@ fn test_stdin_with_fs_option() {
|
|||
.arg("-f")
|
||||
.arg("-")
|
||||
.set_stdin(std::process::Stdio::null())
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("using '-' to denote standard input does not work in file system mode");
|
||||
}
|
||||
|
||||
|
@ -475,13 +474,11 @@ fn test_printf_invalid_directive() {
|
|||
|
||||
ts.ucmd()
|
||||
.args(&["--printf=%9", "."])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("'%9': invalid directive");
|
||||
|
||||
ts.ucmd()
|
||||
.args(&["--printf=%9%", "."])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("'%9%': invalid directive");
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn invalid_input() {
|
||||
new_ucmd!().arg("-/").fails().code_is(125);
|
||||
new_ucmd!().arg("-/").fails_with_code(125);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -15,8 +15,7 @@ fn test_permission() {
|
|||
new_ucmd!()
|
||||
.arg("-o1")
|
||||
.arg(".")
|
||||
.fails()
|
||||
.code_is(126)
|
||||
.fails_with_code(126)
|
||||
.stderr_contains("Permission denied");
|
||||
}
|
||||
|
||||
|
@ -25,8 +24,7 @@ fn test_no_such() {
|
|||
new_ucmd!()
|
||||
.arg("-o1")
|
||||
.arg("no_such")
|
||||
.fails()
|
||||
.code_is(127)
|
||||
.fails_with_code(127)
|
||||
.stderr_contains("No such file or directory");
|
||||
}
|
||||
|
||||
|
@ -88,20 +86,17 @@ fn test_stdbuf_invalid_mode_fails() {
|
|||
for option in &options {
|
||||
new_ucmd!()
|
||||
.args(&[*option, "1024R", "head"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.usage_error("invalid mode '1024R': Value too large for defined data type");
|
||||
new_ucmd!()
|
||||
.args(&[*option, "1Y", "head"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains("stdbuf: invalid mode '1Y': Value too large for defined data type");
|
||||
#[cfg(target_pointer_width = "32")]
|
||||
{
|
||||
new_ucmd!()
|
||||
.args(&[*option, "5GB", "head"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.stderr_contains(
|
||||
"stdbuf: invalid mode '5GB': Value too large for defined data type",
|
||||
);
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use tempfile::tempdir;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -67,7 +67,7 @@ const INVALID_UTF16: u16 = 0xD800;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -239,10 +239,9 @@ fn test_permission_denied() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg("unreadable")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_is("tail: cannot open 'unreadable' for reading: Permission denied\n")
|
||||
.no_stdout()
|
||||
.code_is(1);
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
// TODO: Add similar test for windows
|
||||
|
@ -263,10 +262,9 @@ fn test_permission_denied_multiple() {
|
|||
|
||||
ts.ucmd()
|
||||
.args(&["file1", "unreadable", "file2"])
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_is("tail: cannot open 'unreadable' for reading: Permission denied\n")
|
||||
.stdout_is("==> file1 <==\n\n==> file2 <==\n")
|
||||
.code_is(1);
|
||||
.stdout_is("==> file1 <==\n\n==> file2 <==\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -284,10 +282,9 @@ fn test_follow_redirect_stdin_name_retry() {
|
|||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("f")).unwrap())
|
||||
.args(&args)
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: cannot follow '-' by name\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: cannot follow '-' by name\n");
|
||||
args.pop();
|
||||
}
|
||||
}
|
||||
|
@ -311,17 +308,15 @@ fn test_stdin_redirect_dir() {
|
|||
|
||||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("dir")).unwrap())
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: error reading 'standard input': Is a directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: error reading 'standard input': Is a directory\n");
|
||||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("dir")).unwrap())
|
||||
.arg("-")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: error reading 'standard input': Is a directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: error reading 'standard input': Is a directory\n");
|
||||
}
|
||||
|
||||
// On macOS path.is_dir() can be false for directories if it was a redirect,
|
||||
|
@ -344,17 +339,15 @@ fn test_stdin_redirect_dir_when_target_os_is_macos() {
|
|||
|
||||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("dir")).unwrap())
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: cannot open 'standard input' for reading: No such file or directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: cannot open 'standard input' for reading: No such file or directory\n");
|
||||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("dir")).unwrap())
|
||||
.arg("-")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: cannot open 'standard input' for reading: No such file or directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: cannot open 'standard input' for reading: No such file or directory\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -604,10 +597,9 @@ fn test_follow_multiple_untailable() {
|
|||
ucmd.arg("-f")
|
||||
.arg("DIR1")
|
||||
.arg("DIR2")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_is(expected_stderr)
|
||||
.stdout_is(expected_stdout)
|
||||
.code_is(1);
|
||||
.stdout_is(expected_stdout);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -625,7 +617,7 @@ fn test_follow_stdin_pipe() {
|
|||
fn test_follow_invalid_pid() {
|
||||
new_ucmd!()
|
||||
.args(&["-f", "--pid=-1234"])
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: invalid PID: '-1234'\n");
|
||||
new_ucmd!()
|
||||
|
@ -848,8 +840,7 @@ fn test_multiple_input_files_missing() {
|
|||
.stderr_is(
|
||||
"tail: cannot open 'missing1' for reading: No such file or directory\n\
|
||||
tail: cannot open 'missing2' for reading: No such file or directory\n",
|
||||
)
|
||||
.code_is(1);
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -987,9 +978,8 @@ fn test_sleep_interval() {
|
|||
.arg("-s")
|
||||
.arg("1..1")
|
||||
.arg(FOOBAR_TXT)
|
||||
.fails()
|
||||
.stderr_contains("invalid number of seconds: '1..1'")
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("invalid number of seconds: '1..1'");
|
||||
}
|
||||
|
||||
/// Test for reading all but the first NUM bytes: `tail -c +3`.
|
||||
|
@ -2556,10 +2546,9 @@ fn test_follow_inotify_only_regular() {
|
|||
fn test_no_such_file() {
|
||||
new_ucmd!()
|
||||
.arg("missing")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stderr_is("tail: cannot open 'missing' for reading: No such file or directory\n")
|
||||
.no_stdout()
|
||||
.code_is(1);
|
||||
.no_stdout();
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -3471,9 +3460,8 @@ fn test_when_follow_retry_given_redirected_stdin_from_directory_then_correct_err
|
|||
ts.ucmd()
|
||||
.set_stdin(File::open(at.plus("dir")).unwrap())
|
||||
.args(&["-f", "--retry"])
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -3485,9 +3473,8 @@ fn test_when_argument_file_is_a_directory() {
|
|||
let expected = "tail: error reading 'dir': Is a directory\n";
|
||||
ts.ucmd()
|
||||
.arg("dir")
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
}
|
||||
|
||||
// TODO: make this work on windows
|
||||
|
@ -3523,9 +3510,8 @@ fn test_when_argument_file_is_a_symlink() {
|
|||
let expected = "tail: error reading 'dir_link': Is a directory\n";
|
||||
ts.ucmd()
|
||||
.arg("dir_link")
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
}
|
||||
|
||||
// TODO: make this work on windows
|
||||
|
@ -3541,9 +3527,8 @@ fn test_when_argument_file_is_a_symlink_to_directory_then_error() {
|
|||
let expected = "tail: error reading 'dir_link': Is a directory\n";
|
||||
ts.ucmd()
|
||||
.arg("dir_link")
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
}
|
||||
|
||||
// TODO: make this work on windows
|
||||
|
@ -3565,18 +3550,16 @@ fn test_when_argument_file_is_a_faulty_symlink_then_error() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg("self")
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
|
||||
at.symlink_file("missing", "broken");
|
||||
|
||||
let expected = "tail: cannot open 'broken' for reading: No such file or directory";
|
||||
ts.ucmd()
|
||||
.arg("broken")
|
||||
.fails()
|
||||
.stderr_only(expected)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(expected);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -3610,9 +3593,8 @@ fn test_when_argument_file_is_non_existent_unix_socket_address_then_error() {
|
|||
|
||||
ts.ucmd()
|
||||
.arg(socket)
|
||||
.fails()
|
||||
.stderr_only(&expected_stderr)
|
||||
.code_is(1);
|
||||
.fails_with_code(1)
|
||||
.stderr_only(&expected_stderr);
|
||||
|
||||
let path = "file";
|
||||
let mut file = at.make_file(path);
|
||||
|
@ -3624,7 +3606,7 @@ fn test_when_argument_file_is_non_existent_unix_socket_address_then_error() {
|
|||
let expected_stdout = [format!("==> {path} <=="), random_string].join("\n");
|
||||
ts.ucmd()
|
||||
.args(&["-c", "+0", path, socket])
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.stdout_is(&expected_stdout)
|
||||
.stderr_is(&expected_stderr);
|
||||
|
||||
|
@ -4691,73 +4673,64 @@ fn test_gnu_args_err() {
|
|||
scene
|
||||
.ucmd()
|
||||
.arg("+cl")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: cannot open '+cl' for reading: No such file or directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: cannot open '+cl' for reading: No such file or directory\n");
|
||||
// err-2
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-cl")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: invalid number of bytes: 'l'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: invalid number of bytes: 'l'\n");
|
||||
// err-3
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("+2cz")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: cannot open '+2cz' for reading: No such file or directory\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: cannot open '+2cz' for reading: No such file or directory\n");
|
||||
// err-4
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-2cX")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: option used in invalid context -- 2\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: option used in invalid context -- 2\n");
|
||||
// err-5
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-c99999999999999999999")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: invalid number of bytes: '99999999999999999999'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: invalid number of bytes: '99999999999999999999'\n");
|
||||
// err-6
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-c --")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: invalid number of bytes: '-'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: invalid number of bytes: '-'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-5cz")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: option used in invalid context -- 5\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: option used in invalid context -- 5\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-9999999999999999999b")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: invalid number: '-9999999999999999999b'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: invalid number: '-9999999999999999999b'\n");
|
||||
scene
|
||||
.ucmd()
|
||||
.arg("-999999999999999999999b")
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is(
|
||||
"tail: invalid number: '-999999999999999999999b': Numerical result out of range\n",
|
||||
)
|
||||
.code_is(1);
|
||||
);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -4800,10 +4773,9 @@ fn test_obsolete_encoding_unix() {
|
|||
scene
|
||||
.ucmd()
|
||||
.arg(invalid_utf8_arg)
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: bad argument encoding: '-<2D>b'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: bad argument encoding: '-<2D>b'\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -4818,10 +4790,9 @@ fn test_obsolete_encoding_windows() {
|
|||
scene
|
||||
.ucmd()
|
||||
.arg(&invalid_utf16_arg)
|
||||
.fails()
|
||||
.fails_with_code(1)
|
||||
.no_stdout()
|
||||
.stderr_is("tail: bad argument encoding: '-<2D>b'\n")
|
||||
.code_is(1);
|
||||
.stderr_is("tail: bad argument encoding: '-<2D>b'\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -17,7 +17,7 @@ use std::fmt::Write;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -89,7 +89,7 @@ fn test_simple_or() {
|
|||
fn test_errors_miss_and_or() {
|
||||
new_ucmd!()
|
||||
.args(&["-o", "arg"])
|
||||
.fails()
|
||||
.fails_with_code(2)
|
||||
.stderr_contains("'-o': unary operator expected");
|
||||
new_ucmd!()
|
||||
.args(&["-a", "arg"])
|
||||
|
@ -101,8 +101,7 @@ fn test_errors_miss_and_or() {
|
|||
fn test_negated_or() {
|
||||
new_ucmd!()
|
||||
.args(&["!", "foo", "-o", "bar"])
|
||||
.run()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
new_ucmd!().args(&["foo", "-o", "!", "bar"]).succeeds();
|
||||
new_ucmd!()
|
||||
.args(&["!", "foo", "-o", "!", "bar"])
|
||||
|
@ -348,7 +347,7 @@ fn test_non_existing_files() {
|
|||
let result = scenario
|
||||
.ucmd()
|
||||
.args(&["newer_file", "-nt", "regular_file"])
|
||||
.fails();
|
||||
.fails_with_code(1);
|
||||
assert!(result.stderr().is_empty());
|
||||
}
|
||||
|
||||
|
@ -1006,25 +1005,21 @@ fn test_string_lt_gt_operator() {
|
|||
new_ucmd!().args(&[left, "<", right]).succeeds().no_output();
|
||||
new_ucmd!()
|
||||
.args(&[right, "<", left])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_output();
|
||||
|
||||
new_ucmd!().args(&[right, ">", left]).succeeds().no_output();
|
||||
new_ucmd!()
|
||||
.args(&[left, ">", right])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_output();
|
||||
}
|
||||
new_ucmd!()
|
||||
.args(&["", "<", ""])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_output();
|
||||
new_ucmd!()
|
||||
.args(&["", ">", ""])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.no_output();
|
||||
}
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(125);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(125);
|
||||
}
|
||||
|
||||
// FIXME: this depends on the system having true and false in PATH
|
||||
|
@ -24,8 +24,7 @@ fn test_subcommand_return_code() {
|
|||
fn test_invalid_time_interval() {
|
||||
new_ucmd!()
|
||||
.args(&["xyz", "sleep", "0"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.usage_error("invalid time interval 'xyz'");
|
||||
}
|
||||
|
||||
|
@ -33,8 +32,7 @@ fn test_invalid_time_interval() {
|
|||
fn test_invalid_kill_after() {
|
||||
new_ucmd!()
|
||||
.args(&["-k", "xyz", "1", "sleep", "0"])
|
||||
.fails()
|
||||
.code_is(125)
|
||||
.fails_with_code(125)
|
||||
.usage_error("invalid time interval 'xyz'");
|
||||
}
|
||||
|
||||
|
@ -85,8 +83,7 @@ fn test_foreground() {
|
|||
for arg in ["-f", "--foreground"] {
|
||||
new_ucmd!()
|
||||
.args(&[arg, ".1", "sleep", "10"])
|
||||
.fails()
|
||||
.code_is(124)
|
||||
.fails_with_code(124)
|
||||
.no_output();
|
||||
}
|
||||
}
|
||||
|
@ -173,8 +170,7 @@ fn test_kill_subprocess() {
|
|||
"-c",
|
||||
"trap 'echo inside_trap' TERM; sleep 30",
|
||||
])
|
||||
.fails()
|
||||
.code_is(124)
|
||||
.fails_with_code(124)
|
||||
.stdout_contains("inside_trap")
|
||||
.stderr_contains("Terminated");
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ fn str_to_filetime(format: &str, s: &str) -> FileTime {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -806,7 +806,7 @@ fn test_touch_leap_second() {
|
|||
fn test_touch_trailing_slash_no_create() {
|
||||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
at.touch("file");
|
||||
ucmd.args(&["-c", "file/"]).fails().code_is(1);
|
||||
ucmd.args(&["-c", "file/"]).fails_with_code(1);
|
||||
|
||||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
ucmd.args(&["-c", "no-file/"]).succeeds();
|
||||
|
@ -822,7 +822,7 @@ fn test_touch_trailing_slash_no_create() {
|
|||
|
||||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
at.relative_symlink_file("loop", "loop");
|
||||
ucmd.args(&["-c", "loop/"]).fails().code_is(1);
|
||||
ucmd.args(&["-c", "loop/"]).fails_with_code(1);
|
||||
assert!(!at.file_exists("loop"));
|
||||
|
||||
#[cfg(not(target_os = "macos"))]
|
||||
|
@ -831,7 +831,7 @@ fn test_touch_trailing_slash_no_create() {
|
|||
let (at, mut ucmd) = at_and_ucmd!();
|
||||
at.touch("file2");
|
||||
at.relative_symlink_file("file2", "link1");
|
||||
ucmd.args(&["-c", "link1/"]).fails().code_is(1);
|
||||
ucmd.args(&["-c", "link1/"]).fails_with_code(1);
|
||||
assert!(at.file_exists("file2"));
|
||||
assert!(at.symlink_exists("link1"));
|
||||
}
|
||||
|
|
|
@ -10,23 +10,21 @@ use std::{ffi::OsStr, os::unix::ffi::OsStrExt};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_input() {
|
||||
new_ucmd!()
|
||||
.args(&["1", "1", "<", "."])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("tr: extra operand '<'");
|
||||
#[cfg(unix)]
|
||||
new_ucmd!()
|
||||
.args(&["1", "1"])
|
||||
// will test "tr 1 1 < ."
|
||||
.set_stdin(std::process::Stdio::from(std::fs::File::open(".").unwrap()))
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("tr: read error: Is a directory");
|
||||
}
|
||||
|
||||
|
|
|
@ -189,8 +189,7 @@ fn test_error_filename_only() {
|
|||
// truncate: you must specify either '--size' or '--reference'
|
||||
new_ucmd!()
|
||||
.args(&["file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_contains("error: the following required arguments were not provided:");
|
||||
}
|
||||
|
||||
|
@ -199,8 +198,7 @@ fn test_invalid_option() {
|
|||
// truncate: cli parsing error returns 1
|
||||
new_ucmd!()
|
||||
.args(&["--this-arg-does-not-exist"])
|
||||
.fails()
|
||||
.code_is(1);
|
||||
.fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
@ -242,13 +240,11 @@ fn test_truncate_bytes_size() {
|
|||
.succeeds();
|
||||
new_ucmd!()
|
||||
.args(&["--size", "1024R", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("truncate: Invalid number: '1024R': Value too large for defined data type\n");
|
||||
new_ucmd!()
|
||||
.args(&["--size", "1Y", "file"])
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stderr_only("truncate: Invalid number: '1Y': Value too large for defined data type\n");
|
||||
}
|
||||
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
#[test]
|
||||
fn test_sort_call_graph() {
|
||||
|
@ -89,8 +89,7 @@ fn test_cycle() {
|
|||
// The graph looks like: a --> b <==> c --> d
|
||||
new_ucmd!()
|
||||
.pipe_in("a b b c c d c b")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("a\nc\nd\nb\n")
|
||||
.stderr_is("tsort: -: input contains a loop:\ntsort: b\ntsort: c\n");
|
||||
}
|
||||
|
@ -106,8 +105,7 @@ fn test_two_cycles() {
|
|||
//
|
||||
new_ucmd!()
|
||||
.pipe_in("a b b c c b b d d b")
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("a\nc\nd\nb\n")
|
||||
.stderr_is("tsort: -: input contains a loop:\ntsort: b\ntsort: c\ntsort: -: input contains a loop:\ntsort: b\ntsort: d\n");
|
||||
}
|
||||
|
|
|
@ -11,8 +11,7 @@ use crate::common::util::TestScenario;
|
|||
fn test_dev_null() {
|
||||
new_ucmd!()
|
||||
.set_stdin(File::open("/dev/null").unwrap())
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("not a tty\n");
|
||||
}
|
||||
|
||||
|
@ -22,8 +21,7 @@ fn test_dev_null_silent() {
|
|||
new_ucmd!()
|
||||
.args(&["-s"])
|
||||
.set_stdin(File::open("/dev/null").unwrap())
|
||||
.fails()
|
||||
.code_is(1)
|
||||
.fails_with_code(1)
|
||||
.stdout_is("");
|
||||
}
|
||||
|
||||
|
@ -57,7 +55,7 @@ fn test_close_stdin_silent_alias() {
|
|||
|
||||
#[test]
|
||||
fn test_wrong_argument() {
|
||||
new_ucmd!().args(&["a"]).fails().code_is(2);
|
||||
new_ucmd!().args(&["a"]).fails_with_code(2);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -7,7 +7,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -15,7 +15,7 @@ static SORTED_ZERO_TERMINATED: &str = "sorted-zero-terminated.txt";
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -22,7 +22,7 @@ use std::{io::Write, path::PathBuf};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -6,7 +6,7 @@ use crate::common::util::TestScenario;
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -8,7 +8,7 @@ use crate::common::util::{vec_of_size, TestScenario};
|
|||
// spell-checker:ignore (flags) lwmcL clmwL ; (path) bogusfile emptyfile manyemptylines moby notrailingnewline onelongemptyline onelongword weirdchars
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -9,7 +9,7 @@ use crate::common::util::{expected_result, TestScenario};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[cfg(unix)]
|
||||
|
|
|
@ -9,7 +9,7 @@ use crate::common::util::{is_ci, whoami, TestScenario};
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
|
@ -35,7 +35,7 @@ fn run(args: &[impl AsRef<OsStr>], expected: &[u8]) {
|
|||
|
||||
#[test]
|
||||
fn test_invalid_arg() {
|
||||
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
||||
new_ucmd!().arg("--definitely-invalid").fails_with_code(1);
|
||||
}
|
||||
|
||||
#[test]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue