Files
apfstests/225
T
Eric Sandeen b431918b6d 225: add additional fiemap-tester run without sync
Chris Mason pointed out that some filesystems were not doing
the right thing on fiemap, in the face of delalloc extents.

Because test 225 ran with FIEMAP_FLAG_SYNC only, this didn't
get caught.  Add a runtime option, and run it both ways.

Note that this changes defaults for fiemap-tester, so that
it no longer calls with FIEMAP_FLAG_SYNC by default, and
a new option -S is added to do so.

Signed-off-by: Eric Sandeen <sandeen@redhat.com>
Reviewed-by: Alex Elder <aelder@sgi.com>
2011-03-08 09:16:23 -06:00

79 lines
2.0 KiB
Bash
Executable File

#! /bin/bash
# FS QA Test No. 225
#
# Run the fiemap (file extent mapping) tester
#
#-----------------------------------------------------------------------
# Copyright (c) 2009 Eric Sandeen. 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@sandeen.net
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=tmp/$$
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
rm -f $tmp.*
_cleanup_testdir
}
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
# real QA test starts here
_supported_fs generic
_supported_os Linux
_setup_testdir
fiemapfile=$TEST_DIR/fiemap.$$
fiemaplog=$TEST_DIR/fiemap.$$.log
[ -x $here/src/fiemap-tester ] || _notrun "fiemap-tester not built"
_cleanup()
{
rm -f $fiemapfile
rm -f $fiemaplog
}
trap "_cleanup; exit \$status" 0 1 2 3 15
echo "fiemap run without preallocation, with sync"
$here/src/fiemap-tester -q -S -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog
echo "fiemap run without preallocation or sync"
$here/src/fiemap-tester -q -p 0 -r 200 $fiemapfile 2>&1 | tee $fiemaplog
if grep -q "Operation not supported" $fiemaplog; then
_notrun "FIEMAP not supported by this filesystem type: $FSTYP"
fi
rm -f $fiemapfile
rm -f $fiemaplog
rm -f $seq.full
status=0
exit