summaryrefslogtreecommitdiff
path: root/test/TestRunner.sh
blob: 04a86bceb18e0ebab7ba8daecb934b07fb3fdc7f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#!/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.
#     %llvmgcc - llvm-gcc command
#     %llvmgxx - llvm-g++ command
#     %prcontext - prcontext.tcl script
#
TESTFILE=$1
if test `dirname $TESTFILE` == . ; then
  TESTPATH=`pwd`
  SUBDIR=""
  while test `basename $TESTPATH` != "test" -a ! -z "$TESTPATH" ; do
    tmp=`basename $TESTPATH`
    SUBDIR="$tmp/$SUBDIR"
    TESTPATH=`dirname $TESTPATH`
  done
  if test -d "$TESTPATH" ; then
    cd $TESTPATH
    make check-one TESTONE="$SUBDIR$TESTFILE"
  else
    echo "Can't find llvm/test directory in " `pwd`
  fi
else
  make check-one TESTONE=$TESTFILE
fi