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

truncate: add a division by zero error

Add an error for division by zero. Previously, running `truncate -s /0
file` or `-s %0` would panic due to division by zero. After this
change, it writes an error message "division by zero" to stderr and
terminates with an error code.
This commit is contained in:
Jeffrey Finkelstein 2022-01-27 21:03:38 -05:00
parent 1074deeb03
commit 1e5e637990
2 changed files with 37 additions and 0 deletions

View file

@ -346,3 +346,34 @@ fn test_new_file_no_create() {
.no_stderr();
assert!(!at.file_exists(filename));
}
#[test]
fn test_division_by_zero_size_only() {
new_ucmd!()
.args(&["-s", "/0", "file"])
.fails()
.no_stdout()
.stderr_contains("division by zero");
new_ucmd!()
.args(&["-s", "%0", "file"])
.fails()
.no_stdout()
.stderr_contains("division by zero");
}
#[test]
fn test_division_by_zero_reference_and_size() {
let (at, mut ucmd) = at_and_ucmd!();
at.make_file(FILE1);
ucmd.args(&["-r", FILE1, "-s", "/0", "file"])
.fails()
.no_stdout()
.stderr_contains("division by zero");
let (at, mut ucmd) = at_and_ucmd!();
at.make_file(FILE1);
ucmd.args(&["-r", FILE1, "-s", "%0", "file"])
.fails()
.no_stdout()
.stderr_contains("division by zero");
}