#!/bin/sh
#To run this script the following is necessary
# 1.kernel should mtd support as module.
# 2.kernel should hsve jffs2 support as module.
# 3.kernel should have loopback device support .
# 4.you should have fs-bench utility (http://h2np.net/tools/fs-bench-0.2.tar.gz)
# 5.results will be copied to /tmp/log and /tmp/log1 files

#DESCRIPTION: This testscript creates a jffs2 file system type and tests the filesystem test
#and places the log in the log directory.The file system test actually creates a tree of large
#directories and performs the delete and random delete operations as per the filesystem stress
#algorithim and gives a report of real time ,user time,system time taken to perform the file
#operations.

#script created  G.BANU PRAKASH (mailto:prakash.banu@wipro.com).
#
#   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; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will 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 to the Free Software
#   Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#

MTD_RAM=mtdram
MTD_BLOCK=mtdblock
JFFS2=jffs2
LOOP=loop
MTD_BLKDEVS=mtd_blkdevs
ZLIB_DEFLATE=zlib_deflate
ZLIB_INFLATE=zlib_inflate
MTD_CORE=mtdcore
MOUNT_DIR=/mnt
LOG_DIR=/tmp/log
LOG_DIR1=/tmp/log1
HOME_DIR=/home
BLOCK_DIR=/dev/mtdblock
export PATH=$PATH:/sbin
	if [ $(id -ru) -ne 0 ];
then
	echo "must be root to run this"
	exit
fi



lsmod |grep $MTD_RAM

	if [ $? -ne 0 ];
then
	echo "inserting mtd ram and its dependencies"
fi
modprobe $MTD_RAM  total_size=32768 erase_size=256
	if [ $? -ne 0 ];
then
	echo "check wheather MTD -mtdram is been compiled in the kernel"
fi
lsmod |grep $MTD_BLOCK
	if [ $? -ne 0 ]; then
	echo "inserting mtdblock  and its dependencies"
fi
modprobe $MTD_BLOCK
	if [ $? -ne 0 ]; then
	echo "check wheather mtdblock is been compiled in the kernel"
fi

lsmod |grep $JFFS2
	if [ $? -ne 0 ]; then
	echo "inserting jffs2  and its dependencies"
fi
modprobe $JFFS2
	if [ $? -ne 0 ]; then
	echo "check wheather jffs2 is been compiled in the kernel"
fi

lsmod |grep $LOOP
	if [ $? -ne 0 ]; then
	echo "inserting loopback device module"
fi
modprobe $LOOP
	if [ $? -ne 0 ]; then
	echo "check wheather loopback device option is been compiled in the kernel"
fi
mkdir -p $BLOCK_DIR
mknod $BLOCK_DIR/0 b 31 0 >/dev/null 2>&1
mount -t jffs2 $BLOCK_DIR/0 $MOUNT_DIR
mount|grep $JFFS2
	if [ $? -eq 0 ]; then
 echo "jffs2 mounted sucessfully"
	else
 echo "mount unsucessfull"
fi
cd $MOUNT_DIR
echo "This is will take long time "
./test.sh    >log 2>&1
./test2.sh    >log1 2>&1

mv log   $LOG_DIR
mv log1  $LOG_DIR1
cd $HOME_DIR


#cleanup
echo "unmounting $MOUNT_DIR "
umount $MOUNT_DIR
echo "removing the modules inserted"
rmmod  $MTD_BLOCK
rmmod  $MTD_BLKDEVS
rmmod  $LOOP
rmmod  $JFFS2
rmmod  $ZLIB_DEFLATE
rmmod  $ZLIB_INFLATE
rmmod  $MTD_RAM
rmmod  $MTD_CORE
rm -rf /dev/mtdblock
echo "TEST COMPLETE"
echo "RESULTS LOGGED IN FILE  /tmp/log and /tmp/log1  "