All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rich Johnston <rjohnston@sgi.com>
To: Stefan Behrens <sbehrens@giantdisaster.de>
Cc: <xfs@oss.sgi.com>, <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH] xfstest: don't remove the two first devices from SCRATCH_DEV_POOL
Date: Wed, 14 Aug 2013 17:18:29 -0500	[thread overview]
Message-ID: <520C0235.6060301@sgi.com> (raw)
In-Reply-To: <1374685304-2510-1-git-send-email-sbehrens@giantdisaster.de>

On 07/24/2013 12:01 PM, Stefan Behrens wrote:
> Since common/config is executed twice, if SCRATCH_DEV_POOL is configured
> via the environment, the current code removes the first device entry twice
> which means that you lose the second device for the test.
>
> The fix is to not remove anything from SCRATCH_DEV_POOL anymore.
> That used to be done (I can only guess) to allow to pass the
> SCRATCH_DEV_POOL as an argument to _scratch_mkfs. Since _scratch_mkfs adds
> the SCRATCH_DEV, the pool mustn't contain that device anymore.
>
> A new function _scratch_pool_mkfs is introduced that does the expected
> thing.
>
> Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
> ---
>   common/config   |  3 +--
>   common/rc       | 12 ++++++++++++
>   tests/btrfs/264 |  3 ++-
>   tests/btrfs/265 | 12 ++++++------
>   tests/btrfs/307 |  4 ++--
>   5 files changed, 23 insertions(+), 11 deletions(-)
>

Hey Stefan,

Thanks for submitting this patch. This patch had not been reviewed 
before I pulled in commit aab6d4e
"xfstests: renumber existing btrfs tests to start with 1"

Will you please rebase this off the current xfstests tree.

Thanks
--Rich

