diff --git a/tests/by-util/test_cksum.rs b/tests/by-util/test_cksum.rs index a9d9b272b..dbf7264e8 100644 --- a/tests/by-util/test_cksum.rs +++ b/tests/by-util/test_cksum.rs @@ -228,3 +228,37 @@ fn test_untagged_algorithm_stdin() { .stdout_is_fixture(format!("untagged/{algo}_stdin.expected")); } } + +#[test] +fn test_length_with_wrong_algorithm() { + new_ucmd!() + .arg("--length=16") + .arg("--algorithm=md5") + .arg("lorem_ipsum.txt") + .fails() + .no_stdout() + .stderr_contains("cksum: --length is only supported with --algorithm=blake2b") + .code_is(1); +} + +#[test] +fn test_length_not_supported() { + new_ucmd!() + .arg("--length=15") + .arg("lorem_ipsum.txt") + .fails() + .no_stdout() + .stderr_is_fixture("unsupported_length.expected") + .code_is(1); +} + +#[test] +fn test_length() { + new_ucmd!() + .arg("--length=16") + .arg("--algorithm=blake2b") + .arg("lorem_ipsum.txt") + .arg("alice_in_wonderland.txt") + .succeeds() + .stdout_is_fixture("supported_length.expected"); +} diff --git a/tests/fixtures/cksum/supported_length.expected b/tests/fixtures/cksum/supported_length.expected new file mode 100644 index 000000000..a2edb23e9 --- /dev/null +++ b/tests/fixtures/cksum/supported_length.expected @@ -0,0 +1,2 @@ +BLAKE2b-16 (lorem_ipsum.txt) = 7e2f +BLAKE2b-16 (alice_in_wonderland.txt) = a546 diff --git a/tests/fixtures/cksum/unsupported_length.expected b/tests/fixtures/cksum/unsupported_length.expected new file mode 100644 index 000000000..c2a05fec7 --- /dev/null +++ b/tests/fixtures/cksum/unsupported_length.expected @@ -0,0 +1,2 @@ +cksum: invalid length: ‘15’ +cksum: length is not a multiple of 8