X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/18fecbe7ae84981626f8532c3f3ac730a50ce02a..14b14c8a57ef2e2563da56416371e5e3dc8f2067:/build/run-tests.sh diff --git a/build/run-tests.sh b/build/run-tests.sh index 7328fad45e..ff6ead0fac 100755 --- a/build/run-tests.sh +++ b/build/run-tests.sh @@ -35,7 +35,7 @@ Options: --short Skip (or scale down) some slow tests. --interactive Set up, then prompt for test/install steps to perform. WORKSPACE=path Arvados source tree to test. -CONFIGSRC=path Dir with config.yml file containing PostgreSQL section for use by tests. (required) +CONFIGSRC=path Dir with config.yml file containing PostgreSQL section for use by tests. services/api_test="TEST=test/functional/arvados/v1/collections_controller_test.rb" Restrict apiserver tests to the given file sdk/python_test="--test-suite tests.test_keep_locator" @@ -127,7 +127,7 @@ sdk/go/blockdigest sdk/go/asyncbuf sdk/go/stats sdk/go/crunchrunner -sdk/cwl +sdk/cwl:py3 sdk/R sdk/java-v2 tools/sync-groups @@ -197,10 +197,8 @@ sanity_checks() { [[ -n "${skip[sanity]}" ]] && return 0 ( [[ -n "$WORKSPACE" ]] && [[ -d "$WORKSPACE/services" ]] ) \ || fatal "WORKSPACE environment variable not set to a source directory (see: $0 --help)" - [[ -n "$CONFIGSRC" ]] \ - || fatal "CONFIGSRC environment not set (see: $0 --help)" - [[ -s "$CONFIGSRC/config.yml" ]] \ - || fatal "'$CONFIGSRC/config.yml' is empty or not found (see: $0 --help)" + [[ -z "$CONFIGSRC" ]] || [[ -s "$CONFIGSRC/config.yml" ]] \ + || fatal "CONFIGSRC is $CONFIGSRC but '$CONFIGSRC/config.yml' is empty or not found (see: $0 --help)" echo Checking dependencies: echo "locale: ${LANG}" [[ "$(locale charmap)" = "UTF-8" ]] \ @@ -262,6 +260,9 @@ sanity_checks() { echo -n 'libpq libpq-fe.h: ' find /usr/include -path '*/postgresql/libpq-fe.h' | egrep --max-count=1 . \ || fatal "No libpq libpq-fe.h. Try: apt-get install libpq-dev" + echo -n 'libpam pam_appl.h: ' + find /usr/include -path '*/security/pam_appl.h' | egrep --max-count=1 . \ + || fatal "No libpam pam_appl.h. Try: apt-get install libpam-dev" echo -n 'postgresql: ' psql --version || fatal "No postgresql. Try: apt-get install postgresql postgresql-client-common" echo -n 'phantomjs: ' @@ -553,8 +554,14 @@ setup_ruby_environment() { bundle="$(gem env gempath | cut -f1 -d:)/bin/bundle" ( export HOME=$GEMHOME - ("$bundle" version | grep -q 2.0.2) \ - || gem install --user bundler -v 2.0.2 + bundlers="$(gem list --details bundler)" + versions=(1.11.0 1.17.3 2.0.2) + for v in ${versions[@]}; do + if ! echo "$bundlers" | fgrep -q "($v)"; then + gem install --user $(for v in ${versions[@]}; do echo bundler:${v}; done) + break + fi + done "$bundle" version | tee /dev/stderr | grep -q 'version 2' ) || fatal 'install bundler' fi @@ -590,6 +597,11 @@ setup_virtualenv() { } initialize() { + # If dependencies like ruby, go, etc. are installed in + # /var/lib/arvados -- presumably by "arvados-server install" -- + # then we want to use those versions, instead of whatever happens + # to be installed in /usr. + PATH="/var/lib/arvados/bin:${PATH}" sanity_checks echo "WORKSPACE=$WORKSPACE" @@ -995,7 +1007,6 @@ pythonstuff=( sdk/pam sdk/python sdk/python:py3 - sdk/cwl sdk/cwl:py3 services/dockercleaner:py3 services/fuse @@ -1057,7 +1068,7 @@ test_sdk/cli() { } test_sdk/java-v2() { - cd "$WORKSPACE/sdk/java-v2" && gradle test + cd "$WORKSPACE/sdk/java-v2" && gradle test ${testargs[sdk/java-v2]} } test_services/login-sync() { @@ -1194,6 +1205,7 @@ help_interactive() { echo "== Interactive commands:" echo "TARGET (short for 'test DIR')" echo "test TARGET" + echo "10 test TARGET (run test 10 times)" echo "test TARGET:py3 (test with python3)" echo "test TARGET -check.vv (pass arguments to test)" echo "install TARGET" @@ -1254,6 +1266,10 @@ else while read -p 'What next? ' -e -i "$nextcmd" nextcmd; do history -s "$nextcmd" history -w + count=1 + if [[ "${nextcmd}" =~ ^[0-9] ]]; then + read count nextcmd <<<"${nextcmd}" + fi read verb target opts <<<"${nextcmd}" target="${target%/}" target="${target/\/:/:}" @@ -1273,10 +1289,14 @@ else ${verb}_${target} ;; *) - testargs["$target"]="${opts}" + argstarget=${target%:py3} + testargs["$argstarget"]="${opts}" tt="${testfuncargs[${target}]}" tt="${tt:-$target}" - do_$verb $tt + while [ $count -gt 0 ]; do + do_$verb $tt + let "count=count-1" + done ;; esac ;;