blob: 2144feb85f642446de2e2951ba9d871186b04e80 [file] [log] [blame]
#!/bin/sh
#
# Invoke the 'gotest' script to run tests for a given Go package. This
# is expected to be run from the subdirectory within the libgo build
# corresponding to the package in question. Command line should look
# like:
#
# checkpackage.sh \
# PACKAGE <value> \
# FILES file1 file2 ... fileN \
# GOOS <value> \
# GOARCH <value> \
# GC <arg> ... \
# GOLIBS <arg> ... \
# BASEDIR <dir> \
# BINDIR <dir> \
#
# Arguments to gotest (ex: --trace --keep) can be passed via the
# GOTESTFLAGS environment variable.
#
CUR=""
for ARG in $*
do
case "$ARG" in
ADDTOPATH) CUR=ADDTOPATH ;;
BASEDIR) CUR=BASEDIR ;;
BINDIR) CUR=BINDIR ;;
FILES) CUR=FILES ;;
GC) CUR=GC ;;
GOARCH) CUR=GOARCH ;;
GOLIBS) CUR=GOLIBS ;;
GOOS) CUR=GOOS ;;
PACKAGE) CUR=PACKAGE ;;
*) if [ -z "${CUR}" ]; then
echo "unexpected stray argument $ARG"
exit 1
fi
eval "CV=\$$CUR"
if [ -z "$CV" ]; then
eval "$CUR=\$ARG"
else
eval "$CUR=\"$CV $ARG\""
fi
;;
esac
done
REQUIRED="GOOS GOARCH GC BASEDIR PACKAGE BINDIR"
for R in $REQUIRED
do
eval "V=\$$R"
if [ -z "$V" ]; then
echo "error: no setting for \"$R\" supplied on command line"
exit 1
fi
done
export GC
export GOLIBS
export LD_LIBRARY_PATH="${BINDIR}:${LD_LIBARY_PATH}"
if [ ! -z "${ADDTOPATH}" ]; then
export PATH=${ADDTOPATH}:${PATH}
fi
#
exec ${SHELL} ${BASEDIR}/testsuite/gotest --goarch=${GOARCH} --goos=${GOOS} --basedir=${BASEDIR} --srcdir=${BASEDIR}/go/${PACKAGE} --pkgpath=${PACKAGE} --pkgfiles="${FILES}" ${GOTESTFLAGS}