OUT=$test_name.log
EXP=$test_dir/expect
E2FSCK=../e2fsck/e2fsck

NAMELEN=255
DIRENT_SZ=8
BLOCKSZ=1024
INODESZ=128
CSUM_SZ=8
CSUM_TAIL_SZ=12
DIRENT_PER_LEAF=$(((BLOCKSZ - CSUM_TAIL_SZ) / (NAMELEN + DIRENT_SZ)))
HEADER=32
INDEX_SZ=8
INDEX_L1=$(((BLOCKSZ - HEADER - CSUM_SZ) / INDEX_SZ))
INDEX_L2=$(((BLOCKSZ - DIRENT_SZ - CSUM_SZ) / INDEX_SZ))
DIRBLK=$((3 + INDEX_L1 * INDEX_L2))
ENTRIES=$((DIRBLK * DIRENT_PER_LEAF))
# directory leaf blocks - get twice as much because the leaves won't be full
# and there are also other filesystem blocks.
FSIZE=$((DIRBLK * 2))

$MKE2FS -b 1024 -O extents,64bit,large_dir,uninit_bg,metadata_csum -N 50 \
	-I $INODESZ -F $TMPFILE $FSIZE > $OUT.new 2>&1
RC=$?
if [ $RC -eq 0 ]; then
{
	# First some initial fs setup to create indexed dir
	echo "mkdir /foo"
	echo "cd /foo"
	touch $TMPFILE.tmp
	echo "write $TMPFILE.tmp foofile"
	i=0
	while test $i -lt $DIRENT_PER_LEAF ; do
		printf "ln foofile f%0254u\n" $i
		i=$((i + 1));
	done
	echo "expand ./"
	printf "ln foofile f%0254u\n" $i
} | $DEBUGFS -w $TMPFILE > /dev/null 2>> $OUT.new
	RC=$?
	# e2fsck should optimize the dir to become indexed
	$E2FSCK -yfD $TMPFILE >> $OUT.new 2>&1
	status=$?
	echo Exit status is $status >> $OUT.new
fi

if [ $RC -eq 0 ]; then
{
	START=$SECONDS
	i=$(($DIRENT_PER_LEAF+1))
	last=$i
	echo "cd /foo"
	while test $i -lt $ENTRIES ; do
	    ELAPSED=$((SECONDS - START))
	    if test $((i % 5000)) -eq 0 -a $ELAPSED -gt 10; then
		RATE=$(((i - last) / ELAPSED))
		echo "$test_name: $i/$ENTRIES links, ${ELAPSED}s @ $RATE/s" >&2
		START=$SECONDS
		last=$i
	    fi
	    printf "ln foofile f%0254u\n" $i
	    i=$((i + 1))
	done
} | $DEBUGFS -w $TMPFILE > /dev/null 2>> $OUT.new
	RC=$?
fi

if [ $RC -eq 0 ]; then
	$E2FSCK -yfD $TMPFILE >> $OUT.new 2>&1
	status=$?
	echo Exit status is $status >> $OUT.new
	sed -f $cmd_dir/filter.sed -e "s;$TMPFILE;test.img;" $OUT.new > $OUT
	rm -f $OUT.new

	cmp -s $OUT $EXP
	RC=$?
fi
if [ $RC -eq 0 ]; then
	echo "$test_name: $test_description: ok"
	touch $test_name.ok
else
	echo "$test_name: $test_description: failed"
	diff -u $EXP $OUT > $test_name.failed
fi
