Re: [PATCH 1/2] xfstests: Introduce get_block_size() helper

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



On Mon, Jun 23, 2014 at 3:54 PM, Lukas Czerner <lczerner@xxxxxxxxxx> wrote:
> Currently many tests and other functions uses it's own way to get block
> size of the file system. Introduce get_block_size(), a generic way to
> get block size of mounted file system and use that instead.
>
> Signed-off-by: Lukas Czerner <lczerner@xxxxxxxxxx>

Tested-by: Filipe Manana <fdmanana@xxxxxxxxx>

Works for btrfs. So please ignore the workaround patch I sent earlier today.
Thanks Lukas

> ---
>  common/attr       | 4 ++--
>  common/punch      | 2 +-
>  common/rc         | 9 +++++++++
>  tests/generic/240 | 2 +-
>  tests/generic/256 | 2 +-
>  tests/generic/308 | 2 +-
>  tests/shared/298  | 2 +-
>  7 files changed, 16 insertions(+), 7 deletions(-)
>
> diff --git a/common/attr b/common/attr
> index 42a1a16..4c70c9e 100644
> --- a/common/attr
> +++ b/common/attr
> @@ -251,7 +251,7 @@ _sort_getfattr_output()
>  if [ "$FSTYP" == "xfs" -o "$FSTYP" == "udf" ]; then
>         MAX_ATTRS=1000
>  else # Assume max ~1 block of attrs
> -       BLOCK_SIZE=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3`
> +       BLOCK_SIZE=`get_block_size $TEST_DIR`
>         # user.attribute_XXX="value.XXX" is about 32 bytes; leave some overhead
>         let MAX_ATTRS=$BLOCK_SIZE/40
>  fi
> @@ -262,7 +262,7 @@ export MAX_ATTRS
>  if [ "$FSTYP" == "xfs" -o "$FSTYP" == "udf" -o "$FSTYP" == "btrfs" ]; then
>         MAX_ATTRVAL_SIZE=64
>  else # Assume max ~1 block of attrs
> -       BLOCK_SIZE=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3`
> +       BLOCK_SIZE=`get_block_size $TEST_DIR`
>         # leave a little overhead
>         let MAX_ATTRVAL_SIZE=$BLOCK_SIZE-256
>  fi
> diff --git a/common/punch b/common/punch
> index f2d538c..237b4d8 100644
> --- a/common/punch
> +++ b/common/punch
> @@ -557,7 +557,7 @@ _test_generic_punch()
>         if [ "$remove_testfile" ]; then
>                 rm -f $testfile
>         fi
> -       block_size=`stat -f $TEST_DIR | grep "Block size" | cut -d " " -f3`
> +       block_size=`get_block_size $TEST_DIR`
>         $XFS_IO_PROG -f -c "truncate $block_size" \
>                 -c "pwrite 0 $block_size" $sync_cmd \
>                 -c "$zero_cmd 128 128" \
> diff --git a/common/rc b/common/rc
> index 2c83340..95030ae 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -2281,6 +2281,15 @@ _short_dev()
>         echo `basename $(_real_dev $1)`
>  }
>
> +get_block_size()
> +{
> +       if [ -z $1 ] || [ ! -d $1 ]; then
> +               echo "Missing mount point argument for get_block_size"
> +               exit 1
> +       fi
> +       echo `stat -f -c %S $1`
> +}
> +
>  init_rc
>
>  ################################################################################
> diff --git a/tests/generic/240 b/tests/generic/240
> index 74dbba6..44ba0d3 100755
> --- a/tests/generic/240
> +++ b/tests/generic/240
> @@ -61,7 +61,7 @@ rm -f $seqres.full
>  rm -f $TEST_DIR/aiodio_sparse
>
>  logical_block_size=`_min_dio_alignment $TEST_DEV`
> -fs_block_size=`stat -f $TEST_DIR | grep "Block size:" | awk '{print $3}'`
> +fs_block_size=`get_block_size $TEST_DIR`
>  file_size=$((8 * $fs_block_size))
>
>  if [ $fs_block_size -le $logical_block_size ]; then
> diff --git a/tests/generic/256 b/tests/generic/256
> index e6cc7dc..92c4f30 100755
> --- a/tests/generic/256
> +++ b/tests/generic/256
> @@ -170,7 +170,7 @@ _scratch_mount
>  # Test must be able to write files with non-root permissions
>  chmod 777 $SCRATCH_MNT
>
> -block_size=`stat -f $SCRATCH_DEV | grep "Block size" | cut -d " " -f3`
> +block_size=`get_block_size $SCRATCH_MNT`
>  _test_full_fs_punch $(( $block_size * 2 )) $block_size 500 $SCRATCH_MNT/252.$$ $block_size
>
>  status=0 ; exit
> diff --git a/tests/generic/308 b/tests/generic/308
> index 8037c08..5646486 100755
> --- a/tests/generic/308
> +++ b/tests/generic/308
> @@ -48,7 +48,7 @@ _supported_os Linux
>  rm -f $seqres.full
>  echo "Silence is golden"
>
> -block_size=`stat -f -c %s $TEST_DIR`
> +block_size=`get_block_size $TEST_DIR`
>
>  # On unpatched ext4, if an extent exists which includes the block right
>  # before the maximum file offset, and the block for the maximum file offset
> diff --git a/tests/shared/298 b/tests/shared/298
> index 8211da3..c1a6316 100755
> --- a/tests/shared/298
> +++ b/tests/shared/298
> @@ -164,7 +164,7 @@ echo "done."
>
>  echo -n "Comparing holes to the reported space from FS..."
>  # Get block size
> -block_size=$(stat -f -c "%S" $loop_mnt/)
> +block_size=$(get_block_size $loop_mnt/)
>  sectors_per_block=`expr $block_size / 512`
>
>  # Obtain free space from filesystem
> --
> 1.8.3.1
>



-- 
Filipe David Manana,

"Reasonable men adapt themselves to the world.
 Unreasonable men adapt the world to themselves.
 That's why all progress depends on unreasonable men."
--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux