Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -482,7 +482,7 @@ rstest = "0.16.0"

[target.'cfg(any(target_os = "linux", target_os = "android"))'.dev-dependencies]
procfs = { version = "0.14", default-features = false }
rlimit = "0.8.3"
rlimit = "0.9.1"

[target.'cfg(unix)'.dev-dependencies]
nix = { workspace=true, features=["process", "signal", "user"] }
Expand Down
2 changes: 1 addition & 1 deletion tests/by-util/test_cat.rs
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ fn test_closes_file_descriptors() {
"alpha.txt",
"alpha.txt",
])
.with_limit(Resource::NOFILE, 9, 9)
.limit(Resource::NOFILE, 9, 9)
.succeeds();
}

Expand Down
7 changes: 2 additions & 5 deletions tests/by-util/test_chmod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -48,15 +48,12 @@ fn run_single_test(test: &TestCase, at: &AtPath, mut ucmd: UCommand) {
let r = ucmd.run();
if !r.succeeded() {
println!("{}", r.stderr_str());
panic!("{:?}: failed", ucmd.raw);
panic!("{ucmd}: failed");
}

let perms = at.metadata(TEST_FILE).permissions().mode();
if perms != test.after {
panic!(
"{:?}: expected: {:o} got: {:o}",
ucmd.raw, test.after, perms
);
panic!("{}: expected: {:o} got: {:o}", ucmd, test.after, perms);
}
}

Expand Down
14 changes: 7 additions & 7 deletions tests/by-util/test_chown.rs
Original file line number Diff line number Diff line change
Expand Up @@ -396,7 +396,7 @@ fn test_chown_only_user_id() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;

let result = scene.cmd_keepenv("id").arg("-u").run();
let result = scene.cmd("id").keep_env().arg("-u").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
Expand Down Expand Up @@ -430,7 +430,7 @@ fn test_chown_fail_id() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;

let result = scene.cmd_keepenv("id").arg("-u").run();
let result = scene.cmd("id").keep_env().arg("-u").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
Expand Down Expand Up @@ -487,7 +487,7 @@ fn test_chown_only_group_id() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;

let result = scene.cmd_keepenv("id").arg("-g").run();
let result = scene.cmd("id").keep_env().arg("-g").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
Expand Down Expand Up @@ -551,14 +551,14 @@ fn test_chown_owner_group_id() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;

let result = scene.cmd_keepenv("id").arg("-u").run();
let result = scene.cmd("id").keep_env().arg("-u").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
let user_id = String::from(result.stdout_str().trim());
assert!(!user_id.is_empty());

