72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/bash
 | |
| 
 | |
| # TODO(davido): Figure out what to do if running alone and not invoked from bazel
 | |
| # $1 is equal to the $(JAVABASE)/bin/java make variable
 | |
| JAVA=$1
 | |
| 
 | |
| # Checks whether or not the $1 is starting with a slash: '/' and thus considered to be
 | |
| # an absolute path. If it is, then it is left as is, if it isn't then "$PWD/ is prepended
 | |
| # (in sh_test case it is relative and thus the runfiles directory is prepended).
 | |
| [[ "$JAVA" =~ ^(/|[^/]+$) ]] || JAVA="$PWD/$JAVA"
 | |
| 
 | |
| TESTS="t1 t2 t3"
 | |
| 
 | |
| # Note that both t1.pl and t2.pl test code in rules.pl.
 | |
| # Unit tests are usually longer than the tested code.
 | |
| # So it is common to test one source file with multiple
 | |
| # unit test files.
 | |
| 
 | |
| LF=$'\n'
 | |
| PASS=""
 | |
| FAIL=""
 | |
| 
 | |
| echo "#### TEST_SRCDIR = ${TEST_SRCDIR}"
 | |
| 
 | |
| if [ "${TEST_SRCDIR}" == "" ]; then
 | |
|   # Assume running alone
 | |
|   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
 | |
| 
 | |
|   # Unit tests do not need to define clauses in packages.
 | |
|   # Use one prolog-shell per unit test, to avoid name collision.
 | |
|   echo "### Running test ${T}.pl"
 | |
|   echo "[$T]." | "${JAVA}" -jar ${GERRIT_WAR} prolog-shell -q -s load.pl
 | |
| 
 | |
|   if [ "x$?" != "x0" ]; then
 | |
|     echo "### Test ${T}.pl failed."
 | |
|     FAIL="${FAIL}${LF}FAIL: Test ${T}.pl"
 | |
|   else
 | |
|     PASS="${PASS}${LF}PASS: Test ${T}.pl"
 | |
|   fi
 | |
| 
 | |
|   popd
 | |
| 
 | |
|   # java -jar ../../bazel-bin/gerrit.war prolog-shell -s $T < /dev/null
 | |
|   # Calling prolog-shell with -s flag works for small files,
 | |
|   # but got run-time exception with t3.pl.
 | |
|   #   com.googlecode.prolog_cafe.exceptions.ReductionLimitException:
 | |
|   #   exceeded reduction limit of 1048576
 | |
| done
 | |
| 
 | |
| echo "$PASS"
 | |
| 
 | |
| if [ "$FAIL" != "" ]; then
 | |
|   echo "$FAIL"
 | |
|   exit 1
 | |
| fi
 | 
