Merge pull request #2178 from cgwalters/ioctl-test

tests: Check the immutable bit
This commit is contained in:
OpenShift Merge Robot 2020-08-21 14:40:21 -04:00 committed by GitHub
commit 9850ec9cc6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 0 deletions

View File

@ -31,3 +31,10 @@ fn test_sysroot_ro() -> Result<()> {
Ok(())
}
#[itest]
fn test_immutable_bit() -> Result<()> {
// https://bugzilla.redhat.com/show_bug.cgi?id=1867601
cmd_has_output(commandspec::sh_command!("lsattr -d /").unwrap(), "-i-")?;
Ok(())
}

View File

@ -49,6 +49,20 @@ pub(crate) fn cmd_fails_with<C: BorrowMut<Command>>(mut c: C, pat: &str) -> Resu
Ok(())
}
/// Run command and assert that its stdout contains pat
pub(crate) fn cmd_has_output<C: BorrowMut<Command>>(mut c: C, pat: &str) -> Result<()> {
let c = c.borrow_mut();
let o = c.output()?;
if !o.status.success() {
bail!("Command {:?} failed", c);
}
if !twoway::find_bytes(&o.stdout, pat.as_bytes()).is_some() {
dbg!(String::from_utf8_lossy(&o.stdout));
bail!("Command {:?} stdout did not match: {}", c, pat);
}
Ok(())
}
pub(crate) fn write_file<P: AsRef<Path>>(p: P, buf: &str) -> Result<()> {
let p = p.as_ref();
let mut f = File::create(p)?;
@ -219,6 +233,15 @@ mod tests {
cmd_fails_with(oops(), "nomatch").expect_err("nomatch");
}
#[test]
fn test_output() -> Result<()> {
cmd_has_output(Command::new("true"), "")?;
assert!(cmd_has_output(Command::new("true"), "foo").is_err());
cmd_has_output(commandspec::sh_command!("echo foobarbaz; echo fooblahbaz").unwrap(), "blah")?;
assert!(cmd_has_output(commandspec::sh_command!("echo foobarbaz").unwrap(), "blah").is_err());
Ok(())
}
#[test]
fn test_validate_authz() -> Result<()> {
assert!(validate_authz("Basic Zm9vdXNlcjpiYXJwdw==".as_bytes())?);