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
