1
Fork 0
mirror of https://github.com/RGBCube/uutils-coreutils synced 2025-07-28 03:27:44 +00:00

tests/common: refactor: use TestScenario instead of util_name for expected_result()

This commit is contained in:
Jan Scheer 2021-07-07 22:46:16 +02:00
parent 31aa8b2062
commit abc59fbe85
No known key found for this signature in database
GPG key ID: C62AD4C29E2B9828
6 changed files with 189 additions and 221 deletions

View file

@ -114,16 +114,18 @@ const FS_FORMAT_STR: &str = "%b %c %i %l %n %s %S %t %T"; // avoid "%a %d %f" wh
#[cfg(target_os = "linux")]
fn test_terse_fs_format() {
let args = ["-f", "-t", "/proc"];
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
new_ucmd!().args(&args).run().stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).run().stdout_is(expected_stdout);
}
#[test]
#[cfg(target_os = "linux")]
fn test_fs_format() {
let args = ["-f", "-c", FS_FORMAT_STR, "/dev/shm"];
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
new_ucmd!().args(&args).run().stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).run().stdout_is(expected_stdout);
}
#[cfg(unix)]
@ -132,8 +134,9 @@ fn test_terse_normal_format() {
// 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
let args = ["-t", "/"];
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
let ts = TestScenario::new(util_name!());
let actual = ts.ucmd().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
println!("actual: {:?}", actual);
println!("expect: {:?}", expect);
let v_actual: Vec<&str> = actual.trim().split(' ').collect();
@ -161,8 +164,9 @@ fn test_terse_normal_format() {
#[test]
fn test_format_created_time() {
let args = ["-c", "%w", "/bin"];
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
let ts = TestScenario::new(util_name!());
let actual = ts.ucmd().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
println!("actual: {:?}", actual);
println!("expect: {:?}", expect);
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
@ -185,8 +189,9 @@ fn test_format_created_time() {
#[test]
fn test_format_created_seconds() {
let args = ["-c", "%W", "/bin"];
let actual = new_ucmd!().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
let ts = TestScenario::new(util_name!());
let actual = ts.ucmd().args(&args).succeeds().stdout_move_str();
let expect = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
println!("actual: {:?}", actual);
println!("expect: {:?}", expect);
// note: using a regex instead of `split_whitespace()` in order to detect whitespace differences
@ -209,18 +214,16 @@ fn test_format_created_seconds() {
#[test]
fn test_normal_format() {
let args = ["-c", NORMAL_FORMAT_STR, "/bin"];
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
new_ucmd!()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
}
#[cfg(unix)]
#[test]
fn test_symlinks() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;
let ts = TestScenario::new(util_name!());
let at = &ts.fixtures;
let mut tested: bool = false;
// arbitrarily chosen symlinks with hope that the CI environment provides at least one of them
@ -234,22 +237,12 @@ fn test_symlinks() {
if at.file_exists(file) && at.is_symlink(file) {
tested = true;
let args = ["-c", NORMAL_FORMAT_STR, file];
let expected_stdout =
unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
scene
.ucmd()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
// -L, --dereference follow links
let args = ["-L", "-c", NORMAL_FORMAT_STR, file];
let expected_stdout =
unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
scene
.ucmd()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
}
}
if !tested {
@ -275,11 +268,9 @@ fn test_char() {
#[cfg(any(target_vendor = "apple"))]
"/dev/ptmx",
];
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
new_ucmd!()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
}
#[cfg(unix)]
@ -294,11 +285,9 @@ fn test_multi_files() {
"/etc/fstab",
"/var",
];
let expected_stdout = unwrap_or_return!(expected_result(util_name!(), &args)).stdout_move_str();
new_ucmd!()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
}
#[cfg(unix)]
@ -308,9 +297,7 @@ fn test_printf() {
"--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!()
.args(&args)
.succeeds()
.stdout_is(expected_stdout);
let ts = TestScenario::new(util_name!());
let expected_stdout = unwrap_or_return!(expected_result(&ts, &args)).stdout_move_str();
ts.ucmd().args(&args).succeeds().stdout_is(expected_stdout);
}