mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
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:
@@ -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()
|
||||
|
||||
@@ -37,6 +37,7 @@ _cleanup()
|
||||
# real QA test starts here
|
||||
_supported_fs generic
|
||||
_require_test
|
||||
_require_chown
|
||||
|
||||
QA_FS_PERMS=$here/src/fs_perms
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -25,6 +25,7 @@ _supported_fs generic
|
||||
_require_test
|
||||
_require_user
|
||||
_require_odirect
|
||||
_require_chmod
|
||||
|
||||
TESTDIR=$TEST_DIR/ftrunc
|
||||
TESTFILE=$TESTDIR/ftrunc.tmp
|
||||
|
||||
@@ -27,6 +27,7 @@ _cleanup()
|
||||
# real QA test starts here
|
||||
_supported_fs generic
|
||||
_require_test
|
||||
_require_chown
|
||||
|
||||
QA_FS_PERMS=$here/src/fs_perms
|
||||
|
||||
|
||||
@@ -24,6 +24,7 @@ _supported_fs generic
|
||||
|
||||
_require_scratch
|
||||
_require_user
|
||||
_require_chmod
|
||||
|
||||
_scratch_mkfs >/dev/null 2>&1
|
||||
_scratch_mount "-o nosuid"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -29,6 +29,7 @@ _cleanup()
|
||||
_supported_fs generic
|
||||
_require_test
|
||||
_require_user
|
||||
_require_chown
|
||||
|
||||
rm -rf $TEST_DIR/$seq-dir
|
||||
|
||||
|
||||
@@ -45,6 +45,7 @@ _require_scratch
|
||||
_require_user
|
||||
_require_ugid_map
|
||||
_require_userns
|
||||
_require_chown
|
||||
qa_user_id=`id -u $qa_user`
|
||||
|
||||
_filter_output()
|
||||
|
||||
@@ -32,6 +32,7 @@ _supported_fs generic
|
||||
_require_test
|
||||
_require_user
|
||||
_require_odirect
|
||||
_require_chown
|
||||
|
||||
testfile=$TEST_DIR/$seq.test
|
||||
rm -f $testfile
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user