From 68e777d9fd7eb56879756ebbddd1ae914dbd968a Mon Sep 17 00:00:00 2001 From: naoNao89 <90588855+naoNao89@users.noreply.github.com> Date: Wed, 6 May 2026 11:01:41 +0700 Subject: [PATCH] test(cksum): regression test for write errors to /dev/full Adds a Linux-only regression test that verifies cksum exits with code 1 (rather than panicking) when stdout is /dev/full. Refs #10947 (fixed by #12099). --- tests/by-util/test_cksum.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/tests/by-util/test_cksum.rs b/tests/by-util/test_cksum.rs index 7998ae13d8f..3a208fb1943 100644 --- a/tests/by-util/test_cksum.rs +++ b/tests/by-util/test_cksum.rs @@ -3423,3 +3423,20 @@ fn test_check_blake3_untagged( .succeeds() .stdout_only("FILE: OK\n"); } + +// Regression test: cksum should handle write errors to /dev/full without aborting. +#[test] +#[cfg(target_os = "linux")] +fn test_write_error_dev_full() { + use std::fs::OpenOptions; + let dev_full = OpenOptions::new() + .write(true) + .open("/dev/full") + .expect("Failed to open /dev/full - test must run on Linux"); + + new_ucmd!() + .arg("/dev/null") + .set_stdout(dev_full) + .fails() + .code_is(1); +}