mirror of
https://github.com/RGBCube/uutils-coreutils
synced 2025-07-28 11:37:44 +00:00
test_stat: refactor use expected_result from common/util.rs
This commit is contained in:
parent
90de4257b1
commit
805e024794
1 changed files with 28 additions and 41 deletions
|
@ -109,30 +109,26 @@ const FS_FORMAT_STR: &str = "%b %c %i %l %n %s %S %t %T"; // avoid "%a %d %f" wh
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
fn test_terse_fs_format() {
|
fn test_terse_fs_format() {
|
||||||
let args = ["-f", "-t", "/proc"];
|
let args = ["-f", "-t", "/proc"];
|
||||||
new_ucmd!()
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
.args(&args)
|
new_ucmd!().args(&args).run().stdout_is(expected_stdout);
|
||||||
.run()
|
|
||||||
.stdout_is(expected_result(&args));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
#[cfg(target_os = "linux")]
|
#[cfg(target_os = "linux")]
|
||||||
fn test_fs_format() {
|
fn test_fs_format() {
|
||||||
let args = ["-f", "-c", FS_FORMAT_STR, "/dev/shm"];
|
let args = ["-f", "-c", FS_FORMAT_STR, "/dev/shm"];
|
||||||
new_ucmd!()
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
.args(&args)
|
new_ucmd!().args(&args).run().stdout_is(expected_stdout);
|
||||||
.run()
|
|
||||||
.stdout_is(expected_result(&args));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_terse_normal_format() {
|
fn test_terse_normal_format() {
|
||||||
// note: contains birth/creation date which increases test fragility
|
// note: contains birth/creation date which increases test fragility
|
||||||
// * results may vary due to built-in `stat` limitations as well as linux kernel and rust version capability variations
|
// * results may vary due to built-in `stat` limitations as well as linux kernel and rust version capability variations
|
||||||
let args = ["-t", "/"];
|
let args = ["-t", "/"];
|
||||||
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
||||||
let expect = expected_result(&args);
|
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
println!("actual: {:?}", actual);
|
println!("actual: {:?}", actual);
|
||||||
println!("expect: {:?}", expect);
|
println!("expect: {:?}", expect);
|
||||||
let v_actual: Vec<&str> = actual.trim().split(' ').collect();
|
let v_actual: Vec<&str> = actual.trim().split(' ').collect();
|
||||||
|
@ -156,12 +152,12 @@ fn test_terse_normal_format() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_format_created_time() {
|
fn test_format_created_time() {
|
||||||
let args = ["-c", "%w", "/bin"];
|
let args = ["-c", "%w", "/bin"];
|
||||||
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
||||||
let expect = expected_result(&args);
|
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
println!("actual: {:?}", actual);
|
println!("actual: {:?}", actual);
|
||||||
println!("expect: {:?}", expect);
|
println!("expect: {:?}", expect);
|
||||||
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
|
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
|
||||||
|
@ -180,12 +176,12 @@ fn test_format_created_time() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_format_created_seconds() {
|
fn test_format_created_seconds() {
|
||||||
let args = ["-c", "%W", "/bin"];
|
let args = ["-c", "%W", "/bin"];
|
||||||
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
|
||||||
let expect = expected_result(&args);
|
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
println!("actual: {:?}", actual);
|
println!("actual: {:?}", actual);
|
||||||
println!("expect: {:?}", expect);
|
println!("expect: {:?}", expect);
|
||||||
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
|
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
|
||||||
|
@ -204,17 +200,18 @@ fn test_format_created_seconds() {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_normal_format() {
|
fn test_normal_format() {
|
||||||
let args = ["-c", NORMAL_FORMAT_STR, "/bin"];
|
let args = ["-c", NORMAL_FORMAT_STR, "/bin"];
|
||||||
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_symlinks() {
|
fn test_symlinks() {
|
||||||
let scene = TestScenario::new(util_name!());
|
let scene = TestScenario::new(util_name!());
|
||||||
|
@ -232,18 +229,22 @@ fn test_symlinks() {
|
||||||
if at.file_exists(file) && at.is_symlink(file) {
|
if at.file_exists(file) && at.is_symlink(file) {
|
||||||
tested = true;
|
tested = true;
|
||||||
let args = ["-c", NORMAL_FORMAT_STR, file];
|
let args = ["-c", NORMAL_FORMAT_STR, file];
|
||||||
|
let expected_stdout =
|
||||||
|
unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
scene
|
scene
|
||||||
.ucmd()
|
.ucmd()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
// -L, --dereference follow links
|
// -L, --dereference follow links
|
||||||
let args = ["-L", "-c", NORMAL_FORMAT_STR, file];
|
let args = ["-L", "-c", NORMAL_FORMAT_STR, file];
|
||||||
|
let expected_stdout =
|
||||||
|
unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
scene
|
scene
|
||||||
.ucmd()
|
.ucmd()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if !tested {
|
if !tested {
|
||||||
|
@ -269,13 +270,14 @@ fn test_char() {
|
||||||
#[cfg(any(target_vendor = "apple"))]
|
#[cfg(any(target_vendor = "apple"))]
|
||||||
"/dev/ptmx",
|
"/dev/ptmx",
|
||||||
];
|
];
|
||||||
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_os = "linux", target_vendor = "apple"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_multi_files() {
|
fn test_multi_files() {
|
||||||
let args = [
|
let args = [
|
||||||
|
@ -287,38 +289,23 @@ fn test_multi_files() {
|
||||||
"/etc/fstab",
|
"/etc/fstab",
|
||||||
"/var",
|
"/var",
|
||||||
];
|
];
|
||||||
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(any(target_vendor = "apple", target_os = "linux"))]
|
#[cfg(unix)]
|
||||||
#[test]
|
#[test]
|
||||||
fn test_printf() {
|
fn test_printf() {
|
||||||
let args = [
|
let args = [
|
||||||
"--printf=123%-# 15q\\r\\\"\\\\\\a\\b\\e\\f\\v%+020.23m\\x12\\167\\132\\112\\n",
|
"--printf=123%-# 15q\\r\\\"\\\\\\a\\b\\e\\f\\v%+020.23m\\x12\\167\\132\\112\\n",
|
||||||
"/",
|
"/",
|
||||||
];
|
];
|
||||||
|
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
|
||||||
new_ucmd!()
|
new_ucmd!()
|
||||||
.args(&args)
|
.args(&args)
|
||||||
.succeeds()
|
.succeeds()
|
||||||
.stdout_is(expected_result(&args));
|
.stdout_is(expected_stdout);
|
||||||
}
|
|
||||||
|
|
||||||
#[cfg(any(target_vendor = "apple", target_os = "linux"))]
|
|
||||||
fn expected_result(args: &[&str]) -> String {
|
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
let util_name = util_name!();
|
|
||||||
#[cfg(target_vendor = "apple")]
|
|
||||||
let util_name = format!("g{}", util_name!());
|
|
||||||
|
|
||||||
// note: clippy::needless_borrow *false positive*
|
|
||||||
#[allow(clippy::needless_borrow)]
|
|
||||||
TestScenario::new(&util_name)
|
|
||||||
.cmd_keepenv(util_name)
|
|
||||||
.env("LC_ALL", "C")
|
|
||||||
.args(args)
|
|
||||||
.succeeds()
|
|
||||||
.stdout_move_str()
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue