#!/bin/bash

if [ $# -lt 1 -o $# -gt 2 ]; then
  echo "Usage: $0 <test> [logfile]"
  exit
fi
TEST=$1
LOGFILE=0
if [ $# -eq 2 ]; then
  LOGFILE=1
  LOG=$2
fi

echo ">>>>>>> Starting test: $TEST <<<<<<<<"
if [ $LOGFILE -eq 1 ]; then echo -n "[`date '+%F %T'`] $TEST: " >> $LOG; fi
java -jar ../dist/cooja.jar -nogui -test=$TEST
if [ -f "COOJA.log" ]; then
  mv COOJA.log $TEST.cooja_log
fi

OK=0
if [ -f "$TEST.log" ]; then
  OK=`grep "TEST OK" $TEST.log | wc -l`
fi

if [ $LOGFILE -eq 1 ]; then
  if [ $OK == 0 ]; then
    echo "FAIL" >> $LOG
    if [ -f "$TEST.info" ]; then
      echo "--LOG INFO START ($TEST.info) --" >> $LOG
      cat $TEST.info >> $LOG
      echo "--LOG INFO END --" >> $LOG
    else
      echo "-- NO LOG INFO AVAILABLE ($TEST.info) --" >> $LOG
    fi
    echo "-- OUTPUT TAIL START ($TEST.cooja_log) --" >> $LOG
    tail -5 $TEST.cooja_log >> $LOG
    echo "-- OUTPUT TAIL END --" >> $LOG
    echo >> $LOG
  else
    echo "OK" >> $LOG
  fi
  echo >> $LOG
fi

if [ $OK == 0 ]; then
  echo ">>>>>>> Finished test: $TEST FAILED <<<<<<<<"
else
  echo ">>>>>>> Finished test: $TEST OK <<<<<<<<"
fi
