This is just like test 072, but using fallocate instead of the xfs ioctl. Just very basic fallocate tests. Also adds a "prealloc" group (./check -g prealloc) Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxxx> --- diff --git a/213 b/213 new file mode 100755 index 0000000..bf14245 --- /dev/null +++ b/213 @@ -0,0 +1,88 @@ +#! /bin/sh +# FS QA Test No. 213 +# +# Check some unwritten extent boundary conditions, fallocate version. +# +# Based on xfs-specific test 072 +# +#----------------------------------------------------------------------- +# Copyright (c) 2000-2003 Silicon Graphics, Inc. All Rights Reserved. +# Copyright (c) 2009 Red Hat, Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +# +#----------------------------------------------------------------------- +# +# creator +owner=sandeen@xxxxxxxxxxx + +seq=`basename $0` +echo "QA output created by $seq" + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +here=`pwd` +tmp=$TEST_DIR/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here +# generic, but xfs_io's fallocate must work +_supported_fs generic +# only Linux supports fallocate +_supported_os Linux + +[ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found" + +rm -f $seq.full + +testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $TEST_DIR/$tmp.io 2>&1` +echo $testio | grep -q "not found" && \ + _notrun "xfs_io fallocate support is missing" +echo $testio | grep -q "Operation not supported" && \ + _notrun "xfs_io fallocate command failed (old kernel? wrong fs?)" + +# check there's enough freespace on $TEST_DIR ... (1GiB + 1MiB) +avail=`df -P $TEST_DIR | awk 'END {print $4}'` +[ "$avail" -ge 1049600 ] || _notrun "Test device is too small ($avail KiB)" + +echo Silence is golden + +# reserve 1GiB, truncate at 100bytes +$XFS_IO_PROG -F -f -c 'falloc 0 1g' -c 'truncate 100' $TEST_DIR/ouch +rm -f $TEST_DIR/ouch + +# reserve 1GiB, truncate at 1GiB +$XFS_IO_PROG -F -f -c 'falloc 0 1g' -c 'truncate 1g' $TEST_DIR/ouch +rm -f $TEST_DIR/ouch + +# reserve 1GiB, truncate at 2GiB +$XFS_IO_PROG -F -f -c 'falloc 0 1g' -c 'truncate 2g' $TEST_DIR/ouch +rm -f $TEST_DIR/ouch + +# reserve 1GiB, 1GiB hole, reserve 1MiB, truncate at 3GiB +$XFS_IO_PROG -F -f -c 'falloc 0 1g' -c 'falloc 2g 1m' -c 'truncate 3g' $TEST_DIR/ouch +rm -f $TEST_DIR/ouch + +# success, all done +status=0 +exit diff --git a/group b/group index 1268ddd..578fa05 100644 --- a/group +++ b/group @@ -101,6 +101,10 @@ nfs4acl tes@xxxxxxx donaldd@xxxxxxx # test access time atime +# Test preallocation calls +prealloc + +# # test-group association ... one line per test # 001 rw dir udf auto quick @@ -111,7 +115,7 @@ atime 006 dir udf auto quick 007 dir udf auto quick 008 rw ioctl auto quick -009 rw ioctl auto quick +009 rw ioctl auto prealloc quick 010 other udf auto 011 dir udf auto quick 012 rw auto quick @@ -174,7 +178,7 @@ atime 069 rw udf auto quick 070 attr udf auto quick 071 rw -072 rw auto quick +072 rw auto prealloc quick 073 copy auto 074 rw udf auto 075 rw udf auto quick @@ -206,7 +210,7 @@ atime 101 udf 102 udf 103 metadata dir ioctl auto quick -104 growfs ioctl +104 growfs ioctl prealloc 105 acl auto quick 106 quota 107 quota @@ -266,8 +270,8 @@ atime 161 dmapi auto 162 dmapi auto 163 dmapi auto -164 rw pattern auto quick -165 rw pattern auto quick +164 rw pattern auto prealloc quick +165 rw pattern auto prealloc quick 166 rw metadata auto quick 167 rw metadata auto 168 dmapi auto @@ -317,3 +321,4 @@ atime 210 auto aio quick 211 auto aio quick 212 auto aio quick +213 rw auto prealloc quick -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html