Blame runtest

Packit 62fe53
#!/bin/sh
Packit 62fe53
#
Packit 62fe53
# Copyright (C) 1992-2016 Free Software Foundation, Inc.
Packit 62fe53
#
Packit 62fe53
# This file is part of DejaGnu.
Packit 62fe53
#
Packit 62fe53
# DejaGnu is free software; you can redistribute it and/or modify it
Packit 62fe53
# under the terms of the GNU General Public License as published by
Packit 62fe53
# the Free Software Foundation; either version 3 of the License, or
Packit 62fe53
# (at your option) any later version.
Packit 62fe53
#
Packit 62fe53
# DejaGnu is distributed in the hope that it will be useful, but
Packit 62fe53
# WITHOUT ANY WARRANTY; without even the implied warranty of
Packit 62fe53
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit 62fe53
# General Public License for more details.
Packit 62fe53
#
Packit 62fe53
# You should have received a copy of the GNU General Public License
Packit 62fe53
# along with DejaGnu; if not, write to the Free Software Foundation,
Packit 62fe53
# Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
Packit 62fe53
Packit 62fe53
# This script was written by Rob Savoye. The script finds the proper
Packit 62fe53
# expect shell and then starts DejaGnu.
Packit 62fe53
Packit 62fe53
# Get the execution path to this script and the current directory.
Packit 62fe53
Packit 62fe53
mypath=${0-.}
Packit 62fe53
if expr "$mypath" : '.*/.*' > /dev/null
Packit 62fe53
then
Packit 62fe53
    :
Packit 62fe53
else
Packit 62fe53
    IFS="${IFS= 	}"; save_ifs="$IFS"; IFS="${IFS}:"
Packit 62fe53
    for dir in $PATH
Packit 62fe53
    do
Packit 62fe53
	test -z "$dir" && dir=.
Packit 62fe53
	if test -x "$dir/$mypath"
Packit 62fe53
	then
Packit 62fe53
	    mypath="$dir/$mypath"
Packit 62fe53
	    break
Packit 62fe53
	fi
Packit 62fe53
    done
Packit 62fe53
    IFS="$save_ifs"
Packit 62fe53
fi
Packit 62fe53
execpath=$(echo "$mypath" | sed -e 's@/[^/]*$@@')
Packit 62fe53
Packit 62fe53
# Get the name by which runtest was invoked and extract the config
Packit 62fe53
# triplet.
Packit 62fe53
Packit 62fe53
runtest=$(echo "$mypath" | sed -e 's@^.*/@@')
Packit 62fe53
target=$(echo "$runtest" | sed -e 's/-runtest$//')
Packit 62fe53
if [ "$target" != runtest ] ; then
Packit 62fe53
    target="--target ${target}"
Packit 62fe53
else
Packit 62fe53
    target=""
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
# Find the right expect binary to use. If a variable EXPECT exists, it
Packit 62fe53
# takes precedence over all other tests. Otherwise look for a freshly
Packit 62fe53
# built one, and then use one in the path.
Packit 62fe53
Packit 62fe53
if [ -n "$EXPECT" ] ; then
Packit 62fe53
  expectbin="$EXPECT"
Packit 62fe53
else
Packit 62fe53
  if [ -x "$execpath/expect" ] ; then
Packit 62fe53
    expectbin="$execpath/expect"
Packit 62fe53
  else
Packit 62fe53
    expectbin=expect
Packit 62fe53
  fi
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
# Just to be safe ..
Packit 62fe53
Packit 62fe53
if [ -z "$expectbin" ]; then
Packit 62fe53
  echo "ERROR: No expect shell found"
Packit 62fe53
  exit 1
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
# This wrapper script will set up run-time library search PATHs.
Packit 62fe53
Packit 62fe53
if [ -x "$expectbin-bld.sh" ]; then
Packit 62fe53
  expectbin="${CONFIG_SHELL-/bin/sh} $expectbin-bld.sh"
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
# Extract a few options from the option list.
Packit 62fe53
Packit 62fe53
verbose=0
Packit 62fe53
debug=""
Packit 62fe53
for a in "$@" ; do
Packit 62fe53
  case $a in
Packit 62fe53
      -v|--v|-verb*|--verb*)    verbose=$((verbose + 1)) ;;
Packit 62fe53
      -D0|--D0)       debug="-D 0" ;;
Packit 62fe53
      -D1|--D1)       debug="-D 1" ;;
Packit 62fe53
  esac
Packit 62fe53
done
Packit 62fe53
Packit 62fe53
if expr "$verbose" \> 0 > /dev/null ; then
Packit 62fe53
  echo Expect binary is "$expectbin"
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
# Find runtest.exp. First we look in its installed location,
Packit 62fe53
# otherwise start if from the source tree.
Packit 62fe53
#
Packit 62fe53
# runtest.exp is found in @datadir@ (set by configure), but $execpath
Packit 62fe53
# is @bindir@.  We're assuming that:
Packit 62fe53
#
Packit 62fe53
#   @datadir@ == @bindir@/../share
Packit 62fe53
#   or
Packit 62fe53
#   @datadir@ == @bindir@/../../share
Packit 62fe53
#
Packit 62fe53
# .. which is a very weak assumption
Packit 62fe53
Packit 62fe53
for i in \
Packit 62fe53
    $(echo "$execpath" | sed  -e 's@/[^/]*$@/share/dejagnu@') \
Packit 62fe53
    $(echo "$execpath" | sed  -e 's@/[^/]*/[^/]*$@/share/dejagnu@') \
Packit 62fe53
    "$execpath" \
Packit 62fe53
    /usr/share/dejagnu \
Packit 62fe53
    /usr/local/share/dejagnu ; do
Packit 62fe53
    if expr "$verbose" \> 1 > /dev/null ; then
Packit 62fe53
	echo Looking for "$i"/runtest.exp.
Packit 62fe53
    fi
Packit 62fe53
    if [ -f "$i/runtest.exp" ] ; then
Packit 62fe53
	runpath="$i"
Packit 62fe53
	if expr "$verbose" \> 0 > /dev/null ; then
Packit 62fe53
	    echo Using "$i"/runtest.exp as main test driver
Packit 62fe53
	fi
Packit 62fe53
	break
Packit 62fe53
    fi
Packit 62fe53
done
Packit 62fe53
Packit 62fe53
# Check for an environment variable.
Packit 62fe53
Packit 62fe53
if [ -n "$DEJAGNULIBS" ] ; then
Packit 62fe53
    runpath="$DEJAGNULIBS"
Packit 62fe53
    if expr "$verbose" \> 0 > /dev/null ; then
Packit 62fe53
	echo Using "$DEJAGNULIBS"/runtest.exp as main test driver
Packit 62fe53
    fi
Packit 62fe53
fi
Packit 62fe53
if [ -z "$runpath" ] ; then
Packit 62fe53
    echo "ERROR: runtest.exp does not exist"
Packit 62fe53
    exit 1
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
if ! type "$expectbin" > /dev/null 2> /dev/null ; then
Packit 62fe53
    echo "ERROR: unable to find expect in the PATH"
Packit 62fe53
    exit 1
Packit 62fe53
fi
Packit 62fe53
Packit 62fe53
exec "$expectbin" $debug -- "$runpath"/runtest.exp $target ${1+"$@"}