common/rc: Enhance _exclude_scratch_mount_option to handle multiple options

Enhance _exclude_scratch_mount_option() function to normalize mount
options. Now it can understand and extract real mount option from
string like "-o opt1,opt2 -oopt3".

And now we do word grep to handle mount options like noinode_cache
and inode_cache.

Finally, allow it to accept multiple options at the same time. No
need for multiple _exclude_scratch_mount_option lines now

Signed-off-by: Qu Wenruo <quwenruo@cn.fujitsu.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
This commit is contained in:
Qu Wenruo
2016-09-08 10:52:21 +08:00
committed by Eryu Guan
parent 14a7fdfab1
commit d67700c75a
3 changed files with 20 additions and 10 deletions
+15 -2
View File
@@ -3192,12 +3192,25 @@ _require_cloner()
_notrun "cloner binary not present at $CLONER_PROG"
}
# skip test if MKFS_OPTIONS contains the given string
# Normalize mount options from global $MOUNT_OPTIONS
# Convert options like "-o opt1,opt2 -oopt3" to
# "opt1 opt2 opt3"
_normalize_mount_options()
{
echo $MOUNT_OPTIONS | sed -n 's/-o\s*\(\S*\)/\1/gp'| sed 's/,/ /g'
}
# skip test if MOUNT_OPTIONS contains the given strings
_exclude_scratch_mount_option()
{
if echo $MOUNT_OPTIONS | grep -q "$1"; then
local mnt_opts=$(_normalize_mount_options)
while [ $# -gt 0 ]; do
if echo $mnt_opts | grep -qw "$1"; then
_notrun "mount option \"$1\" not allowed in this test"
fi
shift
done
}
_require_atime()
+2 -4
View File
@@ -41,10 +41,8 @@ _supported_os Linux
_require_scratch
# this test needs no journal to be loaded, skip on journal related mount
# options, otherwise mount would fail with "-o noload" mount option
_exclude_scratch_mount_option "data="
_exclude_scratch_mount_option "commit="
_exclude_scratch_mount_option "journal_checksum"
_exclude_scratch_mount_option "journal_async_commit"
_exclude_scratch_mount_option "data" "commit" "journal_checksum" \
"journal_async_commit"
rm -f $seqres.full
_scratch_mkfs_sized $((128 * 1024 * 1024)) >> $seqres.full 2>&1
+1 -2
View File
@@ -51,8 +51,7 @@ _supported_os Linux IRIX
_require_test
_require_xfs_quota
# we can't run with group quotas
_exclude_scratch_mount_option "gquota"
_exclude_scratch_mount_option "grpquota"
_exclude_scratch_mount_option "gquota" "grpquota"
dir=$SCRATCH_MNT/project