ext4: Make shared/243 ext4 specific

The test shared/243 really is ext4 specific even though currently we
would run it on other file systems as well, it would not actually do any
testing.

So move it to ext4 specific directory and rename it to 002.

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:50 +11:00
committed by Dave Chinner
parent 21723cdbf3
commit 259d680620
4 changed files with 4 additions and 4 deletions
-180
View File
@@ -1,180 +0,0 @@
#! /bin/bash
# FS QA Test No. 243
#
# Test to ensure that the EOFBLOCK_FL gets set/unset correctly.
#
# As found by Theodore Ts'o:
# If a 128K file is falloc'ed using the KEEP_SIZE flag, and then
# write exactly 128K, the EOFBLOCK_FL doesn't get cleared correctly.
# This is bad since it forces e2fsck to complain about that inode.
# If you have a large number of inodes that are written with fallocate
# using KEEP_SIZE, and then fill them up to their expected size,
# e2fsck will potentially complain about a _huge_ number of inodes.
# This would also cause a huge increase in the time taken by e2fsck
# to complete its check.
#
# Test scenarios covered:
# 1. Fallocating X bytes and writing Y (Y<X) (buffered and direct io)
# 2. Fallocating X bytes and writing Y (Y=X) (buffered and direct io)
# 3. Fallocating X bytes and writing Y (Y>X) (buffered and direct io)
#
# These test cases exercise the normal and edge case conditions using
# falloc (and KEEP_SIZE).
#
# Ref: http://thread.gmane.org/gmane.comp.file-systems.ext4/20682
#
#-----------------------------------------------------------------------
# Copyright (c) 2010 Google, 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
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
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
# Test specific macros.
BIT_NOT_SET=0 # inode flag - 0x400000 bit is not set.
BIT_SET=1 # inode flag - 0x400000 bit is set.
# Generic test cleanup function.
_cleanup()
{
cd /
rm -f $tmp.*
}
# Ext4 uses the EOFBLOCKS_FL bit when fallocating blocks with KEEP_SIZE
# enabled. The only time this bit should be set is when extending the allocated
# blocks further than what the i_size represents. In the situations wherein the
# i_size covers all allocated blocks, this bit should be cleared.
# Checks the state of the sample file in the filesystem and returns whether
# the inode flag 0x400000 is set or not.
_check_ext4_eof_flag()
{
# Check whether EOFBLOCK_FL is set.
# For ext4 filesystems: use debugfs to check if EOFBLOCKS_FL is set.
# Other filesystems: do nothing. The default fsck at the end of the test
# should catch any potential errors.
if [ "${FSTYP}" == "ext4" ]; then
bit_set=1
# Unmount the ${TEST_DEV}
umount ${TEST_DEV}
# Run debugfs to gather file_parameters - specifically iflags.
file_params=`debugfs ${TEST_DEV} -R "stat ${1}" 2>&1 | grep -e Flags:`
iflags=${file_params#*Flags: }
# Ensure that the iflags value was parsed correctly.
if [ -z ${iflags} ]; then
echo "iFlags value was not parsed successfully." >> $seqres.full
status=1
exit ${status}
fi
# Check if EOFBLOCKS_FL is set.
if ((${iflags} & 0x400000)); then
echo "EOFBLOCK_FL bit is set." >> $seqres.full
bit_set=1
else
echo "EOFBLOCK_FL bit is not set." >> $seqres.full
bit_set=0
fi
# Check current bit state to expected value.
if [ ${bit_set} -ne ${2} ]; then
echo "Error: Current bit state incorrect." >> $seqres.full
status=1
exit ${status}
fi
# Mount the ${TEST_DEV}
mount ${TEST_DEV} -t ${FSTYP} ${TEST_DIR}
fi
}
# Get standard environment, filters and checks.
. ./common/rc
. ./common/filter
# Prerequisites for the test run.
_supported_fs ext4 xfs btrfs gfs2
_supported_os Linux
_require_xfs_io_falloc
# Real QA test starts here.
rm -f $seqres.full
# Remove any leftover files from last run.
rm -f ${TEST_DIR}/test_?
# Begin test cases.
echo "Test 1: Fallocate 40960 bytes and write 4096 bytes (buffered io)." \
>> $seqres.full
${XFS_IO_PROG} -f \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 4096' \
${TEST_DIR}/test_1 | _filter_xfs_io_unique
_check_ext4_eof_flag test_1 ${BIT_SET}
echo "Test 2: Fallocate 40960 bytes and write 4096 bytes (direct io)." \
>> $seqres.full
${XFS_IO_PROG} -f -d \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 4096' \
${TEST_DIR}/test_2 | _filter_xfs_io_unique
_check_ext4_eof_flag test_2 ${BIT_SET}
echo "Test 3: Fallocate 40960 bytes and write 40960 bytes (buffered io)." \
>> $seqres.full
${XFS_IO_PROG} -f \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 40960' \
${TEST_DIR}/test_3 | _filter_xfs_io_unique
_check_ext4_eof_flag test_3 ${BIT_NOT_SET}
echo "Test 4: Fallocate 40960 bytes and write 40960 bytes (direct io)." \
>> $seqres.full
${XFS_IO_PROG} -f -d \
-c 'falloc -k 0 40960' \
-c 'pwrite 0 40960' \
${TEST_DIR}/test_4 | _filter_xfs_io_unique
_check_ext4_eof_flag test_4 ${BIT_NOT_SET}
echo "Test 5: Fallocate 128k, seek 256k and write 4k block (buffered io)." \
>> $seqres.full
${XFS_IO_PROG} -f \
-c 'falloc -k 0 128k' \
-c 'pwrite 256k 4k' \
${TEST_DIR}/test_5 | _filter_xfs_io_unique
_check_ext4_eof_flag test_5 ${BIT_NOT_SET}
echo "Test 6: Fallocate 128k, seek to 256k and write a 4k block (direct io)." \
>> $seqres.full
${XFS_IO_PROG} -f -d \
-c 'falloc -k 0 128k' \
-c 'pwrite 256k 4k' \
${TEST_DIR}/test_6 | _filter_xfs_io_unique
_check_ext4_eof_flag test_6 ${BIT_NOT_SET}
status=0
exit ${status}
-13
View File
@@ -1,13 +0,0 @@
QA output created by 243
wrote 4096/4096 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 4096/4096 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 40960/40960 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 40960/40960 bytes at offset 0
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 4096/4096 bytes at offset 262144
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
wrote 4096/4096 bytes at offset 262144
XXX Bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
-1
View File
@@ -6,7 +6,6 @@
006 auto enospc
032 mkfs auto quick
051 acl udf auto quick
243 auto quick prealloc
272 auto enospc rw
289 auto quick
298 auto trim