Re: [PATCH 1/2] fstests: introduce _scratch_mount_nocheck

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



On 13 February 2018 at 10:12, Eryu Guan <eguan@xxxxxxxxxx> wrote:
> _fail test by default if _scratch_mount failed and introduce
> _scratch_mount_nocheck for tests that need to check mount results
> themselves.
>
> Signed-off-by: Eryu Guan <eguan@xxxxxxxxxx>
> ---
>  common/attr        |  2 +-
>  common/dmapi       |  4 ++--
>  common/dump        |  4 ++--
>  common/encrypt     |  2 +-
>  common/filestreams |  4 ++--
>  common/fuzzy       |  4 ++--
>  common/log         |  6 +++---
>  common/overlay     |  2 +-
>  common/punch       |  2 +-
>  common/quota       |  4 ++--
>  common/rc          | 38 ++++++++++++++++++++++----------------
>  common/xfs         | 12 ++++++------
>  12 files changed, 45 insertions(+), 39 deletions(-)
>
> diff --git a/common/attr b/common/attr
> index 66b0227f721e..e83aadb803f7 100644
> --- a/common/attr
> +++ b/common/attr
> @@ -229,7 +229,7 @@ _require_noattr2()
>  {
>         _scratch_mkfs_xfs > /dev/null 2>&1 \
>                 || _fail "_scratch_mkfs_xfs failed on $SCRATCH_DEV"
> -       _scratch_mount -o noattr2 > /dev/null 2>&1 \
> +       _scratch_mount_nocheck -o noattr2 > /dev/null 2>&1 \
>                 || _notrun "noattr2 mount option not supported on $SCRATCH_DEV"
>         _scratch_unmount
>  }
> diff --git a/common/dmapi b/common/dmapi
> index c8a463a2cac0..af0faf504a3d 100644
> --- a/common/dmapi
> +++ b/common/dmapi
> @@ -31,10 +31,10 @@ _dmapi_scratch_mount () {
>      if [ `echo "$MOUNT_OPTIONS" | grep -c dmapi` -gt 0 -o \
>          `echo "$MOUNT_OPTIONS" | grep -c dmi` -gt 0 ] ; then
>          #already got dmapi options set
> -        _scratch_mount
> +        _scratch_mount_nocheck
>          dmapi_mount_result=$?
>      else
> -        _scratch_mount "-o dmapi,mtpt=$SCRATCH_MNT"
> +        _scratch_mount_nocheck "-o dmapi,mtpt=$SCRATCH_MNT"
>          dmapi_mount_result=$?
>      fi
>
> diff --git a/common/dump b/common/dump
> index 2b3cfa0f0607..7b9c10a25414 100644
> --- a/common/dump
> +++ b/common/dump
> @@ -235,7 +235,7 @@ _wipe_fs()
>      _require_scratch
>
>      _scratch_mkfs_xfs >>$seqres.full || _fail "mkfs failed"
> -    _scratch_mount >>$seqres.full || _fail "mount failed"
> +    _scratch_mount >>$seqres.full
>  }
>
>  #
> @@ -287,7 +287,7 @@ _stable_fs()
>  {
>      _saveddir=`pwd`; cd /
>      _scratch_unmount >>$seqres.full || _fail "unmount failed"
> -    _scratch_mount >>$seqres.full || _fail "mount failed"
> +    _scratch_mount >>$seqres.full
>      cd $_saveddir
>  }
>
> diff --git a/common/encrypt b/common/encrypt
> index 189c59ee9bbd..4c5fce75fe62 100644
> --- a/common/encrypt
> +++ b/common/encrypt
> @@ -43,7 +43,7 @@ _require_scratch_encryption()
>         # Try to mount the filesystem.  If this fails then either the kernel
>         # isn't aware of encryption, or the mkfs options were not compatible
>         # with encryption (e.g. ext4 with block size != PAGE_SIZE).
> -       if ! _scratch_mount &>>$seqres.full; then
> +       if ! _scratch_mount_nocheck &>>$seqres.full; then
>                 _notrun "kernel is unaware of $FSTYP encryption feature," \
>                         "or mkfs options are not compatible with encryption"
>         fi
> diff --git a/common/filestreams b/common/filestreams
> index f5441f5a82e9..a06020c8b3fb 100644
> --- a/common/filestreams
> +++ b/common/filestreams
> @@ -111,11 +111,11 @@ _test_streams() {
>
>         if [ "$use_iflag" = "0" ]; then
>                 # mount using filestreams mount option
> -               _scratch_mount "-o filestreams" \
> +               _scratch_mount_nocheck "-o filestreams" \
>                         || _fail "filestreams mount failed"
>         else
>                 # test will set inode flag
> -               _scratch_mount || _fail "mount failed"
> +               _scratch_mount
>         fi
>
>         cd $SCRATCH_MNT
> diff --git a/common/fuzzy b/common/fuzzy
> index b964fd8cb0fc..f5bd3f594666 100644
> --- a/common/fuzzy
> +++ b/common/fuzzy
> @@ -200,7 +200,7 @@ __scratch_xfs_fuzz_field_test() {
>
>         # Try to catch the error with scrub
>         echo "+ Try to catch the error"
> -       _scratch_mount 2>&1
> +       _scratch_mount_nocheck 2>&1
>         res=$?
>         if [ $res -eq 0 ]; then
>                 # Try an online scrub unless we're fuzzing ag 0's sb,
> @@ -245,7 +245,7 @@ __scratch_xfs_fuzz_field_test() {
>
>         # See if scrub finds a clean fs
>         echo "+ Make sure error is gone (online)"
> -       _scratch_mount 2>&1
> +       _scratch_mount_nocheck 2>&1
>         res=$?
>         if [ $res -eq 0 ]; then
>                 # Try an online scrub unless we're fuzzing ag 0's sb,
> diff --git a/common/log b/common/log
> index bdb4ed684a08..2157b2848a69 100644
> --- a/common/log
> +++ b/common/log
> @@ -370,7 +370,7 @@ _create_log()
>  {
>      # mount the FS
>      _full "mount"
> -    _scratch_mount >>$seqres.full 2>&1
> +    _scratch_mount_nocheck >>$seqres.full 2>&1
>      if [ $? -ne 0 ] ; then
>         _echofull "mount failed: $MOUNT_OPTIONS"
>         return 1
> @@ -399,7 +399,7 @@ _create_log_sync()
>  {
>      # mount the FS
>      _full " mount"
> -    _scratch_mount >>$seqres.full 2>&1
> +    _scratch_mount_nocheck >>$seqres.full 2>&1
>      if [ $? -ne 0 ] ; then
>         _echofull "mount failed: $MOUNT_OPTIONS"
>         return 1
> @@ -519,7 +519,7 @@ _require_v2log()
>
>      # test out mount to see if it mounts a v2 log fs
>      export MOUNT_OPTIONS="-o logbsize=32k"
> -    if ! _scratch_mount >>$seqres.full 2>&1; then
> +    if ! _scratch_mount_nocheck >>$seqres.full 2>&1; then
>          _notrun "mount/kernel does not support v2 logs"
>      fi
>
> diff --git a/common/overlay b/common/overlay
> index a8b0e9369c86..054b759e1ce4 100644
> --- a/common/overlay
> +++ b/common/overlay
> @@ -167,7 +167,7 @@ _require_scratch_overlay_features()
>         done
>
>         _scratch_mkfs > /dev/null 2>&1
> -       _scratch_mount -o $opts || \
> +       _scratch_mount_nocheck -o $opts || \
>                 _notrun "overlay options '$opts' cannot be enabled on ${SCRATCH_DEV}"
>
>         for feature in ${features[*]}; do
> diff --git a/common/punch b/common/punch
> index c4ed26192a22..42a7e97496b7 100644
> --- a/common/punch
> +++ b/common/punch
> @@ -131,7 +131,7 @@ _test_punch() {
>                 _dmapi_scratch_mount
>         else
>                 # only unresvsp punch type is used, just do a normal mount
> -               _scratch_mount || _fail "mount failed"
> +               _scratch_mount
>         fi
>
>         cd $SCRATCH_MNT
> diff --git a/common/quota b/common/quota
> index 2611c484ee35..c1f1436458c2 100644
> --- a/common/quota
> +++ b/common/quota
> @@ -119,7 +119,7 @@ _scratch_enable_pquota()
>         [ "$FSTYP" != "ext4" ] && return
>
>         tune2fs -O quota,project $SCRATCH_DEV >>$seqres.full 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>                 || _notrun "kernel doesn't support project feature on $FSTYP"
>         _scratch_unmount
>  }
> @@ -202,7 +202,7 @@ _choose_prid()
>  _qmount()
>  {
>      _scratch_unmount >/dev/null 2>&1
> -    _scratch_mount || _fail "qmount failed"
> +    _scratch_mount_nocheck || _fail "qmount failed"
>      # xfs doesn't need these setups and quotacheck even fails on xfs
>      # redirect the output to $seqres.full for debug purpose and ignore results
>      if [ "$FSTYP" != "xfs" ]; then
> diff --git a/common/rc b/common/rc
> index b9dc0b9206db..ddfcbec65135 100644
> --- a/common/rc
> +++ b/common/rc
> @@ -352,13 +352,18 @@ _supports_filetype()
>         esac
>  }
>
> +_scratch_mount_nocheck()
> +{
> +       if [ "$FSTYP" == "overlay" ]; then
> +               _overlay_scratch_mount $*
> +               return $?
> +       fi
> +       _mount -t $FSTYP `_scratch_mount_options $*`
> +}
> +
>  _scratch_mount()
>  {
> -    if [ "$FSTYP" == "overlay" ]; then
> -        _overlay_scratch_mount $*
> -        return $?
> -    fi
> -    _mount -t $FSTYP `_scratch_mount_options $*`
> +       _scratch_mount_nocheck $* || _fail "_scratch_mount failed"

I'd change that to "mount failed"; the name of the helper function
isn't very interesting.

>  }
>
>  _scratch_unmount()
> @@ -397,7 +402,7 @@ _scratch_cycle_mount()
>         opts="-o $opts"
>      fi
>      _scratch_unmount
> -    _scratch_mount "$opts"
> +    _scratch_mount_nocheck "$opts" || _fail "_scratch_cycle_mount failed"

Same here, change to "cycle mount failed" or similar.

>  }
>
>  _scratch_shutdown()
> @@ -524,7 +529,7 @@ _setup_large_ext4_fs()
>
>         # mount the filesystem and create 16TB - 4KB files until we consume
>         # all the necessary space.
> -       _scratch_mount 2>&1 >$tmp_dir/mnt.err
> +       _scratch_mount_nocheck 2>&1 >$tmp_dir/mnt.err
>         local status=$?
>         if [ $status -ne 0 ]; then
>                 echo "mount failed"
> @@ -1103,7 +1108,7 @@ _repair_scratch_fs()
>         res=$?
>         if [ "$res" -ne 0 ]; then
>                 echo "xfs_repair returns $res; replay log?"
> -               _scratch_mount
> +               _scratch_mount_nocheck
>                 res=$?
>                 if [ "$res" -gt 0 ]; then
>                         echo "mount returns $res; zap log?"
> @@ -1872,7 +1877,7 @@ _require_scratch_ext4_crc()
>  {
>         _scratch_mkfs_ext4 >/dev/null 2>&1
>         dumpe2fs -h $SCRATCH_DEV 2> /dev/null | grep -q metadata_csum || _notrun "metadata_csum not supported by this filesystem"
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>            || _notrun "Kernel doesn't support metadata_csum feature"
>         _scratch_unmount
>  }
> @@ -1888,7 +1893,7 @@ _require_scratch_ext4_feature()
>      $MKFS_EXT4_PROG -F $MKFS_OPTIONS -O "$1" \
>                     $SCRATCH_DEV 512m >/dev/null 2>&1 \
>         || _notrun "mkfs.ext4 doesn't support $1 feature"
> -    _scratch_mount >/dev/null 2>&1 \
> +    _scratch_mount_nocheck >/dev/null 2>&1 \
>         || _notrun "Kernel doesn't support the ext4 feature(s): $1"
>      _scratch_unmount
>  }
> @@ -2322,7 +2327,7 @@ _require_scratch_richacl_xfs()
>         _scratch_mkfs_xfs_supported -m richacl=1 >/dev/null 2>&1 \
>                 || _notrun "mkfs.xfs doesn't have richacl feature"
>         _scratch_mkfs_xfs -m richacl=1 >/dev/null 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>                 || _notrun "kernel doesn't support richacl feature on $FSTYP"
>         _scratch_unmount
>  }
> @@ -2331,7 +2336,7 @@ _require_scratch_richacl_ext4()
>  {
>         _scratch_mkfs -O richacl >/dev/null 2>&1 \
>                 || _notrun "can't mkfs $FSTYP with option -O richacl"
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>                 || _notrun "kernel doesn't support richacl feature on $FSTYP"
>         _scratch_unmount
>  }
> @@ -2993,7 +2998,7 @@ _require_scratch_shutdown()
>         [ -x src/godown ] || _notrun "src/godown executable not found"
>
>         _scratch_mkfs > /dev/null 2>&1 || _notrun "_scratch_mkfs failed on $SCRATCH_DEV"
> -       _scratch_mount || _notrun "_scratch_mount failed on $SCRATCH_MNT"
> +       _scratch_mount
>
>         if [ $FSTYP = "overlay" ]; then
>                 if [ -z $OVL_BASE_SCRATCH_DEV ]; then
> @@ -3019,7 +3024,8 @@ _require_scratch_dax()
>  {
>         _require_scratch
>         _scratch_mkfs > /dev/null 2>&1
> -       _scratch_mount -o dax
> +       _scratch_mount_nocheck -o dax || \
> +               _notrun "mount $SCRATCH_DEV with dax failed"
>         # Check options to be sure. XFS ignores dax option
>         # and goes on if dev underneath does not support dax.
>         _fs_options $SCRATCH_DEV | grep -qw "dax" || \
> @@ -3030,7 +3036,7 @@ _require_scratch_dax()
>  # Does norecovery support by this fs?
>  _require_norecovery()
>  {
> -       _scratch_mount -o ro,norecovery || \
> +       _scratch_mount_nocheck -o ro,norecovery || \
>                 _notrun "$FSTYP does not support norecovery"
>         _scratch_unmount
>  }
> @@ -3229,7 +3235,7 @@ _require_atime()
>  _require_relatime()
>  {
>          _scratch_mkfs > /dev/null 2>&1
> -        _scratch_mount -o relatime || \
> +        _scratch_mount_nocheck -o relatime || \
>                  _notrun "relatime not supported by the current kernel"
>         _scratch_unmount
>  }
> diff --git a/common/xfs b/common/xfs
> index 9b20b0380782..c6d8f0938ac9 100644
> --- a/common/xfs
> +++ b/common/xfs
> @@ -18,7 +18,7 @@ _setup_large_xfs_fs()
>         file_size=$(($file_size - $SCRATCH_DEV_EMPTY_SPACE))
>
>         # mount the filesystem, create the file, unmount it
> -       _scratch_mount 2>&1 >$tmp_dir/mnt.err
> +       _scratch_mount_nocheck 2>&1 >$tmp_dir/mnt.err
>         local status=$?
>         if [ $status -ne 0 ]; then
>                 echo "mount failed"
> @@ -223,7 +223,7 @@ _require_xfs_mkfs_crc()
>  _require_xfs_crc()
>  {
>         _scratch_mkfs_xfs -m crc=1 >/dev/null 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>            || _notrun "Kernel doesn't support crc feature"
>         _scratch_unmount
>  }
> @@ -233,7 +233,7 @@ _require_xfs_crc()
>  _require_scratch_xfs_crc()
>  {
>         _scratch_mkfs_xfs >/dev/null 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>            || _notrun "Kernel doesn't support crc feature"
>         xfs_info $SCRATCH_MNT | grep -q 'crc=1' || _notrun "crc feature not supported by this filesystem"
>         _scratch_unmount
> @@ -252,7 +252,7 @@ _require_xfs_mkfs_finobt()
>  _require_xfs_finobt()
>  {
>         _scratch_mkfs_xfs -m crc=1,finobt=1 >/dev/null 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>            || _notrun "Kernel doesn't support finobt feature"
>         _scratch_unmount
>  }
> @@ -280,7 +280,7 @@ _require_xfs_sparse_inodes()
>         _scratch_mkfs_xfs_supported -m crc=1 -i sparse > /dev/null 2>&1 \
>                 || _notrun "mkfs.xfs does not support sparse inodes"
>         _scratch_mkfs_xfs -m crc=1 -i sparse > /dev/null 2>&1
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>                 || _notrun "kernel does not support sparse inodes"
>         _scratch_unmount
>  }
> @@ -599,7 +599,7 @@ _require_meta_uuid()
>
>         _scratch_xfs_db -x -c "uuid generate" >/dev/null 2>&1
>
> -       _scratch_mount >/dev/null 2>&1 \
> +       _scratch_mount_nocheck >/dev/null 2>&1 \
>            || _notrun "Kernel doesn't support meta_uuid feature"
>         _scratch_unmount
>  }
> --
> 2.14.3

Thanks,
Andreas
--
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