]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/matita/scripts/do_tests.sh
added homepage URL, now we have one
[helm.git] / helm / matita / scripts / do_tests.sh
index b95ca578cdbababbe0bfd9908e42f962c446b7c9..a195b9cf0ee4ba816e29bbe917e3d2101db7c8de 100755 (executable)
@@ -8,17 +8,27 @@ if [ "$1" = "-no-color" ]; then
   OK="OK"
   FAIL="FAIL"
 fi
+if [ "$1" = "-twice" ]; then
+  shift
+  TWICE=1
+fi
 
 COMPILER=$1
 shift
+CLEANER=$1
+shift
 LOGFILE=$1
 shift
 TODO="$@"
 
-if [ -z "$COMPILER" -o -z "$LOGFILE" -o -z "$TODO" ]; then
+if [ -z "$COMPILER" -o -z "$CLEANER" -o -z "$LOGFILE" -o -z "$TODO" ]; then
   echo
   echo "usage: "
-  echo "  do_tests.sh [-no-color] ./compiler logfile tests.ma ..."
+  echo "  do_tests.sh [-no-color] [-twice] ./compiler ./cleaner logfile tests.ma ..."
+  echo
+  echo "options:  "
+  echo "  -no-color Do not use vt100 colors"
+  echo "  -twice    Run each test twice but show only the second run times"
   echo
   echo "The value of the DO_TESTS_EXTRA evironment variable"
   echo "will be appended to each line."
@@ -28,13 +38,20 @@ fi
 TMP=.__temp.txt
 
 for T in $TODO; do
-  echo -en "$COMPILER\t$T\t"
-  /usr/bin/time -o $TMP -f "%E\t%U\t%S" $COMPILER $T >> $LOGFILE 2>&1
-  if [ $? = 0 ]; then
-    echo -e "$OK\t`cat $TMP`\t$DO_TESTS_EXTRA"
+  printf "$COMPILER\t%-30s   " $T
+  if [ "$TWICE" = "1" ]; then
+    $CLEANER $T 1>/dev/null 2>/dev/null
+    $COMPILER $T 1>/dev/null 2>/dev/null
+  fi
+  $CLEANER $T 1>/dev/null 2>/dev/null
+  /usr/bin/time --quiet -o $TMP -f "%E  %U  %S" $COMPILER $T >> $LOGFILE 2>&1
+  RC=$?;
+  if [ $RC = 0 ]; then
+    printf "$OK\t`cat $TMP`\t$DO_TESTS_EXTRA\n"
+    rm $TMP
   else
-    echo -e "$FAIL\t`cat $TMP`\t$DO_TESTS_EXTRA"
+    printf "$FAIL\t`cat $TMP`\t$DO_TESTS_EXTRA\n";
+    rm $TMP
+    exit $RC
   fi
 done
-
-rm $TMP