X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/5026c691c3b2b402243acd4c2dd936aa7976ba2b..7a430017d745cab4458aa03f620e7925a50b7d06:/build/run-tests.sh diff --git a/build/run-tests.sh b/build/run-tests.sh index 884eda3da1..d22934199f 100755 --- a/build/run-tests.sh +++ b/build/run-tests.sh @@ -26,6 +26,7 @@ Options: You should provide GOPATH, GEMHOME, and VENVDIR options from a previous invocation if you use this option. --only-install Run specific install step +--short Skip (or scale down) some slow tests. WORKSPACE=path Arvados source tree to test. CONFIGSRC=path Dir with api server config files to copy into source tree. (If none given, leave config files alone in source tree.) @@ -80,6 +81,7 @@ sdk/python sdk/ruby sdk/go/arvadosclient sdk/go/keepclient +sdk/go/httpserver sdk/go/manifest sdk/go/blockdigest sdk/go/streamer @@ -105,6 +107,7 @@ PYTHONPATH= GEMHOME= PERLINSTALLBASE= +short= skip_install= temp= temp_preserve= @@ -203,6 +206,9 @@ do --only) only="$1"; skip[$1]=""; shift ;; + --short) + short=1 + ;; --skip-install) skip_install=1 ;; @@ -488,28 +494,29 @@ do_test_once() { # before trying "go test". Otherwise, coverage-reporting # mode makes Go show the wrong line numbers when reporting # compilation errors. + go get -t "git.curoverse.com/arvados.git/$1" || return 1 if [[ -n "${testargs[$1]}" ]] then # "go test -check.vv giturl" doesn't work, but this # does: - cd "$WORKSPACE/$1" && \ - go get -t "git.curoverse.com/arvados.git/$1" && \ - go test ${coverflags[@]} ${testargs[$1]} + cd "$WORKSPACE/$1" && go test ${short:+-short} ${coverflags[@]} ${testargs[$1]} else # The above form gets verbose even when testargs is # empty, so use this form in such cases: - go get -t "git.curoverse.com/arvados.git/$1" && \ - go test ${coverflags[@]} "git.curoverse.com/arvados.git/$1" + go test ${short:+-short} ${coverflags[@]} "git.curoverse.com/arvados.git/$1" fi result="$?" - go tool cover -html="$WORKSPACE/tmp/.$covername.tmp" -o "$WORKSPACE/tmp/$covername.html" - rm "$WORKSPACE/tmp/.$covername.tmp" + if [[ -f "$WORKSPACE/tmp/.$covername.tmp" ]] + then + go tool cover -html="$WORKSPACE/tmp/.$covername.tmp" -o "$WORKSPACE/tmp/$covername.html" + rm "$WORKSPACE/tmp/.$covername.tmp" + fi elif [[ "$2" == "pip" ]] then # $3 can name a path directory for us to use, including trailing # slash; e.g., the bin/ subdirectory of a virtualenv. cd "$WORKSPACE/$1" \ - && "${3}python" setup.py test ${testargs[$1]} + && "${3}python" setup.py ${short:+--short-tests-only} test ${testargs[$1]} elif [[ "$2" != "" ]] then "test_$2" @@ -698,6 +705,7 @@ declare -a gostuff gostuff=( sdk/go/arvadosclient sdk/go/blockdigest + sdk/go/httpserver sdk/go/manifest sdk/go/streamer sdk/go/crunchrunner @@ -746,7 +754,7 @@ stop_services test_apiserver() { rm -f "$WORKSPACE/services/api/git-commit.version" cd "$WORKSPACE/services/api" \ - && RAILS_ENV=test bundle exec rake test TESTOPTS=-v ${testargs[services/api]} + && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test TESTOPTS=-v ${testargs[services/api]} } do_test services/api apiserver @@ -792,21 +800,21 @@ done test_workbench() { start_nginx_proxy_services \ && cd "$WORKSPACE/apps/workbench" \ - && RAILS_ENV=test bundle exec rake test TESTOPTS=-v ${testargs[apps/workbench]} + && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test TESTOPTS=-v ${testargs[apps/workbench]} } do_test apps/workbench workbench test_workbench_benchmark() { start_nginx_proxy_services \ && cd "$WORKSPACE/apps/workbench" \ - && RAILS_ENV=test bundle exec rake test:benchmark ${testargs[apps/workbench_benchmark]} + && env RAILS_ENV=test ${short:+RAILS_TEST_SHORT=1} bundle exec rake test:benchmark ${testargs[apps/workbench_benchmark]} } do_test apps/workbench_benchmark workbench_benchmark test_workbench_profile() { start_nginx_proxy_services \ && cd "$WORKSPACE/apps/workbench" \ - && RAILS_ENV=test bundle exec rake test:profile ${testargs[apps/workbench_profile]} + && 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