+ #select the correct dstm config file
+ rm dstm.conf
+ if [ $2 -eq 2 ]; then
+ ln -s ${DSTMDIR}/dstm_2.conf dstm.conf
+ fi
+ if [ $2 -eq 3 ]; then
+ ln -s ${DSTMDIR}/dstm_3.conf dstm.conf
+ fi
+ if [ $2 -eq 4 ]; then
+ ln -s ${DSTMDIR}/dstm_4.conf dstm.conf
+ fi
+ if [ $2 -eq 5 ]; then
+ ln -s ${DSTMDIR}/dstm_5.conf dstm.conf
+ fi
+ if [ $2 -eq 6 ]; then
+ ln -s ${DSTMDIR}/dstm_6.conf dstm.conf
+ fi
+ if [ $2 -eq 7 ]; then
+ ln -s ${DSTMDIR}/dstm_7.conf dstm.conf
+ fi
+ if [ $2 -eq 8 ]; then
+ ln -s ${DSTMDIR}/dstm_8.conf dstm.conf
+ fi
+
+ #Start machines
+ let "k= $2"
+ while [ $k -gt 1 ]; do
+ echo "SSH into dc-${k}"
+ ssh dc-${k} 'cd '$DIR'; ./'$BM_NAME'.bin '>> log'-'$k 2>&1 &
+ k=`expr $k - 1`
+ sleep 1
+ done
+ sleep 2
+ #Start master
+ echo "Running master machine ..."
+ ssh dc-1 'cd '$DIR'; ./'$BM_NAME'.bin master '$2 $BM_ARGS >> log'-1' 2>&1 &
+ sleep $WAITTIME
+ echo "Terminating ... "
+ killclientswithSignal $fName $2
+ sleep 5
+ i=`expr $i + 1`
+ done
+ cd -
+}
+
+###
+###runDSM <num iterations> <num machines> <dsm file name>
+###
+function runDSM {
+ i=1;
+ DIR=`echo ${BASEDIR}\/${BM_NAME}\/${RECOVERYDIR}`;
+ cd ${DIR}
+ fName="$BM_DSM.bin";
+ HOSTNAME=`hostname`
+ while [ $i -le $1 ]; do
+ tt=1;
+ while [ $tt -le $2 ]; do
+ echo "------------------------------- running DSM on $2 machines for iter=$i ----------------------------" >> log-$tt
+ tt=`expr $tt + 1`
+ done
+
+ #select the correct dstm config file
+ rm dstm.conf
+ if [ $2 -eq 2 ]; then
+ ln -s ${DSTMDIR}/dstm_2.conf dstm.conf
+ fi
+ if [ $2 -eq 3 ]; then
+ ln -s ${DSTMDIR}/dstm_3.conf dstm.conf
+ fi
+ if [ $2 -eq 4 ]; then
+ ln -s ${DSTMDIR}/dstm_4.conf dstm.conf
+ fi
+ if [ $2 -eq 5 ]; then
+ ln -s ${DSTMDIR}/dstm_5.conf dstm.conf
+ fi
+ if [ $2 -eq 6 ]; then
+ ln -s ${DSTMDIR}/dstm_6.conf dstm.conf
+ fi
+ if [ $2 -eq 7 ]; then
+ ln -s ${DSTMDIR}/dstm_7.conf dstm.conf
+ fi
+ if [ $2 -eq 8 ]; then
+ ln -s ${DSTMDIR}/dstm_8.conf dstm.conf
+ fi
+
+ #Start machines
+ let "k= $2"
+ while [ $k -gt 1 ]; do
+ echo "SSH into dc-${k}"
+ ssh dc-${k} 'cd '$DIR'; ./'$BM_DSM'.bin '>> log'-'$k 2>&1 &
+ k=`expr $k - 1`
+ sleep 3
+ done
+ sleep 6
+ #Start master
+ echo "Running master machine ..."
+ ssh dc-1 'cd '$DIR'; ./'$BM_DSM'.bin master '$2 $BM_ARGS >> log'-1' 2>&1 &
+ sleep $WAITTIME
+ echo "Terminating ... "
+ killclientswithSignal $fName $2
+ sleep 5
+ i=`expr $i + 1`
+ done
+ cd -
+}
+
+function testcase {
+ nummachines=$1
+ shift
+ line=$@