summaryrefslogtreecommitdiff
path: root/test/TestRunner.sh
diff options
context:
space:
mode:
authorDaniel Dunbar <daniel@zuster.org>2009-09-20 22:00:23 +0000
committerDaniel Dunbar <daniel@zuster.org>2009-09-20 22:00:23 +0000
commit73eed6a18f871f2befddbaaf7f56c0d10ca4df27 (patch)
tree1334fae36b25e170e041f4e35e6b536cf34ba0e8 /test/TestRunner.sh
parentd9c2e782817be2fa3a9ece0e8609445853fe5879 (diff)
downloadclang-73eed6a18f871f2befddbaaf7f56c0d10ca4df27.tar.gz
Switch TestRunner.sh to just use 'lit'.
- Does people use this? git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@82406 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/TestRunner.sh')
-rwxr-xr-xtest/TestRunner.sh135
1 files changed, 8 insertions, 127 deletions
diff --git a/test/TestRunner.sh b/test/TestRunner.sh
index 58d9daa14f..f96d3d552d 100755
--- a/test/TestRunner.sh
+++ b/test/TestRunner.sh
@@ -1,132 +1,13 @@
#!/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.
-#
-# This runner recognizes and replaces the following strings in the command:
-#
-# %s - Replaced with the input name of the program, or the program to
-# execute, as appropriate.
-# %S - Replaced with the directory where the input file resides
-# %t - temporary file name (derived from testcase name)
-#
-
-FILENAME=$1
-TESTNAME=$1
-SUBST=$1
-FILEDIR=`dirname $TESTNAME`
-
-OUTPUT=Output/$1.out
-
-# create the output directory if it does not already exist
-mkdir -p `dirname $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
-fi
-
-ulimit -t 40
-
-# Verify the script contains a run line.
-grep -q 'RUN:' $FILENAME || (
- echo "******************** TEST '$TESTNAME' HAS NO RUN LINE! ********************"
- exit 1
-)
-
-# Run under valgrind if the VG environment variable has been set.
-CLANG=$CLANG
-if [ ! -n "$CLANG" ]; then
- CLANG="clang"
-fi
-
-# Resolve the path, and Make sure $CLANG actually exists; otherwise
-# ensuing failures are non-obvious.
-CLANG=$(which "$CLANG")
-if [ -z $CLANG ]; then
- echo "Couldn't find 'clang' program, try setting CLANG in your environment"
- exit 1
-fi
-
-if [ -n "$VG" ]; then
- rm -f $OUTPUT.vg
- CLANG="valgrind --leak-check=full --quiet --log-file=$OUTPUT.vg $CLANG"
-fi
-
-# Assuming $CLANG is correct, use it to derive clang-cc. We expect to
-# be looking in a build directory, so just add '-cc'.
-CLANGCC=$CLANGCC
-if [ ! -n "$CLANGCC" ]; then
- CLANGCC="$CLANG-cc"
-fi
-
-# Try to sanity check $CLANGCC too
-CLANGCC=$(which "$CLANGCC")
-# If that failed, ask clang.
-if [ -z "$CLANGCC" ]; then
- CLANGCC=$($CLANG -print-prog-name=clang-cc)
-fi
-if [ -z "$CLANGCC" ]; then
- echo "Couldn't find 'clang-cc' program, make sure clang is found in your build directory"
- exit 1
-fi
-
-SCRIPT=$OUTPUT.script
-TEMPOUTPUT=$OUTPUT.tmp
-grep 'RUN:' $FILENAME | \
- sed -e "s|^.*RUN:\(.*\)$|\1|g" \
- -e "s| clang | $CLANG |g" \
- -e "s| clang-cc | $CLANGCC |g" \
- -e "s|%s|$SUBST|g" \
- -e "s|%S|$FILEDIR|g" \
- -e "s|%t|$TEMPOUTPUT|g" > $SCRIPT
-
-IS_XFAIL=0
-if (grep -q XFAIL $FILENAME); then
- IS_XFAIL=1
- printf "XFAILED '$TESTNAME': "
- grep XFAIL $FILENAME
-fi
-
-/bin/sh $SCRIPT > $OUTPUT 2>&1
-SCRIPT_STATUS=$?
+# TestRunner.sh - Backward compatible utility for testing an individual file.
-if [ -n "$VG" ]; then
- [ ! -s $OUTPUT.vg ]
- VG_STATUS=$?
-else
- VG_STATUS=0
-fi
+# Find where this script is.
+Dir=$(dirname $(which $0))
+AbsDir=$(cd $Dir; pwd)
-if [ $IS_XFAIL -ne 0 ]; then
- if [ $SCRIPT_STATUS -ne 0 ]; then
- SCRIPT_STATUS=0
- else
- SCRIPT_STATUS=1
- fi
-fi
+# Find 'lit', assuming standard layout.
+lit=$AbsDir/../../../utils/lit/lit.py
-if [ $SCRIPT_STATUS -ne 0 -o $VG_STATUS -ne 0 ]; then
- echo "******************** TEST '$TESTNAME' FAILED! ********************"
- echo "Command: "
- cat $SCRIPT
- if [ $SCRIPT_STATUS -eq 0 ]; then
- echo "Output:"
- elif [ $IS_XFAIL -ne 0 ]; then
- echo "Incorrect Output (Expected Failure):"
- else
- echo "Incorrect Output:"
- fi
- cat $OUTPUT
- if [ $VG_STATUS -ne 0 ]; then
- echo "Valgrind Output:"
- cat $OUTPUT.vg
- fi
- echo "******************** TEST '$TESTNAME' FAILED! ********************"
- exit 1
-fi
+# Dispatch to lit.
+$lit "$@"