e2fsprogs/tests/r_move_itable_nostride/script
Andreas Dilger c5d9d3ce5f tests: don't run sed multiple times on test output
Don't call sed multiple times on the output, and avoid the use
of temporary files, or if possible.  It would be convenient to
use "sed -i" to only update the output file once, but this is
not portable to all platforms.

[ Fixed a few test regression failures --tytso ]

Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
2018-06-22 17:59:35 -04:00

64 lines
1.8 KiB
Plaintext

if [ $(uname -s) = "FreeBSD" ]; then
# creates a 96GB filesystem
echo "$test_name: $DESCRIPTION: skipped for FreeBSD (no sparse files)"
return 0
fi
if [ $(uname -s) = "Darwin" ]; then
# creates a 96GB filesystem
echo "$test_name: $DESCRIPTION: skipped for HFS+ (no sparse files)"
return 0
fi
if ! test -x $RESIZE2FS_EXE -o ! -x $DEBUGFS_EXE; then
echo "$test_name: $test_description: skipped (no debugfs/resize2fs)"
return 0
fi
FSCK_OPT=-yf
OUT=$test_name.log
if [ -f $test_dir/expect.gz ]; then
EXP=$test_name.tmp
gunzip < $test_dir/expect.gz > $EXP1
else
EXP=$test_dir/expect
fi
dd if=/dev/zero of=$TMPFILE bs=1k count=512 > /dev/null 2>&1
echo mke2fs -q -F -o Linux -b 1024 -i 1024 -E stride=8192 -t ext4 test.img 1024000 > $OUT
$MKE2FS -q -F -o Linux -b 1024 -i 1024 -E stride=8192 -t ext4 \
$TMPFILE 1024000 >> $OUT 2>&1
echo resize2fs -p test.img 10240000 >> $OUT
$RESIZE2FS -p $TMPFILE 100000000 >> $OUT 2>&1
$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
status=$?
echo Exit status is $status >> $OUT
$DEBUGFS -R "set_super_value lastcheck 0" -w $TMPFILE >/dev/null 2>&1
$DEBUGFS -R "set_super_value hash_seed null" -w $TMPFILE >/dev/null 2>&1
$DEBUGFS -R "set_super_value mkfs_time 0" -w $TMPFILE >/dev/null 2>&1
$TUNE2FS -c 20 -U clear $TMPFILE >/dev/null 2>&1
echo dumpe2fs -h test.img >> $OUT
$DUMPE2FS -h $TMPFILE >> $OUT 2>&1
sed -f $cmd_dir/filter.sed -e '/Block bitmap.*$/N;s/\n Inode bitmap/, Inode bitmap/g' < $OUT > $OUT.new
mv $OUT.new $OUT
rm -f $TMPFILE
cmp -s $OUT $EXP
status=$?
if [ "$status" = 0 ] ; then
echo "$test_name: $test_description: ok"
touch $test_name.ok
else
echo "$test_name: $test_description: failed"
diff $DIFF_OPTS $EXP $OUT > $test_name.failed
rm -f $test_name.tmp
fi
unset IMAGE FSCK_OPT OUT EXP