Remove extra lines
[oota-llvm.git] / test / TestRunner.sh
index e84f56bd00c0167297717064240fa99be8956d3b..4f04d81aac64807458161d477465195ef6669571 100755 (executable)
@@ -1,49 +1,36 @@
 #!/bin/sh
 #
-#  TestRunner.sh - This script is used to run arbitrary unit tests.  Unit
-#  tests must contain the command used to run them in the input file, starting
-#  immediately after a "RUN:" string.
+#  TestRunner.sh - This script is used to run the deja-gnu tests exactly like
+#  deja-gnu does, by executing the Tcl script specified in the test case's 
+#  RUN: lines. This is made possible by a simple make target supported by the
+#  test/Makefile. All this script does is invoke that make target. 
 #
-#  This runner recognizes and replaces the following strings in the command:
+#  Usage:
+#     TestRunner.sh {script_names}
 #
-#     %s - Replaced with the input name of the program, or the program to
-#          execute, as appropriate.
-#     %llvmgcc - llvm-gcc command
-#     %llvmgxx - llvm-g++ command
-#     %prcontext - prcontext.tcl script
+#     This script is typically used by cd'ing to a test directory and then
+#     running TestRunner.sh with a list of test file names you want to run.
 #
-
-FILENAME=$1
-TESTNAME=$1
-SUBST=$1
-FILENAME_ONLY=`basename $1`
-OUTPUT=Output/$FILENAME_ONLY.out
-
-# create the output directory if it does not already exist
-mkdir Output > /dev/null 2>&1
-
-if test $# != 1; then
-  # If more than one parameter is passed in, there must be three parameters:
-  # The filename to read from (already processed), the command used to execute,
-  # and the file to output to.
-  SUBST=$2
-  OUTPUT=$3
-  TESTNAME=$3
+TESTPATH=`pwd`
+SUBDIR=""
+if test `dirname $1` = "." ; then
+  while test `basename $TESTPATH` != "test" -a ! -z "$TESTPATH" ; do
+    tmp=`basename $TESTPATH`
+    SUBDIR="$tmp/$SUBDIR"
+    TESTPATH=`dirname $TESTPATH`
+  done
 fi
 
-ulimit -t 40
-
-SCRIPT=$OUTPUT.script
-grep 'RUN:' $FILENAME | sed "s|^.*RUN:\(.*\)$|\1|g;s|%s|$SUBST|g;s|%llvmgcc|llvm-gcc -emit-llvm|g;s|%llvmgxx|llvm-g++ -emit-llvm|g;s|%prcontext|prcontext.tcl|g" > $SCRIPT
-
-
-/bin/sh $SCRIPT > $OUTPUT 2>&1 || (
-  echo "******************** TEST '$TESTNAME' FAILED! ********************"
-  echo "Command: "
-  cat $SCRIPT
-  echo "Output:"
-  cat $OUTPUT
-  rm $OUTPUT
-  echo "******************** TEST '$TESTNAME' FAILED! ********************"
-)
-
+for TESTFILE in "$@" ; do 
+  if test `dirname $TESTFILE` = . ; then
+    if test -d "$TESTPATH" ; then
+      cd $TESTPATH
+      make check-one TESTONE="$SUBDIR$TESTFILE"
+      cd $PWD
+    else
+      echo "Can't find llvm/test directory in " `pwd`
+    fi
+  else
+    make check-one TESTONE=$TESTFILE
+  fi
+done