| #!/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 |