mirror of
https://github.com/uutils/coreutils
synced 2024-10-14 20:07:13 +00:00
chgrp: add tests
This commit is contained in:
parent
9dda0bcd25
commit
d2d9fcd628
102
tests/test_chgrp.rs
Normal file
102
tests/test_chgrp.rs
Normal file
|
@ -0,0 +1,102 @@
|
|||
use common::util::*;
|
||||
|
||||
static UTIL_NAME: &'static str = "chgrp";
|
||||
fn new_ucmd() -> UCommand {
|
||||
TestScenario::new(UTIL_NAME).ucmd()
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_invalid_option() {
|
||||
new_ucmd()
|
||||
.arg("-w")
|
||||
.arg("/")
|
||||
.fails();
|
||||
}
|
||||
|
||||
static DIR: &'static str = "/tmp";
|
||||
|
||||
#[test]
|
||||
fn test_invalid_group() {
|
||||
new_ucmd()
|
||||
.arg("nosuchgroup")
|
||||
.arg("/")
|
||||
.fails()
|
||||
.stderr_is("chgrp: invalid group: nosuchgroup");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_1() {
|
||||
new_ucmd()
|
||||
.arg("bin")
|
||||
.arg(DIR)
|
||||
.fails()
|
||||
.stderr_is("chgrp: changing group of '/tmp': Operation not permitted (os error 1)");
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_fail_silently() {
|
||||
for opt in &["-f", "--silent", "--quiet"] {
|
||||
new_ucmd()
|
||||
.arg(opt)
|
||||
.arg("bin")
|
||||
.arg(DIR)
|
||||
.run()
|
||||
.fails_silently();
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_preserve_root() {
|
||||
new_ucmd()
|
||||
.arg("--preserve-root")
|
||||
.arg("-R")
|
||||
.arg("bin").arg("/")
|
||||
.fails()
|
||||
.stderr_is("chgrp: it is dangerous to operate recursively on '/'\nchgrp: use --no-preserve-root to override this failsafe");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "linux")]
|
||||
fn test_reference() {
|
||||
new_ucmd()
|
||||
.arg("-v")
|
||||
.arg("--reference=/etc/passwd")
|
||||
.arg("/etc")
|
||||
.fails()
|
||||
.stderr_is("chgrp: changing group of '/etc': Operation not permitted (os error 1)\n")
|
||||
.stdout_is("failed to change group of /etc from root to root\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "macos")]
|
||||
fn test_reference() {
|
||||
new_ucmd()
|
||||
.arg("-v")
|
||||
.arg("--reference=/etc/passwd")
|
||||
.arg("/etc")
|
||||
.succeeds();
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "linux")]
|
||||
fn test_big_p() {
|
||||
new_ucmd()
|
||||
.arg("-RP")
|
||||
.arg("bin")
|
||||
.arg("/proc/self/cwd")
|
||||
.fails()
|
||||
.stderr_is("chgrp: changing group of '/proc/self/cwd': Operation not permitted (os error 1)\n");
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[cfg(target_os = "linux")]
|
||||
fn test_big_h() {
|
||||
assert!(new_ucmd()
|
||||
.arg("-RH")
|
||||
.arg("bin")
|
||||
.arg("/proc/self/fd")
|
||||
.fails()
|
||||
.stderr
|
||||
.lines()
|
||||
.fold(0, |acc, _| acc + 1) > 1);
|
||||
}
|
|
@ -14,6 +14,7 @@ macro_rules! unix_only {
|
|||
unix_only! {
|
||||
"chmod", test_chmod;
|
||||
"chown", test_chown;
|
||||
"chgrp", test_chgrp;
|
||||
"install", test_install;
|
||||
"mv", test_mv;
|
||||
"pathchk", test_pathchk;
|
||||
|
|
Loading…
Reference in a new issue