[PATCH 1/3] xfstests: introduce _require_xfs_crc_sb pre-checkup routine
Dave Chinner
david at fromorbit.com
Mon Dec 2 18:37:59 CST 2013
On Fri, Nov 29, 2013 at 03:03:29PM +0800, Jeff Liu wrote:
> From: Jie Liu <jeff.liu at oracle.com>
>
> Introduce _require_xfs_crc_sb to rc. We can use it in pre-checkup
> procedures to verify if the XFS test environment is configured with
> CRC enabled or not for some particular test cases.
>
> Introduce a new helper _xfs_sb_version to get XFS super block version
> to make the test case more flexiable if possible. e.g, if that is
> v5 super block, the tests behavior might be different to old v4 sb.
>
> Refactor xfs/299 to use it.
>
> Signed-off-by: Jie Liu <jeff.liu at oracle.com>
> ---
> common/rc | 19 +++++++++++++++++++
> tests/xfs/299 | 9 +--------
> 2 files changed, 20 insertions(+), 8 deletions(-)
>
> diff --git a/common/rc b/common/rc
> index f73414b..9f45279 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -1579,6 +1579,25 @@ _check_xfs_filesystem()
> return 0
> }
>
> +# Get XFS super block version
> +_xfs_sb_version()
> +{
> + sb_version=`$XFS_DB_PROG -r -c version $SCRATCH_DEV | \
> + awk -F= '{print $2}' | awk -F, '{print $1}' | \
> + cut -c3-`
> + echo $sb_version
> +}
Ugh. I missed how nasty that code was originally. Maths, not string
manipulations shoul dbe used here. i.e:
versionnum filesystem version information. This value is
currently 1, 2, 3, or 4 in the low 4 bits.
[ Oh, look, xfs_db man page updates are needed ]
So:
$XFS_DB_PROG -r -c "sb 0" -c "p versionnum" $SCRATCH_DEV | \
awk '{ printf "%d\n", and(strtonum($3), 15) }'
> +# This test requires XFS crc-enabled (v5) super block support
> +_require_xfs_crc_sb()
> +{
> + version=`_xfs_sb_version`
> + if [ $version -lt 5 ]
> + then
> + _notrun "Can't run with older versions of superblock"
_notrun "Need version 5 superblock support for this test"
> + fi
> +}
> +
Cheers,
Dave.
--
Dave Chinner
david at fromorbit.com
More information about the xfs
mailing list