blob: ea2d515d3138ef9e4291566bd1a16eaa877b4288 [file] [edit]
#!/bin/bash
set -u
# TODO(davido): Figure out what to do if running alone and not invoked from bazel.
# $1 may be either $(JAVA) or $(JAVABASE)
JAVA="$1"
if [[ -n "${TEST_SRCDIR:-}" ]]; then
case "$JAVA" in
external/*)
JAVA="${TEST_SRCDIR}/${JAVA#external/}"
;;
/*)
if [[ "$JAVA" == "${TEST_SRCDIR}/_main/external/"* ]]; then
JAVA="${TEST_SRCDIR}/${JAVA#"${TEST_SRCDIR}/_main/external/"}"
fi
;;
*)
[[ "$JAVA" == */* ]] && JAVA="$PWD/$JAVA"
;;
esac
else
[[ "$JAVA" =~ ^(/|[^/]+$) ]] || JAVA="$PWD/$JAVA"
fi
# If the resolved path is a Java home directory, use its bin/java
if [[ -d "$JAVA" ]]; then
JAVA="$JAVA/bin/java"
fi
TESTS="t1 t2 t3"
LF=$'\n'
PASS=""
FAIL=""
if [[ -z "${TEST_SRCDIR:-}" ]]; then
# Assume running standalone.
GERRIT_WAR="../../bazel-bin/gerrit.war"
SRCDIR="."
else
# Assume running from bazel.
GERRIT_WAR="$(pwd)/gerrit.war"
SRCDIR="prologtests/examples"
fi
# Default GERRIT_TMP is ~/.gerritcodereview/tmp,
# which won't be writable in a bazel test sandbox.
/bin/mkdir -p /tmp/gerrit
export GERRIT_TMP=/tmp/gerrit
for T in $TESTS; do
pushd "$SRCDIR" >/dev/null
echo "### Running test ${T}.pl"
echo "[$T]." | "$JAVA" -jar "$GERRIT_WAR" prolog-shell -q -s load.pl
RC=$?
if [[ "$RC" != "0" ]]; then
echo "### Test ${T}.pl failed."
FAIL="${FAIL}${LF}FAIL: Test ${T}.pl"
else
PASS="${PASS}${LF}PASS: Test ${T}.pl"
fi
popd >/dev/null
done
echo "$PASS"
if [[ -n "$FAIL" ]]; then
echo "$FAIL"
exit 1
fi