On Wed, Jan 29, 2025 at 11:19:54PM +0800, Anand Jain wrote: > Checks if the sysfs attribute sanitizes arguments and verifies > input syntax. > > Signed-off-by: Anand Jain <anand.jain@xxxxxxxxxx> > --- > tests/btrfs/329 | 92 +++++++++++++++++++++++++++++++++++++++++++++ > tests/btrfs/329.out | 2 + > 2 files changed, 94 insertions(+) > create mode 100755 tests/btrfs/329 > create mode 100644 tests/btrfs/329.out > > diff --git a/tests/btrfs/329 b/tests/btrfs/329 > new file mode 100755 > index 000000000000..9f63ab951eac > --- /dev/null > +++ b/tests/btrfs/329 > @@ -0,0 +1,92 @@ > +#! /bin/bash > +# SPDX-License-Identifier: GPL-2.0 > +# Copyright (c) 2025 Oracle. All Rights Reserved. > +# > +# FS QA Test 329 > +# > +# Verify sysfs knob input syntax. > +# > +. ./common/preamble > +_begin_fstest auto quick > + > +. ./common/filter > + > +# Modify as appropriate. > +_require_scratch > +_require_fs_sysfs read_policy > + > +_scratch_mkfs > /dev/null 2>&1 || _fail "mkfs failed" > +_scratch_mount > + > +set_sysfs_policy() > +{ > + local attr=$1 > + shift > + local policy=$@ > + > + _set_fs_sysfs_attr $SCRATCH_DEV $attr ${policy} > + _get_fs_sysfs_attr $SCRATCH_DEV $attr | grep -q "[${policy}]" > + if [[ $? != 0 ]]; then > + echo "Setting sysfs $attr $policy failed" > + fi > +} > + > +set_sysfs_policy_must_fail() > +{ > + local attr=$1 > + shift > + local policy=$@ > + > + _set_fs_sysfs_attr $SCRATCH_DEV $attr ${policy} | _filter_sysfs_error \ > + | _expect_error_invalid_argument | tee -a $seqres.full This "catch an exact error or output a different error then use golden image match failure on secondary error to mark the test as failed" semantic is .... overly complex. The output on failure of _filter_sysfs_error will be "Invalid input". If there's some other failure or it succeeds, the output will indicate the failure that occurred (i.e. missing line means no error, different error will output directly by the filter). The golden image matching will still fail the test. IOWs, _expect_error_invalid_argument and the output to seqres.full can go away if the test.out file has a matching error for each call to set_sysfs_policy_must_fail(). i.e it looks like: QA output created by 329 Invalid input Invalid input Invalid input Invalid input Invalid input Invalid input ..... Invalid input -Dave. -- Dave Chinner david@xxxxxxxxxxxxx