if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
if [ $(uname -s) = "Darwin" ]; then
	# creates a 3GB filesystem
	echo "$test_name: $DESCRIPTION: skipped for HFS+ (no sparse files)"
	return 0
fi

FSCK_OPT=-fn
OUT=$test_name.log
EXP=$test_dir/expect
CONF=$TMPFILE.conf

#gzip -d < $EXP.gz > $EXP

cat > $CONF << ENDL
[fs_types]
	ext4h = {
		features = has_journal,extent,huge_file,uninit_bg,dir_nlink,extra_isize,sparse_super,filetype,dir_index,ext_attr,^resize_inode,^meta_bg,^flex_bg,^metadata_csum,64bit
		blocksize = 1024
		inode_size = 256
		make_hugefiles = true
		hugefiles_dir = /
		hugefiles_slack = 16000K
		hugefiles_name = aaaaa
		hugefiles_digits = 4
		hugefiles_size = 117K
		zero_hugefiles = false
	}
ENDL

echo "tune2fs test" > $OUT

MKE2FS_CONFIG=$CONF $MKE2FS -F -T ext4h -I 128 $TMPFILE 786432 >> $OUT 2>&1
rm -rf $CONF

# dump and check
($DUMPE2FS -h $TMPFILE | grep -v '^Free blocks:'; $DUMPE2FS -g $TMPFILE) 2>&1 | sed -f $cmd_dir/filter.sed -e '/^Checksum:.*/d' >> $OUT.before 2> /dev/null
$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
status=$?
echo Exit status is $status >> $OUT

# convert it
echo "tune2fs -I 256 -O metadata_csum test.img" >> $OUT
dd if=/dev/zero of=$TMPFILE conv=notrunc bs=1 count=1 seek=3221225471 2> /dev/null
$TUNE2FS -I 256 -O metadata_csum $TMPFILE >> $OUT 2>&1
status=$?
echo Exit status is $status >> $OUT
$FSCK -N test_filesys -y -f -D $TMPFILE >> $OUT 2>&1

# dump and check
($DUMPE2FS -h $TMPFILE | grep -v '^Free blocks:'; $DUMPE2FS -g $TMPFILE) 2>&1 | sed -f $cmd_dir/filter.sed -e '/^Checksum:.*/d' >> $OUT.after 2> /dev/null
echo "Change in FS metadata:" >> $OUT
diff -U 0 $OUT.before $OUT.after | sed -e '/^---.*/d' -e '/^+++.*/d' >> $OUT
$FSCK $FSCK_OPT -N test_filesys $TMPFILE >> $OUT 2>&1
status=$?
echo Exit status is $status >> $OUT

rm $TMPFILE

#
# Do the verification
#

sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" -e 's/test_filesys:.*//g' < $OUT > $OUT.new
mv $OUT.new $OUT

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
fi

rm $OUT.before $OUT.after

unset IMAGE FSCK_OPT OUT EXP CONF

else #if test -x $RESIZE2FS_EXE -a -x $DEBUGFS_EXE; then
	echo "$test_name: $test_description: skipped"
fi

