Files
apfstests/tests/generic/015
T
Anand Jain 36a371bdf8 generic/015: fix to test the default non-mixed mode
commit 97575acd74 (generic/015: Change the test filesystem size to
101mb), created 101mb FS instead of 100mb FS to make sure we create
a FS which is non mixed mode.

btrfs-progs commit 18e2663db3e1 (btrfs-progs: Add minimum device
size check) added a more accurate minimum required space to create
the btrfs FS in non mixed mode depending on the group profile, and
considering any group profiles we would need at least 256MB (with
upward round off).

So this patch changes the FS size to be created by
_scratch_sized_mkfs() to 256MB so that we create the FS in non mixed
mode for any group profile.

Mixed blockgroup can be tested using the MKFS_OPTIONS explicitly.

Signed-off-by: Anand Jain <anand.jain@oracle.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
2018-10-07 22:56:55 +08:00

115 lines
2.0 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
#
# FS QA Test No. 015
#
# check out-of-space behaviour
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # success is the default!
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
_cleanup()
{
_scratch_unmount
}
trap "_cleanup; exit \$status" 0 1 2 3 15
_free()
{
_df_dir $SCRATCH_MNT | $AWK_PROG '{ print $5 }'
}
# real QA test starts here
_supported_fs generic
_supported_os Linux
_require_scratch
_require_no_large_scratch_dev
# btrfs needs at least 256MB (with upward round off) to create a non-mixed mode
# fs. Ref: btrfs-progs: btrfs_min_dev_size()
_scratch_mkfs_sized $((256 * 1024 * 1024)) >> $seqres.full 2>&1 \
|| _fail "mkfs failed"
_scratch_mount
out=$SCRATCH_MNT/fillup.$$
rm -f $seqres.full
free0=`_free`
if [ -z "$free0" ]
then
echo " *** failed to get free space (0)"
exit 1
fi
echo "free space at start $free0" >> $seqres.full
echo "fill disk:" # well, filesystem really - not disk
POSIXLY_CORRECT=yes dd if=/dev/zero of=$out bs=1024k 2>&1 | _filter_dd
echo "check free space:"
free1=`_free`
if [ -z "$free1" ]
then
echo " *** failed to get free space (1)"
exit 1
fi
echo "free space after fill $free1" >> $seqres.full
if [ ! -e $out ]
then
echo " *** file not created"
exit 1
fi
if [ ! -s $out ]
then
echo " *** file created with zero length"
ls -l $out
exit 1
fi
echo "delete fill:"
if ! rm $out
then
echo " *** file not deleted"
exit 1
fi
if [ -e $out ]
then
echo " *** file still exists"
ls -l $out
exit 1
fi
echo "check free space:"
sync
free2=`_free`
if [ -z "$free2" ]
then
echo " *** failed to get free space (2)"
exit 1
fi
echo "free space after delete $free2" >> $seqres.full
echo -n " !!! "
_within_tolerance "free space" $free2 $free0 1% -v
status=0
exit