generic: Simple insert range tests

This testcase tests various corner cases for finsert range
functionality over different type of extents.

Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: Ashish Sangwan <a.sangwan@samsung.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Namjae Jeon
2015-02-25 15:32:47 +11:00
committed by Dave Chinner
parent a8607c1c30
commit 520b9de743
5 changed files with 150 additions and 1 deletions
+5
View File
@@ -527,6 +527,11 @@ _test_generic_punch()
return
fi
# If zero_cmd is finsert, don't check unaligned offsets
if [ "$zero_cmd" == "finsert" ]; then
return
fi
echo " 16. data -> cache cold ->hole"
if [ "$remove_testfile" ]; then
rm -f $testfile
+1 -1
View File
@@ -1520,7 +1520,7 @@ _require_xfs_io_command()
"falloc" )
testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $testfile 2>&1`
;;
"fpunch" | "fcollapse" | "zero" | "fzero" )
"fpunch" | "fcollapse" | "zero" | "fzero" | "finsert" )
testio=`$XFS_IO_PROG -F -f -c "pwrite 0 20k" -c "fsync" \
-c "$command 4k 8k" $testfile 2>&1`
;;
+65
View File
@@ -0,0 +1,65 @@
#! /bin/bash
# FS QA Test No. generic/058
#
# Standard insert range tests
# This testcase is one of the 4 testcases which tries to
# test various corner cases for finsert range functionality over different
# type of extents. These tests are based on generic/255 test case.
# For the type of tests, check the description of _test_generic_punch
# in common/rc.
#-----------------------------------------------------------------------
# Copyright (c) 2015 Samsung Electronics. 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
#
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
_cleanup()
{
rm -f $tmp.*
}
trap "_cleanup ; exit \$status" 0 1 2 3 15
# get standard environment, filters and checks
# we need to include common/punch to get defination fo filter functions
. ./common/rc
. ./common/filter
. ./common/punch
# real QA test starts here
_supported_fs generic
_supported_os Linux
_require_xfs_io_command "fpunch"
_require_xfs_io_command "falloc"
_require_xfs_io_command "fiemap"
_require_xfs_io_command "finsert"
testfile=$TEST_DIR/$seq.$$
_test_generic_punch falloc fpunch finsert fiemap _filter_hole_fiemap $testfile
_check_test_fs
status=0
exit
+78
View File
@@ -0,0 +1,78 @@
QA output created by 058
1. into a hole
cf845a781c107ec1346e849c9dd1b7e8
2. into allocated space
0: [0..7]: extent
1: [8..23]: hole
2: [24..55]: extent
64e72217eebcbdf31b1b058f9f5f476a
3. into unwritten space
0: [0..7]: extent
1: [8..23]: hole
2: [24..55]: extent
cf845a781c107ec1346e849c9dd1b7e8
4. hole -> data
0: [0..31]: hole
1: [32..47]: extent
2: [48..55]: hole
adb08a6d94a3b5eff90fdfebb2366d31
5. hole -> unwritten
0: [0..31]: hole
1: [32..47]: extent
2: [48..55]: hole
cf845a781c107ec1346e849c9dd1b7e8
6. data -> hole
0: [0..7]: extent
1: [8..23]: hole
2: [24..31]: extent
3: [32..55]: hole
be0f35d4292a20040766d87883b0abd1
7. data -> unwritten
0: [0..7]: extent
1: [8..23]: hole
2: [24..47]: extent
3: [48..55]: hole
be0f35d4292a20040766d87883b0abd1
8. unwritten -> hole
0: [0..7]: extent
1: [8..23]: hole
2: [24..31]: extent
3: [32..55]: hole
cf845a781c107ec1346e849c9dd1b7e8
9. unwritten -> data
0: [0..7]: extent
1: [8..23]: hole
2: [24..47]: extent
3: [48..55]: hole
adb08a6d94a3b5eff90fdfebb2366d31
10. hole -> data -> hole
0: [0..39]: hole
1: [40..47]: extent
2: [48..63]: hole
0487b3c52810f994c541aa166215375f
11. data -> hole -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..39]: extent
3: [40..47]: hole
4: [48..63]: extent
e3a8d52acc4d91a8ed19d7b6f4f26a71
12. unwritten -> data -> unwritten
0: [0..7]: extent
1: [8..31]: hole
2: [32..63]: extent
0487b3c52810f994c541aa166215375f
13. data -> unwritten -> data
0: [0..7]: extent
1: [8..31]: hole
2: [32..63]: extent
2b22165f4a24a2c36fd05ef00b41df88
14. data -> hole @ EOF
0: [0..23]: extent
1: [24..39]: hole
2: [40..55]: extent
aa0f20d1edcdbce60d8ef82700ba30c3
15. data -> hole @ 0
0: [0..15]: hole
1: [16..55]: extent
86c9d033be2761385c9cfa203c426bb2
+1
View File
@@ -60,6 +60,7 @@
055 log v2log auto quota stress
056 metadata auto quick
057 metadata auto quick
058 auto quick prealloc
059 metadata auto quick
062 attr udf auto quick
068 other auto freeze dangerous stress