From 98d120f47d5b787325284bfb1a629b0a8f68a4ae Mon Sep 17 00:00:00 2001 From: Ben Wiederhake Date: Sun, 20 Apr 2025 18:46:52 +0200 Subject: [PATCH] shred: correctly print zero-byte pass in verbose mode Fixes #7798. --- src/uu/shred/src/shred.rs | 4 ++-- tests/by-util/test_shred.rs | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/uu/shred/src/shred.rs b/src/uu/shred/src/shred.rs index 93b9c589f50..ffd8e106fde 100644 --- a/src/uu/shred/src/shred.rs +++ b/src/uu/shred/src/shred.rs @@ -376,8 +376,8 @@ fn get_size(size_str_opt: Option) -> Option { fn pass_name(pass_type: &PassType) -> String { match pass_type { PassType::Random => String::from("random"), - PassType::Pattern(Pattern::Single(byte)) => format!("{byte:x}{byte:x}{byte:x}"), - PassType::Pattern(Pattern::Multi([a, b, c])) => format!("{a:x}{b:x}{c:x}"), + PassType::Pattern(Pattern::Single(byte)) => format!("{byte:02x}{byte:02x}{byte:02x}"), + PassType::Pattern(Pattern::Multi([a, b, c])) => format!("{a:02x}{b:02x}{c:02x}"), } } diff --git a/tests/by-util/test_shred.rs b/tests/by-util/test_shred.rs index f8965440cd3..0bbc275614a 100644 --- a/tests/by-util/test_shred.rs +++ b/tests/by-util/test_shred.rs @@ -208,3 +208,14 @@ fn test_shred_fail_no_perm() { .fails() .stderr_contains("Couldn't rename to"); } + +#[test] +fn test_shred_verbose_pass_single_0_byte_name() { + let (at, mut ucmd) = at_and_ucmd!(); + let file = "foo"; + at.write(file, "non-empty"); + ucmd.arg("-vn200") + .arg(file) + .succeeds() + .stderr_contains("/200 (000000)...\n"); +}