blob: 04a86bceb18e0ebab7ba8daecb934b07fb3fdc7f [file] [log] [blame]
Chris Lattner0f342da2002-02-01 04:24:47 +00001#!/bin/sh
2#
3# TestRunner.sh - This script is used to run arbitrary unit tests. Unit
4# tests must contain the command used to run them in the input file, starting
5# immediately after a "RUN:" string.
6#
7# This runner recognizes and replaces the following strings in the command:
Chris Lattner9600e8d2003-05-14 18:39:57 +00008#
9# %s - Replaced with the input name of the program, or the program to
10# execute, as appropriate.
Reid Spencer68e1b242006-11-02 03:37:39 +000011# %llvmgcc - llvm-gcc command
12# %llvmgxx - llvm-g++ command
13# %prcontext - prcontext.tcl script
Chris Lattner0f342da2002-02-01 04:24:47 +000014#
Reid Spencerb9dbd5b2007-04-15 06:47:49 +000015TESTFILE=$1
16if test `dirname $TESTFILE` == . ; then
17 TESTPATH=`pwd`
18 SUBDIR=""
19 while test `basename $TESTPATH` != "test" -a ! -z "$TESTPATH" ; do
20 tmp=`basename $TESTPATH`
21 SUBDIR="$tmp/$SUBDIR"
22 TESTPATH=`dirname $TESTPATH`
23 done
24 if test -d "$TESTPATH" ; then
25 cd $TESTPATH
26 make check-one TESTONE="$SUBDIR$TESTFILE"
27 else
28 echo "Can't find llvm/test directory in " `pwd`
29 fi
30else
31 make check-one TESTONE=$TESTFILE
32fi