#!/bin/bash
# Exmaples:
# ltp cvs user@host.com/var/cvs/path/to/ltp
# ltp url http://system.com/kernel.tgz 
# ltp url ftp://system.com/kernel.tgz
#

set -x

#. /etc/autobench.conf || . functions

if [ $# -lt 2 ]; then
  echo "You must specify at least two arguments: type, and source"
  exit 86
fi

#echo LTP source type: "'$SRC_TYPE'"
#echo LTP source url: "'$SRC_URL'"

LTPDIR=$TMPDIR/ltp
mkdir -p $LTPDIR
pushd $LTPDIR

while [ $# -ge "0" ]; do
	case $1 in
		cvs)
			SRC_URL=$2
			shift 2
			log "fetching LTP from cvs: $SRC_URL"
			# SRC_URL should be like:
			# :pserver:anonymous@cvs.sourceforge.net:/cvsroot/ltp
			log "fetching LTP from cvs"
			cvs -z9 -d$SRC_URL co ltp
			check_status "fetch of LTP from cvs: $SRC_URL"
			pushd ltp
			break
			;;
		url)
			SRC_URL=$2
			shift 2;
			log "fetching LTP from url: $SRC_URL"
			wget --dot-style=mega $SRC_URL
			check_status "fetch of LTP from $SRC_URL"
			TARBALL=`basename $SRC_URL`

			ZIP_TYPE=${TARBALL/*.tar.bz2/j}
			ZIP_TYPE=${TARBALL/*.tar.gz/z}
			ZIP_TYPE=${TARBALL/*.tgz/z}
			tar ${ZIP_TYPE}xf $TARBALL
			check_status "untarring of LTP from $TARBALL "\
				     "(zip type: $ZIP_TYPE)"
			pushd `tar ${ZIP_TYPE}tf $TARBALL`;
			check_status "fetch of LTP from $SRC_URL"
			break;
			;;
		clean)
			rm -rf ltp*;
			shift
			;;
		*)
			echo invalid LTP source specified
			exit 1
			;;
	esac
done;

nr_cpus=`grep -c 'processor.*:' /proc/cpuinfo`
make -j$nr_cpus >> $LOGDIR/ltp.make.log
check_status "ltp make -j$nr_cpus"

make install >> $LOGDIR/ltp.make.log
check_status "ltp make"

log "starting ltp run"
./runalltests.sh -q -l ltp.log $* >> $LOGDIR/ltp.stdout.log
mv -f results/ltp.log $LOGDIR/ltp.log
check_status "done with ltp run"

popd # ltp dir from tarball/cvs
popd # ltp dir inside of $AUTOBENCH/var/tmp
