[Ocfs2-test-devel] [PATCH 1/1] Ocfs2-test: Improve resize_test.sh for tunefs.ocfs2 changes.

Tao Ma tao.ma at oracle.com
Tue Jun 9 01:13:54 PDT 2009


Hi Tristan,

Tristan Ye wrote:
> As the output of new tunefs.ocfs2 changed when doing resizing(Now it
> output nothing even if we turn the vebose mode on), our test tools
> therefore need to be updated accordingly. from my point of view, it
> would be better to both check the return code of the testing cmd and
> output of debugfs.ocfs2 to see if the volume size grows correctly.
> 
> Some other improvements also included in the patches for permission and
> path problems.
> 
> Signed-off-by: Tristan Ye <tristan.ye at oracle.com>
> ---
>  programs/resize_test/resize_test.sh |   39 ++++++++++++++++++++++------------
>  1 files changed, 25 insertions(+), 14 deletions(-)
> 
> diff --git a/programs/resize_test/resize_test.sh b/programs/resize_test/resize_test.sh
> index 9a243ed..f14bbf0 100755
> --- a/programs/resize_test/resize_test.sh
> +++ b/programs/resize_test/resize_test.sh
> @@ -7,7 +7,11 @@
>  # blocks, where each chunk has to be greater than a cluster
>  #
>  
> -PATH=$PATH:/sbin        # Add /sbin to the path for ocfs2 tools
> +if [ -f `dirname ${0}`/config.sh ]; then
> +	. `dirname ${0}`/config.sh
> +fi
> +
> +PATH=$PATH:/sbin:${BINDIR}        # Add /sbin to the path for ocfs2 tools
>  
>  usage() {
>      echo "usage: resize_test.sh -c -o <outdir> -d <device> -i <iters> -l <label> -m <mntdir> -n <nodelist>"
> @@ -165,6 +169,7 @@ do_debugfs() {
>  }
>  
>  do_tunefs() {
> +
>      if [ "$#" -lt "2" ]
>      then
>          echo "do_tunefs(): <out> <blk>" >&2
> @@ -179,21 +184,21 @@ do_tunefs() {
>      else
>          echo -n "grow device to ${blk} blocks "
>      fi
> -    echo ${TUNEFS} -S ${device} ${blk} > ${out}
> -    ${TUNEFS} -x -S ${device} ${blk} >>${out} 2>&1
> -    ${GREP} "Cannot grow volume size" ${out} >/dev/null 2>&1
> -    if [ $? -eq 0 ]
> -    then
> -         echo "OK (ENOSPC)"
> -         return 1
> +    echo ${TUNEFS} -v -S ${device} ${blk} > ${out}
> +    ${TUNEFS} -v -S ${device} ${blk} >>${out} 2>&1
> +
> +    if [ $? -eq 0 ]; then
> +	 g_size=`${DEBUGFS} -R "stat //global_bitmap" ${device} 2>/dev/null | awk '/Size:/ {print $8;}'`
> +	 blocks=$((${g_size}/${blocksz}))
> +	 if [ "${blocks}" != "${blk}" ]; then
> +		echo "FAILED, wanted to grow ${blk}, but got ${blocks} instead"
> +		return 1
> +	 fi
> +    else
> +	 echo "FAILED. Errors in ${out}"
> +	 exit 1
One more thing.
you can't check whether "${blocks}" != "${blk}".
tunefs.ocfs2 will align the block number to cluster range.
So you have to change "blk" somehow if it isn't aligned to the cluster 
range.

Regards,
Tao



More information about the Ocfs2-test-devel mailing list