#! /bin/sh

rc=0
if [ x"$1" = x"--verbose" ];
then
  for i in ${TESTBLOB}
  do
    if [ -x "$i" ]; then
      echo '#' $i
      $i > test.log 2>&1
      while read LINE
      do
        echo "$LINE"
      done < test.log
      if [ $? -ne 0 ]; then
        rc=1
      fi
      rm test.log
    else
      echo "# Skipping $(basename $i) execute bit not set"
    fi
  done
  exit $rc
else
  date > all.log

  # Perl is used here to get the time in seconds
  # because 'date +%s' isn't supported on Solaris.
  STARTEPOCH=`perl -e 'print time'`

  VRAMSTEG=`which vramsteg`
  BAR=0
  if [ -x "$VRAMSTEG" ]; then
    BAR=1
    COUNT=0
    TOTAL=`ls ${TESTBLOB} | wc -l`
    START=`$VRAMSTEG --now`
  fi

  for i in ${TESTBLOB}
  do
    if [ -x "$i" ]; then
      echo '#' $i >>all.log

      $i >> all.log 2>&1
      if [ $? -ne 0 ]; then
        rc=1
      fi
    else
      echo "# Skipping $(basename $i) execute bit not set" >> all.log 2>&1
    fi

    if [ $BAR -eq 1 ]; then
      $VRAMSTEG --label 'All tests' --min 0 --max $TOTAL --current $COUNT --percentage --start $START --estimate
      COUNT=`expr $COUNT + 1`
    fi
  done

  if [ $BAR -eq 1 ]; then
    $VRAMSTEG --remove
  fi

  date >> all.log

  ENDEPOCH=`perl -e 'print time'`
  RUNTIME=`expr $ENDEPOCH - $STARTEPOCH`

  printf "Pass:    %5d\n" `grep -c '^ok' all.log`
  printf "Fail:    %5d\n" `grep -c '^not' all.log`
  printf "Skipped: %5d\n" `grep -c '^skip' all.log`
  printf "Runtime: %5d seconds\n" $RUNTIME
  exit $rc
fi
