common/rc: Add _require_{chown,chmod}()

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}

[Eryu: remove _require_test and declare variable as local]

Signed-off-by: Pavel Reichl <preichl@redhat.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
This commit is contained in:
Pavel Reichl
2021-04-20 00:04:03 +02:00
committed by Eryu Guan
parent bb2f356f14
commit ace9db40f9
12 changed files with 45 additions and 0 deletions
+34
View File
@@ -2185,6 +2185,40 @@ _require_user()
[ "$?" == "0" ] || _notrun "$qa_user cannot execute commands."
}
# check for a chown support
#
_require_chown()
{
local rnd_uid=4242
local file="$TEST_DIR/chown_testfile"
rm -f $file
touch $file
chown ${rnd_uid}:${rnd_uid} $file >/dev/null 2>&1 \
|| _notrun "chown is not supported ${FSTYP}"
}
# check for a chmod support
# Since chmod sometimes fails silently actual functionality test is done
#
_require_chmod()
{
local file="$TEST_DIR/chmod_testfile"
rm -f $file
touch $file
# get original file mode
local mode=`stat --format="0%a" $file`
# flip the user's read bit
let mode^=0400
chmod `printf '%o' "$mode"` $file
# check that the chmod actually flipped the bit
[ `stat --format="0%a" $file` == `printf '0%o' "$mode"` ] \
|| _notrun "chmod is not supported ${FSTYP}"
}
# check for a group on the machine, fsgqa as default
#
_require_group()
+1
View File
@@ -37,6 +37,7 @@ _cleanup()
# real QA test starts here
_supported_fs generic
_require_test
_require_chown
QA_FS_PERMS=$here/src/fs_perms
+1
View File
@@ -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
+1
View File
@@ -25,6 +25,7 @@ _supported_fs generic
_require_test
_require_user
_require_odirect
_require_chmod
TESTDIR=$TEST_DIR/ftrunc
TESTFILE=$TESTDIR/ftrunc.tmp
+1
View File
@@ -27,6 +27,7 @@ _cleanup()
# real QA test starts here
_supported_fs generic
_require_test
_require_chown
QA_FS_PERMS=$here/src/fs_perms
+1
View File
@@ -24,6 +24,7 @@ _supported_fs generic
_require_scratch
_require_user
_require_chmod
_scratch_mkfs >/dev/null 2>&1
_scratch_mount "-o nosuid"
+1
View File
@@ -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
+1
View File
@@ -29,6 +29,7 @@ _cleanup()
_supported_fs generic
_require_test
_require_user
_require_chown
rm -rf $TEST_DIR/$seq-dir
+1
View File
@@ -45,6 +45,7 @@ _require_scratch
_require_user
_require_ugid_map
_require_userns
_require_chown
qa_user_id=`id -u $qa_user`
_filter_output()
+1
View File
@@ -32,6 +32,7 @@ _supported_fs generic
_require_test
_require_user
_require_odirect
_require_chown
testfile=$TEST_DIR/$seq.test
rm -f $testfile
+1
View File
@@ -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_symlinks
OWNER=fsgqa2
OTHER=fsgqa
+1
View File
@@ -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