From b51e55e7418c5a1150dc8268b59ca9a637628f68 Mon Sep 17 00:00:00 2001 From: Qu Wenruo Date: Mon, 21 Apr 2025 17:29:40 +0930 Subject: [PATCH] fstests: btrfs/253: fix false alert due to _set_fs_sysfs_attr changes [FALSE FAILURE] Test btrfs/253 now fails like the following: btrfs/253 2s ... - output mismatch (see ~/xfstests/results//btrfs/253.out.bad) --- tests/btrfs/253.out 2022-05-11 11:25:30.753333331 +0930 +++ ~/xfstests/results//btrfs/253.out.bad 2025-04-20 17:28:39.139180394 +0930 @@ -5,6 +5,7 @@ Calculate request size so last memory allocation cannot be completely fullfilled. Third allocation. Force allocation of system block type must fail. +./common/rc: line 5213: echo: write error: No space left on device Verify first allocation. Verify second allocation. Verify third allocation. ... (Run 'diff -u ~/xfstests/tests/btrfs/253.out ~/xfstests/results//btrfs/253.out.bad' to see the entire diff) [CAUSE] Since commit 0a9011ae6a36 ("fstests: common/rc: set_fs_sysfs_attr: redirect errors to stdout") the function _set_fs_sysfs_attr() always output everything into stdout, thus the stderr redirection makes no sense anymore. And the expected failure will cause output difference and fail the test. [FIX] Use the helper _set_sysfs_policy_must_fail() instead, which will handle the failure. And update the golden output to include the expected ENOSPC error message. Fixes: 0a9011ae6a36 ("fstests: common/rc: set_fs_sysfs_attr: redirect errors to stdout") Signed-off-by: Qu Wenruo Reviewed-by: Anand Jain Signed-off-by: Anand Jain --- tests/btrfs/253 | 3 ++- tests/btrfs/253.out | 1 + 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/tests/btrfs/253 b/tests/btrfs/253 index adbc6bfb..96ab140f 100755 --- a/tests/btrfs/253 +++ b/tests/btrfs/253 @@ -25,6 +25,7 @@ # value is in megabytes. # . ./common/preamble +. ./common/sysfs _begin_fstest auto seq=`basename $0` @@ -228,7 +229,7 @@ alloc_size "Data" FOURTH_DATA_SIZE_MB # Force chunk allocation of system block type must fail. # echo "Force allocation of system block type must fail." -_set_fs_sysfs_attr ${SCRATCH_BDEV} allocation/system/force_chunk_alloc 1 2>/dev/null +_set_sysfs_policy_must_fail ${SCRATCH_BDEV} allocation/system/force_chunk_alloc 1 # # Verification of initial allocation. diff --git a/tests/btrfs/253.out b/tests/btrfs/253.out index 6eea60f0..5aa75d54 100644 --- a/tests/btrfs/253.out +++ b/tests/btrfs/253.out @@ -5,6 +5,7 @@ Second allocation. Calculate request size so last memory allocation cannot be completely fullfilled. Third allocation. Force allocation of system block type must fail. +No space left on device Verify first allocation. Verify second allocation. Verify third allocation. -- 2.47.3