#!/bin/sh
#*****************************************************************************#
# endurance_test - Endurance test for MMCs or USB memory sticks               #
# Author: Tim Jaacks <tim.jaacks@garz-fricke.com>                             #
# Copyright 2011 Garz & Fricke GmbH                                           #
#*****************************************************************************#

#*****************************************************************************#
# Variables                                                                   #
#*****************************************************************************#
medium="$1"
hours="$2"
devnode="$3"
size_test="$4"
files_test="$5"
logfile="$6"
mbytes="$7"
clusters="$8"

#*****************************************************************************#
# Check parameters                                                            #
#*****************************************************************************#
if [ -z "$medium" -o -z "$hours" -o -z "$devnode" -o -z "$size_test" -o \
	 -z "$files_test" -o -z "$logfile" -o -z "$mbytes" -o -z "$clusters" ]
then
	echo "This script is not designed to be executed directly."
	echo "Please call endurance_test to start a test."
	exit 1
fi

echo "Testing $medium ($mbytes MBytes / $clusters clusters) for $hours hours"
echo "Using test sequences: $size_test / $files_test"
echo "Using logile: $logfile"

#*****************************************************************************#
# Run tests                                                                   #
#*****************************************************************************#
start_time=$(( $(date +%s) / 60 ))
current_time=$start_time

cd /opt/ltp

while [ $(( ( $current_time - $start_time ) / 60 )) -lt $hours ]
do
	# Format medium
	echo "Formatting $medium..."
	umount /mnt/$medium
	mkfs.vfat $devnode
	mount $devnode /mnt/$medium

	echo "Starting large files test"
	./runltp -p -l $logfile -f $size_test

	echo "Formatting $medium..."
	umount /mnt/$medium
	mkfs.vfat $devnode
	mount $devnode /mnt/$medium

	echo "Starting many files test"
	./runltp -p -l $logfile -f $files_test

	current_time=$(( $(date +%s) / 60 ))
done

echo "finished at "$(date "+%D %T")