On Wed, Mar 31, 2021 at 12:00:02AM +0200, Pavel Reichl wrote: > Add helper functions that ensure that test is only executed on file > systems that implement chown, chmod and symbolic links. > > Fixed test are: generic/{87,88,125,126,128,193,314,317,355,597,598} > > Signed-off-by: Pavel Reichl <preichl@xxxxxxxxxx> > --- > common/rc | 27 +++++++++++++++++++++++++++ > tests/generic/087 | 1 + > tests/generic/088 | 1 + > tests/generic/125 | 1 + > tests/generic/126 | 1 + > tests/generic/128 | 1 + > tests/generic/193 | 1 + > tests/generic/314 | 1 + > tests/generic/317 | 1 + > tests/generic/355 | 1 + > tests/generic/597 | 1 + > tests/generic/598 | 1 + > 12 files changed, 38 insertions(+) > > diff --git a/common/rc b/common/rc > index 0ce3cb0d..9cdfe21c 100644 > --- a/common/rc > +++ b/common/rc > @@ -2129,6 +2129,33 @@ _require_user() > [ "$?" == "0" ] || _notrun "$qa_user cannot execute commands." > } > > +# check for a chown support > +# > +_require_chown() > +{ > + if [ "$FSTYP" = "exfat" ]; then > + _notrun "chown is not supported on $FSTYP" > + fi > +} > + > +# check for a chmod support > +# > +_require_chmod() > +{ > + if [ "$FSTYP" = "exfat" ]; then > + _notrun "chmod is not supported on $FSTYP" > + fi > +} > + Does chown/chmod fail on exfat? Like the existing _require_symlink() implementation and many other _require rules, we try to actually do the action on $TEST_DIR, and check if command succeeds to see if the action is supported by current $FSTYP. Is it possible for exfat to do the same check? We only use whitelist if it's impossible to do such check. Thanks, Eryu > +# check for a symbolic links support > +# > +_require_symlink() > +{ > + if [ "$FSTYP" = "exfat" ]; then > + _notrun "symbolic links are not supported on $FSTYP" > + fi > +} > + > # check for a group on the machine, fsgqa as default > # > _require_group() > diff --git a/tests/generic/087 b/tests/generic/087 > index 1f30dbf4..c3576117 100755 > --- a/tests/generic/087 > +++ b/tests/generic/087 > @@ -37,6 +37,7 @@ _cleanup() > # real QA test starts here > _supported_fs generic > _require_test > +_require_chown > > QA_FS_PERMS=$here/src/fs_perms > > diff --git a/tests/generic/088 b/tests/generic/088 > index 9388a083..ad99bd7e 100755 > --- a/tests/generic/088 > +++ b/tests/generic/088 > @@ -29,6 +29,7 @@ _filter() > # real QA test starts here > _supported_fs generic > _require_test > +_require_chown > > path=$TEST_DIR/t_access > $here/src/t_access_root $path | tee $seqres.full | _filter > diff --git a/tests/generic/125 b/tests/generic/125 > index e84248d3..8c8f5cd7 100755 > --- a/tests/generic/125 > +++ b/tests/generic/125 > @@ -25,6 +25,7 @@ _supported_fs generic > _require_test > _require_user > _require_odirect > +_require_chmod > > TESTDIR=$TEST_DIR/ftrunc > TESTFILE=$TESTDIR/ftrunc.tmp > diff --git a/tests/generic/126 b/tests/generic/126 > index ac25d294..636ca00d 100755 > --- a/tests/generic/126 > +++ b/tests/generic/126 > @@ -27,6 +27,7 @@ _cleanup() > # real QA test starts here > _supported_fs generic > _require_test > +_require_chown > > QA_FS_PERMS=$here/src/fs_perms > > diff --git a/tests/generic/128 b/tests/generic/128 > index b3e49eff..c1eae77a 100755 > --- a/tests/generic/128 > +++ b/tests/generic/128 > @@ -24,6 +24,7 @@ _supported_fs generic > > _require_scratch > _require_user > +_require_chmod > > _scratch_mkfs >/dev/null 2>&1 > _scratch_mount "-o nosuid" > diff --git a/tests/generic/193 b/tests/generic/193 > index 3125efdd..fd0ebbf6 100755 > --- a/tests/generic/193 > +++ b/tests/generic/193 > @@ -56,6 +56,7 @@ _supported_fs generic > > _require_test > _require_user > +_require_chown > > test_root=$TEST_DIR/$seq.$$.root > test_user=$TEST_DIR/$seq.$$.user > diff --git a/tests/generic/314 b/tests/generic/314 > index 03df81ce..540f0feb 100755 > --- a/tests/generic/314 > +++ b/tests/generic/314 > @@ -29,6 +29,7 @@ _cleanup() > _supported_fs generic > _require_test > _require_user > +_require_chown > > rm -rf $TEST_DIR/$seq-dir > > diff --git a/tests/generic/317 b/tests/generic/317 > index 29c37a57..289dfabe 100755 > --- a/tests/generic/317 > +++ b/tests/generic/317 > @@ -45,6 +45,7 @@ _require_scratch > _require_user > _require_ugid_map > _require_userns > +_require_chown > qa_user_id=`id -u $qa_user` > > _filter_output() > diff --git a/tests/generic/355 b/tests/generic/355 > index 161dd042..74fba0f9 100755 > --- a/tests/generic/355 > +++ b/tests/generic/355 > @@ -32,6 +32,7 @@ _supported_fs generic > _require_test > _require_user > _require_odirect > +_require_chown > > testfile=$TEST_DIR/$seq.test > rm -f $testfile > diff --git a/tests/generic/597 b/tests/generic/597 > index ba769d73..f596406c 100755 > --- a/tests/generic/597 > +++ b/tests/generic/597 > @@ -43,6 +43,7 @@ _require_sysctl_variable fs.protected_hardlinks > _require_user fsgqa2 > # Do this SECOND so that qa_user is fsgqa, and _user_do uses that account > _require_user fsgqa > +_require_symlink > > OWNER=fsgqa2 > OTHER=fsgqa > diff --git a/tests/generic/598 b/tests/generic/598 > index 6b765275..230c3ac7 100755 > --- a/tests/generic/598 > +++ b/tests/generic/598 > @@ -43,6 +43,7 @@ _require_sysctl_variable fs.protected_fifos > _require_user fsgqa2 > # Do this SECOND so that qa_user is fsgqa, and _user_do uses that account > _require_user fsgqa > +_require_chmod > > USER1=fsgqa2 > USER2=fsgqa > -- > 2.30.2