> diff --git a/common/config b/common/config
> index 67c1498..1bc9233 100644
> --- a/common/config
> +++ b/common/config
> @@ -252,14 +252,13 @@ if [ ! -d "$TEST_DIR" ]; then
>   fi
>
>   # a btrfs tester will set only SCRATCH_DEV_POOL, we will put first of its dev
> -# to SCRATCH_DEV and rest to SCRATCH_DEV_POOL to maintain the backward compatibility
> +# to SCRATCH_DEV to maintain the backward compatibility
>   if [ ! -z "$SCRATCH_DEV_POOL" ]; then
>       if [ ! -z "$SCRATCH_DEV" ]; then
>           echo "common/config: Error: \$SCRATCH_DEV should be unset when \$SCRATCH_DEV_POOL is set"
>           exit 1
>       fi
>       SCRATCH_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
> -    SCRATCH_DEV_POOL=`echo $SCRATCH_DEV_POOL | awk '{ ORS=" "; for (i = 2; i <= NF; i++) print $i}'`
>   fi
>
>   echo $SCRATCH_DEV | grep -q ":" > /dev/null 2>&1
> diff --git a/common/rc b/common/rc
> index 5cb1fe2..1caf9cc 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -546,6 +546,18 @@ _scratch_mkfs()
>       esac
>   }
>
> +_scratch_pool_mkfs()
> +{
> +    case $FSTYP in
> +    btrfs)
> +	$MKFS_BTRFS_PROG $MKFS_OPTIONS $* $SCRATCH_DEV_POOL > /dev/null
> +	;;
> +    *)
> +	echo "_scratch_pool_mkfs is not implemented for $FSTYP" 1>&2
> +	;;
> +    esac
> +}
> +
>   # Create fs of certain size on scratch device
>   # _scratch_mkfs_sized <size in bytes> [optional blocksize]
>   _scratch_mkfs_sized()
> diff --git a/tests/btrfs/264 b/tests/btrfs/264
> index b08667a..996c187 100755
> --- a/tests/btrfs/264
> +++ b/tests/btrfs/264
> @@ -45,8 +45,9 @@ _need_to_be_root
>   _supported_fs btrfs
>   _supported_os Linux
>   _require_scratch
> +_require_scratch_dev_pool
>
> -_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   _scratch_mount
>
>   # Create and save sha256sum
> diff --git a/tests/btrfs/265 b/tests/btrfs/265
> index 79a9ddf..5bd6944 100755
> --- a/tests/btrfs/265
> +++ b/tests/btrfs/265
> @@ -56,7 +56,7 @@ _require_deletable_scratch_dev_pool
>   _test_raid0()
>   {
>   	export MKFS_OPTIONS="-m raid0 -d raid0"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -66,7 +66,7 @@ _test_raid0()
>   _test_raid1()
>   {
>   	export MKFS_OPTIONS="-m raid1 -d raid1"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -76,7 +76,7 @@ _test_raid1()
>   _test_raid10()
>   {
>   	export MKFS_OPTIONS="-m raid10 -d raid10"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -86,7 +86,7 @@ _test_raid10()
>   _test_single()
>   {
>   	export MKFS_OPTIONS="-m single -d single"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -106,7 +106,7 @@ _test_add()
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> -	for i in `seq 1 $n`; do
> +	for i in `seq 2 $n`; do
>   		$BTRFS_UTIL_PROG device add ${devs[$i]} $SCRATCH_MNT > /dev/null 2>&1 || _fail "device add failed"
>   	done
>   	$BTRFS_UTIL_PROG filesystem balance $SCRATCH_MNT || _fail "balance failed"
> @@ -162,7 +162,7 @@ _test_replace()
>
>   _test_remove()
>   {
> -	_scratch_mkfs "$SCRATCH_DEV_POOL" > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> diff --git a/tests/btrfs/307 b/tests/btrfs/307
> index 87314c6..20d8664 100755
> --- a/tests/btrfs/307
> +++ b/tests/btrfs/307
> @@ -53,12 +53,12 @@ rm -f $seqres.full
>
>   FIRST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
>   LAST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $NF}'`
> -TOTAL_DEVS=`echo $SCRATCH_DEV $SCRATCH_DEV_POOL | wc -w`
> +TOTAL_DEVS=`echo $SCRATCH_DEV_POOL | wc -w`
>   LABEL=TestLabel.$seq
>
>   echo "Scratch $SCRATCH_DEV First $FIRST_POOL_DEV last $LAST_POOL_DEV Total $TOTAL_DEVS" > $seqres.full
>
> -_scratch_mkfs $SCRATCH_DEV_POOL >> $seqres.full 2>&1 || _fail "mkfs failed"
> +_scratch_pool_mkfs >> $seqres.full 2>&1 || _fail "mkfs failed"
>
>   # These have to be done unmounted...?
>   echo "== Set filesystem label to $LABEL"
>


WARNING: multiple messages have this Message-ID (diff)
From: Rich Johnston <rjohnston@sgi.com>
To: Stefan Behrens <sbehrens@giantdisaster.de>
Cc: linux-btrfs@vger.kernel.org, xfs@oss.sgi.com
Subject: Re: [PATCH] xfstest: don't remove the two first devices from SCRATCH_DEV_POOL
Date: Wed, 14 Aug 2013 17:18:29 -0500	[thread overview]
Message-ID: <520C0235.6060301@sgi.com> (raw)
In-Reply-To: <1374685304-2510-1-git-send-email-sbehrens@giantdisaster.de>

On 07/24/2013 12:01 PM, Stefan Behrens wrote:
> Since common/config is executed twice, if SCRATCH_DEV_POOL is configured
> via the environment, the current code removes the first device entry twice
> which means that you lose the second device for the test.
>
> The fix is to not remove anything from SCRATCH_DEV_POOL anymore.
> That used to be done (I can only guess) to allow to pass the
> SCRATCH_DEV_POOL as an argument to _scratch_mkfs. Since _scratch_mkfs adds
> the SCRATCH_DEV, the pool mustn't contain that device anymore.
>
> A new function _scratch_pool_mkfs is introduced that does the expected
> thing.
>
> Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de>
> ---
>   common/config   |  3 +--
>   common/rc       | 12 ++++++++++++
>   tests/btrfs/264 |  3 ++-
>   tests/btrfs/265 | 12 ++++++------
>   tests/btrfs/307 |  4 ++--
>   5 files changed, 23 insertions(+), 11 deletions(-)
>

Hey Stefan,

Thanks for submitting this patch. This patch had not been reviewed 
before I pulled in commit aab6d4e
"xfstests: renumber existing btrfs tests to start with 1"

Will you please rebase this off the current xfstests tree.

Thanks
--Rich

> diff --git a/common/config b/common/config
> index 67c1498..1bc9233 100644
> --- a/common/config
> +++ b/common/config
> @@ -252,14 +252,13 @@ if [ ! -d "$TEST_DIR" ]; then
>   fi
>
>   # a btrfs tester will set only SCRATCH_DEV_POOL, we will put first of its dev
> -# to SCRATCH_DEV and rest to SCRATCH_DEV_POOL to maintain the backward compatibility
> +# to SCRATCH_DEV to maintain the backward compatibility
>   if [ ! -z "$SCRATCH_DEV_POOL" ]; then
>       if [ ! -z "$SCRATCH_DEV" ]; then
>           echo "common/config: Error: \$SCRATCH_DEV should be unset when \$SCRATCH_DEV_POOL is set"
>           exit 1
>       fi
>       SCRATCH_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
> -    SCRATCH_DEV_POOL=`echo $SCRATCH_DEV_POOL | awk '{ ORS=" "; for (i = 2; i <= NF; i++) print $i}'`
>   fi
>
>   echo $SCRATCH_DEV | grep -q ":" > /dev/null 2>&1
> diff --git a/common/rc b/common/rc
> index 5cb1fe2..1caf9cc 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -546,6 +546,18 @@ _scratch_mkfs()
>       esac
>   }
>
> +_scratch_pool_mkfs()
> +{
> +    case $FSTYP in
> +    btrfs)
> +	$MKFS_BTRFS_PROG $MKFS_OPTIONS $* $SCRATCH_DEV_POOL > /dev/null
> +	;;
> +    *)
> +	echo "_scratch_pool_mkfs is not implemented for $FSTYP" 1>&2
> +	;;
> +    esac
> +}
> +
>   # Create fs of certain size on scratch device
>   # _scratch_mkfs_sized <size in bytes> [optional blocksize]
>   _scratch_mkfs_sized()
> diff --git a/tests/btrfs/264 b/tests/btrfs/264
> index b08667a..996c187 100755
> --- a/tests/btrfs/264
> +++ b/tests/btrfs/264
> @@ -45,8 +45,9 @@ _need_to_be_root
>   _supported_fs btrfs
>   _supported_os Linux
>   _require_scratch
> +_require_scratch_dev_pool
>
> -_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   _scratch_mount
>
>   # Create and save sha256sum
> diff --git a/tests/btrfs/265 b/tests/btrfs/265
> index 79a9ddf..5bd6944 100755
> --- a/tests/btrfs/265
> +++ b/tests/btrfs/265
> @@ -56,7 +56,7 @@ _require_deletable_scratch_dev_pool
>   _test_raid0()
>   {
>   	export MKFS_OPTIONS="-m raid0 -d raid0"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -66,7 +66,7 @@ _test_raid0()
>   _test_raid1()
>   {
>   	export MKFS_OPTIONS="-m raid1 -d raid1"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -76,7 +76,7 @@ _test_raid1()
>   _test_raid10()
>   {
>   	export MKFS_OPTIONS="-m raid10 -d raid10"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -86,7 +86,7 @@ _test_raid10()
>   _test_single()
>   {
>   	export MKFS_OPTIONS="-m single -d single"
> -	_scratch_mkfs $SCRATCH_DEV_POOL > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> @@ -106,7 +106,7 @@ _test_add()
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> -	for i in `seq 1 $n`; do
> +	for i in `seq 2 $n`; do
>   		$BTRFS_UTIL_PROG device add ${devs[$i]} $SCRATCH_MNT > /dev/null 2>&1 || _fail "device add failed"
>   	done
>   	$BTRFS_UTIL_PROG filesystem balance $SCRATCH_MNT || _fail "balance failed"
> @@ -162,7 +162,7 @@ _test_replace()
>
>   _test_remove()
>   {
> -	_scratch_mkfs "$SCRATCH_DEV_POOL" > /dev/null 2>&1 || _fail "mkfs failed"
> +	_scratch_pool_mkfs > /dev/null 2>&1 || _fail "mkfs failed"
>   	_scratch_mount
>   	dirp=`mktemp -duq $SCRATCH_MNT/dir.XXXXXX`
>   	_populate_fs -n 1 -f 20 -d 10 -r $dirp -s 10
> diff --git a/tests/btrfs/307 b/tests/btrfs/307
> index 87314c6..20d8664 100755
> --- a/tests/btrfs/307
> +++ b/tests/btrfs/307
> @@ -53,12 +53,12 @@ rm -f $seqres.full
>
>   FIRST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $1}'`
>   LAST_POOL_DEV=`echo $SCRATCH_DEV_POOL | awk '{print $NF}'`
> -TOTAL_DEVS=`echo $SCRATCH_DEV $SCRATCH_DEV_POOL | wc -w`
> +TOTAL_DEVS=`echo $SCRATCH_DEV_POOL | wc -w`
>   LABEL=TestLabel.$seq
>
>   echo "Scratch $SCRATCH_DEV First $FIRST_POOL_DEV last $LAST_POOL_DEV Total $TOTAL_DEVS" > $seqres.full
>
> -_scratch_mkfs $SCRATCH_DEV_POOL >> $seqres.full 2>&1 || _fail "mkfs failed"
> +_scratch_pool_mkfs >> $seqres.full 2>&1 || _fail "mkfs failed"
>
>   # These have to be done unmounted...?
>   echo "== Set filesystem label to $LABEL"
>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

  reply	other threads:[~2013-08-14 22:17 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-24 17:01 [PATCH] xfstest: don't remove the two first devices from SCRATCH_DEV_POOL Stefan Behrens
2013-07-24 17:01 ` Stefan Behrens
2013-08-14 22:18 ` Rich Johnston [this message]
2013-08-14 22:18   ` Rich Johnston

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=520C0235.6060301@sgi.com \
    --to=rjohnston@sgi.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sbehrens@giantdisaster.de \
    --cc=xfs@oss.sgi.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.