2023-03-20 13:51:19 +00:00
|
|
|
use crate::common::util::TestScenario;
|
2021-04-10 08:41:59 +00:00
|
|
|
|
2022-09-10 16:38:14 +00:00
|
|
|
#[test]
|
|
|
|
fn test_invalid_arg() {
|
|
|
|
new_ucmd!().arg("--definitely-invalid").fails().code_is(1);
|
|
|
|
}
|
|
|
|
|
2021-04-10 08:41:59 +00:00
|
|
|
#[test]
|
|
|
|
fn test_shred_remove() {
|
|
|
|
let scene = TestScenario::new(util_name!());
|
|
|
|
let at = &scene.fixtures;
|
|
|
|
|
|
|
|
let file_a = "test_shred_remove_a";
|
|
|
|
let file_b = "test_shred_remove_b";
|
|
|
|
|
|
|
|
// Create file_a and file_b.
|
|
|
|
at.touch(file_a);
|
|
|
|
at.touch(file_b);
|
|
|
|
|
|
|
|
// Shred file_a.
|
2023-06-18 13:26:23 +00:00
|
|
|
scene.ucmd().arg("-u").arg(file_a).succeeds();
|
2021-04-10 08:41:59 +00:00
|
|
|
|
|
|
|
// file_a was deleted, file_b exists.
|
|
|
|
assert!(!at.file_exists(file_a));
|
|
|
|
assert!(at.file_exists(file_b));
|
|
|
|
}
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_shred_force() {
|
|
|
|
let scene = TestScenario::new(util_name!());
|
|
|
|
let at = &scene.fixtures;
|
|
|
|
|
|
|
|
let file = "test_shred_force";
|
|
|
|
|
|
|
|
// Create file_a.
|
|
|
|
at.touch(file);
|
|
|
|
assert!(at.file_exists(file));
|
|
|
|
|
|
|
|
// Make file_a readonly.
|
|
|
|
at.set_readonly(file);
|
|
|
|
|
|
|
|
// Try shred -u.
|
2021-04-17 12:22:20 +00:00
|
|
|
scene.ucmd().arg("-u").arg(file).run();
|
2021-04-10 08:41:59 +00:00
|
|
|
|
|
|
|
// file_a was not deleted because it is readonly.
|
|
|
|
assert!(at.file_exists(file));
|
|
|
|
|
|
|
|
// Try shred -u -f.
|
|
|
|
scene.ucmd().arg("-u").arg("-f").arg(file).run();
|
|
|
|
|
|
|
|
// file_a was deleted.
|
|
|
|
assert!(!at.file_exists(file));
|
|
|
|
}
|
2023-05-30 03:10:16 +00:00
|
|
|
|
|
|
|
#[test]
|
|
|
|
fn test_hex() {
|
|
|
|
let (at, mut ucmd) = at_and_ucmd!();
|
|
|
|
|
|
|
|
let file = "test_hex";
|
|
|
|
|
|
|
|
at.touch(file);
|
|
|
|
|
|
|
|
ucmd.arg("--size=0x10").arg(file).succeeds();
|
|
|
|
}
|