aboutsummaryrefslogtreecommitdiff
path: root/runtest
diff options
context:
space:
mode:
Diffstat (limited to 'runtest')
-rwxr-xr-xruntest122
1 files changed, 122 insertions, 0 deletions
diff --git a/runtest b/runtest
new file mode 100755
index 0000000..7c4fe7d
--- /dev/null
+++ b/runtest
@@ -0,0 +1,122 @@
+#!/bin/sh
+#
+# runtest -- basically all this script does is find the proper expect
+# shell and then run DejaGnu.
+#
+# Written by Rob Savoye <rob@cygnus.com>
+#
+
+#
+# Get the execution path to this script and the current directory.
+#
+mypath=${0-.}
+if expr ${mypath} : '.*/.*' > /dev/null
+then
+ :
+else
+ IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:"
+ for dir in $PATH
+ do
+ test -z "$dir" && dir=.
+ if test -x $dir/$mypath
+ then
+ mypath=$dir/$mypath
+ break
+ fi
+ done
+ IFS="$save_ifs"
+fi
+execpath=`echo ${mypath} | sed -e 's@/[^/]*$@@'`
+# rootme=`pwd`
+
+#
+# get the name by which runtest was invoked and extract the config triplet
+#
+runtest=`echo ${mypath} | sed -e 's@^.*/@@'`
+target=`echo $runtest | sed -e 's/-runtest$//'`
+if [ "$target" != runtest ] ; then
+ target="--target ${target}"
+else
+ target=""
+fi
+
+#
+# Find the right expect binary to use. If a variable EXPECT exists,
+# it takes precedence over all other tests. Otherwise look for a freshly
+# built one, and then use one in the path.
+#
+if [ x"$EXPECT" != x ] ; then
+ expectbin=$EXPECT
+else
+ if [ -x "$execpath/expect" ] ; then
+ expectbin=$execpath/expect
+ else
+ expectbin=expect
+ fi
+fi
+
+# just to be safe...
+if [ -z "$expectbin" ]; then
+ echo "ERROR: No expect shell found"
+ exit 1
+fi
+
+# This wrapper script will set up run-time library search PATHs
+if [ -x "$expectbin-bld.sh" ]; then
+ expectbin="${CONFIG_SHELL-/bin/sh} $expectbin-bld.sh"
+fi
+
+#
+# Extract a few options from the option list.
+#
+verbose=0
+debug=""
+for a in "$@" ; do
+ case $a in
+ -v|--v|-verb*|--verb*) verbose=`expr $verbose + 1`;;
+ -D0|--D0) debug="-D 0" ;;
+ -D1|--D1) debug="-D 1" ;;
+ esac
+done
+
+if expr $verbose \> 0 > /dev/null ; then
+ echo Expect binary is $expectbin
+fi
+
+#
+# find runtest.exp. First we look in it's installed location, otherwise
+# start if from the source tree.
+#
+# runtest.exp is found in (autoconf-configure-set) @datadir@, but
+# $execpath is @bindir@. We're assuming that
+#
+# @datadir@ == @bindir@/../share
+# or
+# @datadir@ == @bindir@/../../share
+#
+# which is a very weak assumption
+#
+for i in `echo ${execpath} | sed -e 's@/[^/]*$@/share/dejagnu@'` `echo ${execpath} | sed -e 's@/[^/]*/[^/]*$@/share/dejagnu@'` $execpath ; do
+ if expr $verbose \> 1 > /dev/null ; then
+ echo Looking for $i/runtest.exp.
+ fi
+ if [ -f $i/runtest.exp ] ; then
+ runpath=$i
+ if expr $verbose \> 0 > /dev/null ; then
+ echo Using $i/runtest.exp as main test driver
+ fi
+ fi
+done
+# check for an environment variable
+if [ x"$DEJAGNULIBS" != x ] ; then
+ runpath=$DEJAGNULIBS
+ if expr $verbose \> 0 > /dev/null ; then
+ echo Using $DEJAGNULIBS/runtest.exp as main test driver
+ fi
+fi
+if [ x"$runpath" = x ] ; then
+ echo "ERROR: runtest.exp does not exist."
+ exit 1
+fi
+
+exec $expectbin $debug -- $runpath/runtest.exp $target ${1+"$@"}