let result = scene.cmd_keepenv("id").arg("-g").run();
let result = scene.cmd("id").keep_env().arg("-g").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
Expand Down Expand Up @@ -612,14 +612,14 @@ fn test_chown_owner_group_mix() {
let scene = TestScenario::new(util_name!());
let at = &scene.fixtures;

let result = scene.cmd_keepenv("id").arg("-u").run();
let result = scene.cmd("id").keep_env().arg("-u").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
let user_id = String::from(result.stdout_str().trim());
assert!(!user_id.is_empty());

let result = scene.cmd_keepenv("id").arg("-gn").run();
let result = scene.cmd("id").keep_env().arg("-gn").run();
if skipping_test_is_okay(&result, "id: cannot find name for group ID") {
return;
}
Expand Down
17 changes: 10 additions & 7 deletions tests/by-util/test_cp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1545,7 +1545,7 @@ fn test_closes_file_descriptors() {
.arg("--reflink=auto")
.arg("dir_with_10_files/")
.arg("dir_with_10_files_new/")
.with_limit(Resource::NOFILE, limit_fd, limit_fd)
.limit(Resource::NOFILE, limit_fd, limit_fd)
.succeeds();
}

Expand Down Expand Up @@ -1692,7 +1692,8 @@ fn test_cp_reflink_always_override() {
.succeeds();

if !scene
.cmd_keepenv("env")
.cmd("env")
.keep_env()
.args(&["mkfs.btrfs", "--rootdir", ROOTDIR, DISK])
.run()
.succeeded()
Expand All @@ -1704,7 +1705,8 @@ fn test_cp_reflink_always_override() {
scene.fixtures.mkdir(MOUNTPOINT);

let mount = scene
.cmd_keepenv("sudo")
.cmd("sudo")
.keep_env()
.args(&["-E", "--non-interactive", "mount", DISK, MOUNTPOINT])
.run();

Expand All @@ -1730,7 +1732,8 @@ fn test_cp_reflink_always_override() {
.succeeds();

scene
.cmd_keepenv("sudo")
.cmd("sudo")
.keep_env()
.args(&["-E", "--non-interactive", "umount", MOUNTPOINT])
.succeeds();
}
Expand Down Expand Up @@ -2524,9 +2527,9 @@ fn test_src_base_dot() {
let at = ts.fixtures.clone();
at.mkdir("x");
at.mkdir("y");
let mut ucmd = UCommand::new(ts.bin_path, &Some(ts.util_name), at.plus("y"), true);

ucmd.args(&["--verbose", "-r", "../x/.", "."])
ts.ucmd()
.current_dir(at.plus("y"))
.args(&["--verbose", "-r", "../x/.", "."])
.succeeds()
.no_stderr()
.no_stdout();
Expand Down
3 changes: 2 additions & 1 deletion tests/by-util/test_env.rs
Original file line number Diff line number Diff line change
Expand Up @@ -156,7 +156,8 @@ fn test_unset_variable() {
// This test depends on the HOME variable being pre-defined by the
// default shell
let out = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("-u")
.arg("HOME")
.succeeds()
Expand Down
6 changes: 4 additions & 2 deletions tests/by-util/test_mktemp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -425,7 +425,8 @@ fn test_mktemp_tmpdir_one_arg() {
let scene = TestScenario::new(util_name!());

let result = scene
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("--tmpdir")
.arg("apt-key-gpghome.XXXXXXXXXX")
.succeeds();
Expand All @@ -438,7 +439,8 @@ fn test_mktemp_directory_tmpdir() {
let scene = TestScenario::new(util_name!());

let result = scene
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("--directory")
.arg("--tmpdir")
.arg("apt-key-gpghome.XXXXXXXXXX")
Expand Down
51 changes: 34 additions & 17 deletions tests/by-util/test_nproc.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,17 @@ fn test_nproc_all_omp() {
assert!(nproc > 0);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "60")
.succeeds();

let nproc_omp: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc_omp, 60);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "1") // Has no effect
.arg("--all")
.succeeds();
Expand All @@ -37,7 +39,8 @@ fn test_nproc_all_omp() {

// If the parsing fails, returns the number of CPU
let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "incorrectnumber") // returns the number CPU
.succeeds();
let nproc_omp: u8 = result.stdout_str().trim().parse().unwrap();
Expand All @@ -51,15 +54,17 @@ fn test_nproc_ignore() {
if nproc_total > 1 {
// Ignore all CPU but one
let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("--ignore")
.arg((nproc_total - 1).to_string())
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, 1);
// Ignore all CPU but one with a string
let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("--ignore= 1")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
Expand All @@ -70,7 +75,8 @@ fn test_nproc_ignore() {
#[test]
fn test_nproc_ignore_all_omp() {
let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "42")
.arg("--ignore=40")
.succeeds();
Expand All @@ -81,23 +87,26 @@ fn test_nproc_ignore_all_omp() {
#[test]
fn test_nproc_omp_limit() {
let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "42")
.env("OMP_THREAD_LIMIT", "0")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, 42);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "42")
.env("OMP_THREAD_LIMIT", "2")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, 2);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "42")
.env("OMP_THREAD_LIMIT", "2bad")
.succeeds();
Expand All @@ -109,62 +118,70 @@ fn test_nproc_omp_limit() {
assert!(nproc_system > 0);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_THREAD_LIMIT", "1")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, 1);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "0")
.env("OMP_THREAD_LIMIT", "")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, nproc_system);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "")
.env("OMP_THREAD_LIMIT", "")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(nproc, nproc_system);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "2,2,1")
.env("OMP_THREAD_LIMIT", "")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(2, nproc);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "2,ignored")
.env("OMP_THREAD_LIMIT", "")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(2, nproc);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "2,2,1")
.env("OMP_THREAD_LIMIT", "0")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(2, nproc);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "2,2,1")
.env("OMP_THREAD_LIMIT", "1bad")
.succeeds();
let nproc: u8 = result.stdout_str().trim().parse().unwrap();
assert_eq!(2, nproc);

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.env("OMP_NUM_THREADS", "29,2,1")
.env("OMP_THREAD_LIMIT", "1bad")
.succeeds();
Expand Down
6 changes: 4 additions & 2 deletions tests/by-util/test_printenv.rs
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ fn test_get_all() {
assert_eq!(env::var(key), Ok("VALUE".to_string()));

TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.succeeds()
.stdout_contains("HOME=")
.stdout_contains("KEY=VALUE");
Expand All @@ -21,7 +22,8 @@ fn test_get_var() {
assert_eq!(env::var(key), Ok("VALUE".to_string()));

let result = TestScenario::new(util_name!())
.ucmd_keepenv()
.ucmd()
.keep_env()
.arg("KEY")
.succeeds();

Expand Down
2 changes: 1 addition & 1 deletion tests/by-util/test_pwd.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ fn symlinked_env() -> Env {
// Note: on Windows this requires admin permissions
at.symlink_dir("subdir", "symdir");
let root = PathBuf::from(at.root_dir_resolved());
ucmd.raw.current_dir(root.join("symdir"));
ucmd.current_dir(root.join("symdir"));
#[cfg(not(windows))]
ucmd.env("PWD", root.join("symdir"));
Env {
Expand Down
Loading