check: Allow to recreate TEST_DEV

Add config option RECREATE_TEST_DEV to allow to recreate file system on
the TEST_DEV device. Permitted values are true and false.

If RECREATE_TEST_DEV is set to true the TEST_DEV device will be
unmounted and FSTYP file system will be created on it. Afterwards it
will be mounted to TEST_DIR again with the default, or specified mount
options.

Also recreate the file system if FSTYP differs from the previous
section.

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Lukas Czerner
2014-04-04 17:18:15 +11:00
committed by Dave Chinner
parent 667308dd97
commit f8e4f532f1
4 changed files with 189 additions and 19 deletions
+106
View File
@@ -83,6 +83,8 @@ export PWD=`pwd`
export MALLOCLIB=${MALLOCLIB:=/usr/lib/libefence.a}
export LOCAL_CONFIGURE_OPTIONS=${LOCAL_CONFIGURE_OPTIONS:=--enable-readline=yes}
export RECREATE_TEST_DEV=false
# $1 = prog to look for, $2* = default pathnames if not found in $PATH
set_prog_path()
{
@@ -215,6 +217,91 @@ case "$HOSTOS" in
;;
esac
_mount_opts()
{
# SELinux adds extra xattrs which can mess up our expected output.
# So, mount with a context, and they won't be created
# # nfs_t is a "liberal" context so we can use it.
if [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled; then
SELINUX_MOUNT_OPTIONS="-o context=system_u:object_r:nfs_t:s0"
export SELINUX_MOUNT_OPTIONS
fi
case $FSTYP in
xfs)
export MOUNT_OPTIONS=$XFS_MOUNT_OPTIONS
;;
udf)
export MOUNT_OPTIONS=$UDF_MOUNT_OPTIONS
;;
nfs)
export MOUNT_OPTIONS=$NFS_MOUNT_OPTIONS
;;
ext2|ext3|ext4|ext4dev)
# acls & xattrs aren't turned on by default on ext$FOO
export MOUNT_OPTIONS="-o acl,user_xattr $EXT_MOUNT_OPTIONS"
;;
reiserfs)
# acls & xattrs aren't turned on by default on reiserfs
export MOUNT_OPTIONS="-o acl,user_xattr $REISERFS_MOUNT_OPTIONS"
;;
gfs2)
# acls aren't turned on by default on gfs2
export MOUNT_OPTIONS="-o acl $GFS2_MOUNT_OPTIONS"
;;
*)
;;
esac
}
_mkfs_opts()
{
case $FSTYP in
xfs)
export MKFS_OPTIONS=$XFS_MKFS_OPTIONS
;;
udf)
[ ! -z "$udf_fsize" ] && \
UDF_MKFS_OPTIONS="$UDF_MKFS_OPTIONS -s $udf_fsize"
export MKFS_OPTIONS=$UDF_MKFS_OPTIONS
;;
nfs)
export MKFS_OPTIONS=$NFS_MKFS_OPTIONS
;;
reiserfs)
export MKFS_OPTIONS="$REISERFS_MKFS_OPTIONS -q"
;;
gfs2)
export MKFS_OPTIONS="$GFS2_MKFS_OPTIONS -O -p lock_nolock"
;;
jfs)
export MKFS_OPTIONS="$JFS_MKFS_OPTIONS -q"
;;
*)
;;
esac
}
_fsck_opts()
{
case $FSTYP in
ext2|ext3|ext4|ext4dev)
export FSCK_OPTIONS="-nf"
;;
reiserfs)
export FSCK_OPTIONS="--yes"
;;
*)
export FSCK_OPTIONS="-n"
;;
esac
}
[ -z "$FSTYP" ] && export FSTYP=xfs
[ -z "$MOUNT_OPTIONS" ] && _mount_opts
[ -z "$MKFS_OPTIONS" ] && _mkfs_opts
[ -z "$FSCK_OPTIONS" ] && _fsck_opts
known_hosts()
{
[ "$HOST_CONFIG_DIR" ] || HOST_CONFIG_DIR=`pwd`/configs
@@ -273,8 +360,27 @@ parse_config_section() {
}
get_next_config() {
local OLD_FSTYP=$FSTYP
local OLD_MOUNT_OPTIONS=$MOUNT_OPTIONS
local OLD_MKFS_OPTIONS=$MKFS_OPTIONS
local OLD_FSCK_OPTIONS=$FSCK_OPTIONS
unset MOUNT_OPTIONS
unset MKFS_OPTIONS
unset FSCK_OPTIONS
parse_config_section $1
if [ -n "$OLD_FSTYP" ] && [ $OLD_FSTYP != $FSTYP ]; then
[ -z "$MOUNT_OPTIONS" ] && _mount_opts
[ -z "$MKFS_OPTIONS" ] && _mkfs_opts
[ -z "$FSCK_OPTIONS" ] && _fsck_opts
else
[ -z "$MOUNT_OPTIONS" ] && export MOUNT_OPTIONS=$OLD_MOUNT_OPTIONS
[ -z "$MKFS_OPTIONS" ] && export MKFS_OPTIONS=$OLD_MKFS_OPTIONS
[ -z "$FSCK_OPTIONS" ] && export FSCK_OPTIONS=$OLD_FSCK_OPTIONS
fi
# set default RESULT_BASE
if [ -z "$RESULT_BASE" ]; then
export RESULT_BASE="$here/results/"