Files
apfstests/tests/xfs/066
T
Dave Chinner 7c9748f836 xfs/066: stat the test file, not the directory
Ever since commit 7e2a19504 ("ls -l reports different file size
depending on platform and user.") xfs/066 has been running stat on
the dump/restore directory instead of the large file that the test
is checking can be dumped and restored correctly. IOWs, it's not
been checking the correct thing for almost 10 years.

This test fails on CRC enabled filesystems because the shortform
directory entry size is different (an extra byte for the filetype
filed), and this is where tracking down the failure has lead me.

Fix this by using the correct target file, and improve it by dumping
an md5sum of the source and target files to ensure they contain the
same data.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Eric Sandeen <sandeen@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
2014-02-06 16:36:17 +11:00

74 lines
1.9 KiB
Bash
Executable File

#! /bin/bash
# FS QA Test No. 066
#
# Test dumping of large files
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2002 Silicon Graphics, 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
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
. ./common/dump
_cleanup()
{
cd /
rm -f $tmp.*
}
# real QA test starts here
_supported_fs xfs
_supported_os IRIX Linux
_my_stat_filter()
{
grep "[sS]ize" | sed "s/.*[sS]ize[: ]*\([[:digit:]]*\).*/\1 largefile/g"
}
rm -f $TEST_DIR/testfile
if src/feature -t $TEST_DIR/testfile; then
:
else
_notrun "Installed libc doesn't correctly handle setrlimit/ftruncate64"
fi
_create_dumpdir_largefile
echo "ls dumpdir/largefile"
stat $dump_dir/largefile | _my_stat_filter
md5sum $dump_dir/largefile |_filter_scratch
_do_dump_file
_do_restore_file
echo "ls restoredir/largefile"
stat $restore_dir/$dump_sdir/largefile | _my_stat_filter
md5sum $restore_dir/$dump_sdir/largefile |_filter_scratch
# success, all done
status=0
exit