linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2] fstests: common: Enhance _exclude_scratch_mount_option to handle multiple options
@ 2016-09-08  2:52 Qu Wenruo
  2016-09-08  6:17 ` Eryu Guan
  0 siblings, 1 reply; 2+ messages in thread
From: Qu Wenruo @ 2016-09-08  2:52 UTC (permalink / raw)
  To: linux-btrfs, fstests

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>
---
changelog:
v2:
   Don't introduce new 'fstype' parameter, suggested by Dave and Eryu.
   Use easier grep -w method, suggested by Dave and Eryu.
---
 common/rc      | 22 ++++++++++++++++++----
 tests/ext4/271 |  6 ++----
 tests/xfs/134  |  3 +--
 3 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/common/rc b/common/rc
index 04039a4..23c007a 100644
--- a/common/rc
+++ b/common/rc
@@ -3183,12 +3183,26 @@ _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 string
 _exclude_scratch_mount_option()
 {
-	if echo $MOUNT_OPTIONS | grep -q "$1"; then
-		_notrun "mount option \"$1\" not allowed in this test"
-	fi
+	mnt_opts=$(_normalize_mount_options)
+
+	while [ $# -gt 1 ]; do
+		if echo $mnt_opts | grep -qw "$1"; then
+			_notrun "mount option \"$1\" not allowed in this test"
+		fi
+		shift
+	done
 }
 
 _require_atime()
diff --git a/tests/ext4/271 b/tests/ext4/271
index 8674090..6f61e51 100755
--- a/tests/ext4/271
+++ b/tests/ext4/271
@@ -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
diff --git a/tests/xfs/134 b/tests/xfs/134
index b3a1107..21fe1ed 100755
--- a/tests/xfs/134
+++ b/tests/xfs/134
@@ -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
 
-- 
2.7.4




^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH v2] fstests: common: Enhance _exclude_scratch_mount_option to handle multiple options
  2016-09-08  2:52 [PATCH v2] fstests: common: Enhance _exclude_scratch_mount_option to handle multiple options Qu Wenruo
@ 2016-09-08  6:17 ` Eryu Guan
  0 siblings, 0 replies; 2+ messages in thread
From: Eryu Guan @ 2016-09-08  6:17 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs, fstests

On Thu, Sep 08, 2016 at 10:52:21AM +0800, Qu Wenruo wrote:
> 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>
> ---
> changelog:
> v2:
>    Don't introduce new 'fstype' parameter, suggested by Dave and Eryu.
>    Use easier grep -w method, suggested by Dave and Eryu.
> ---
>  common/rc      | 22 ++++++++++++++++++----
>  tests/ext4/271 |  6 ++----
>  tests/xfs/134  |  3 +--
>  3 files changed, 21 insertions(+), 10 deletions(-)
> 
> diff --git a/common/rc b/common/rc
> index 04039a4..23c007a 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -3183,12 +3183,26 @@ _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 string

Make "string" plural? Because it accepts multiple arguments now :)

>  _exclude_scratch_mount_option()
>  {
> -	if echo $MOUNT_OPTIONS | grep -q "$1"; then
> -		_notrun "mount option \"$1\" not allowed in this test"
> -	fi
> +	mnt_opts=$(_normalize_mount_options)
> +
> +	while [ $# -gt 1 ]; do

"-gt" should be "-ge" or "-gt 0", otherwise the last mount option in
arguments is not checked (no check is done if there's only one option).

I can fix them at commit time if there's no other review comments.

Thanks,
Eryu

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2016-09-08  6:26 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-09-08  2:52 [PATCH v2] fstests: common: Enhance _exclude_scratch_mount_option to handle multiple options Qu Wenruo
2016-09-08  6:17 ` Eryu Guan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).