From: Peter Amstutz Date: Wed, 27 Mar 2019 13:21:11 +0000 (-0400) Subject: Merge branch 'master' into 14669-java-sdk-v2 X-Git-Tag: 1.4.0~55^2~14^2 X-Git-Url: https://git.arvados.org/arvados.git/commitdiff_plain/e030e175bf4093eb7cdecd9c534548ad2b9a2b05 Merge branch 'master' into 14669-java-sdk-v2 Arvados-DCO-1.1-Signed-off-by: Peter Amstutz --- e030e175bf4093eb7cdecd9c534548ad2b9a2b05 diff --cc build/run-tests.sh index bfa26ec327,f2c7a3e867..a4596bd236 --- a/build/run-tests.sh +++ b/build/run-tests.sh @@@ -119,9 -122,9 +122,10 @@@ sdk/go/stat sdk/go/crunchrunner sdk/cwl sdk/R +sdk/java-v2 tools/sync-groups tools/crunchstat-summary + tools/crunchstat-summary:py3 tools/keep-exercise tools/keep-rsync tools/keep-block-check @@@ -1033,14 -1025,8 +1026,12 @@@ test_sdk/cli() && mkdir -p /tmp/keep \ && KEEP_LOCAL_STORE=/tmp/keep bundle exec rake test TESTOPTS=-v ${testargs[sdk/cli]} } - do_test sdk/cli cli - test_java_v2_sdk() { ++test_sdk/java-v2() { + cd "$WORKSPACE/sdk/java-v2" && ./gradlew test +} - do_test sdk/java-v2 java_v2_sdk + - test_login-sync() { + test_services/login-sync() { cd "$WORKSPACE/services/login-sync" \ && bundle exec rake test TESTOPTS=-v ${testargs[services/login-sync]} } @@@ -1100,6 -1060,180 +1065,181 @@@ test_apps/workbench_profile() cd "$WORKSPACE/apps/workbench" \ && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test:profile ${testargs[apps/workbench_profile]} } - do_test apps/workbench_profile workbench_profile + install_deps() { + # Install parts needed by test suites + do_install env + do_install cmd/arvados-server go + do_install sdk/cli + do_install sdk/perl + do_install sdk/python pip + do_install sdk/ruby + do_install services/api + do_install services/arv-git-httpd go + do_install services/keepproxy go + do_install services/keepstore go + do_install services/keep-web go + do_install services/ws go + } + + install_all() { + do_install env + do_install doc + do_install sdk/ruby + do_install sdk/R + do_install sdk/perl + do_install sdk/cli + do_install services/login-sync + for p in "${pythonstuff[@]}" + do + dir=${p%:py3} + if [[ ${dir} = ${p} ]]; then + if [[ -z ${skip[python2]} ]]; then + do_install ${dir} pip + fi + elif [[ -n ${PYTHON3} ]]; then + if [[ -z ${skip[python3]} ]]; then + do_install ${dir} pip "$VENV3DIR/bin/" + fi + fi + done + do_install services/api + for g in "${gostuff[@]}" + do + do_install "$g" go + done + do_install apps/workbench + } + + test_all() { + stop_services + do_test services/api + + # Shortcut for when we're only running apiserver tests. This saves a bit of time, + # because we don't need to start up the api server for subsequent tests. + if [ ! -z "$only" ] && [ "$only" == "services/api" ]; then + rotate_logfile "$WORKSPACE/services/api/log/" "test.log" + exit_cleanly + fi + + do_test doc + do_test sdk/ruby + do_test sdk/R + do_test sdk/cli + do_test services/login-sync ++ do_test sdk/java-v2 + do_test services/nodemanager_integration + for p in "${pythonstuff[@]}" + do + dir=${p%:py3} + if [[ ${dir} = ${p} ]]; then + if [[ -z ${skip[python2]} ]]; then + do_test ${dir} pip + fi + elif [[ -n ${PYTHON3} ]]; then + if [[ -z ${skip[python3]} ]]; then + do_test ${dir} pip "$VENV3DIR/bin/" + fi + fi + done + + for g in "${gostuff[@]}" + do + do_test "$g" go + done + do_test apps/workbench_units + do_test apps/workbench_functionals + do_test apps/workbench_integration + do_test apps/workbench_benchmark + do_test apps/workbench_profile + } + + help_interactive() { + echo "== Interactive commands:" + echo "TARGET (short for 'test DIR')" + echo "test TARGET" + echo "test TARGET:py3 (test with python3)" + echo "test TARGET -check.vv (pass arguments to test)" + echo "install TARGET" + echo "install env (go/python libs)" + echo "install deps (go/python libs + arvados components needed for integration tests)" + echo "reset (...services used by integration tests)" + echo "exit" + echo "== Test targets:" + echo "${!testfuncargs[@]}" | tr ' ' '\n' | sort | column + } + + initialize + + declare -A testfuncargs=() + for g in "${gostuff[@]}"; do + testfuncargs[$g]="$g go" + done + for p in "${pythonstuff[@]}"; do + dir=${p%:py3} + if [[ ${dir} = ${p} ]]; then + testfuncargs[$p]="$dir pip $VENVDIR/bin/" + else + testfuncargs[$p]="$dir pip $VENV3DIR/bin/" + fi + done + + if [[ -z ${interactive} ]]; then + install_all + test_all + else + skip=() + only=() + only_install=() + if [[ -e "$VENVDIR/bin/activate" ]]; then stop_services; fi + setnextcmd() { + if [[ "$nextcmd" != "install deps" ]]; then + : + elif [[ -e "$VENVDIR/bin/activate" ]]; then + nextcmd="test lib/cmd" + else + nextcmd="install deps" + fi + } + echo + help_interactive + nextcmd="install deps" + setnextcmd + while read -p 'What next? ' -e -i "${nextcmd}" nextcmd; do + read verb target opts <<<"${nextcmd}" + case "${verb}" in + "" | "help") + help_interactive + ;; + "exit" | "quit") + exit_cleanly + ;; + "reset") + stop_services + ;; + *) + target="${target%/}" + testargs["$target"]="${opts}" + case "$target" in + all | deps) + ${verb}_${target} + ;; + *) + tt="${testfuncargs[${target}]}" + tt="${tt:-$target}" + do_$verb $tt + ;; + esac + ;; + esac + if [[ ${#successes[@]} -gt 0 || ${#failures[@]} -gt 0 ]]; then + report_outcomes + successes=() + failures=() + fi + cd "$WORKSPACE" + setnextcmd + done + echo + fi exit_cleanly