Merge branch 'master' into 10401-limit-dir-expansion
[arvados.git] / build / run-tests.sh
index 0e5a33e3a30bd3da6445e7be206d97f961cdcd5e..b0897224dc27c1f22e3c6a7352285ac009a9e454 100755 (executable)
@@ -88,6 +88,7 @@ sdk/python
 sdk/ruby
 sdk/go/arvados
 sdk/go/arvadosclient
+sdk/go/dispatch
 sdk/go/keepclient
 sdk/go/httpserver
 sdk/go/manifest
@@ -121,7 +122,7 @@ GEMHOME=
 PERLINSTALLBASE=
 
 short=
-skip_install=
+only_install=
 temp=
 temp_preserve=
 
@@ -177,6 +178,9 @@ sanity_checks() {
     echo -n 'fuse.h: '
     find /usr/include -wholename '*fuse/fuse.h' \
         || fatal "No fuse/fuse.h. Try: apt-get install libfuse-dev"
+    echo -n 'gnutls.h: '
+    find /usr/include -wholename '*gnutls/gnutls.h' \
+        || fatal "No gnutls/gnutls.h. Try: apt-get install libgnutls28-dev"
     echo -n 'pyconfig.h: '
     find /usr/include -name pyconfig.h | egrep --max-count=1 . \
         || fatal "No pyconfig.h. Try: apt-get install python-dev"
@@ -230,10 +234,9 @@ do
             short=1
             ;;
         --skip-install)
-            skip_install=1
+            only_install=nothing
             ;;
         --only-install)
-            skip_install=1
             only_install="$1"; shift
             ;;
         --temp)
@@ -519,7 +522,7 @@ retry() {
 
 do_test() {
     case "${1}" in
-        apps/workbench_units | apps/workbench_functional | apps/workbench_integration)
+        apps/workbench_units | apps/workbench_functionals | apps/workbench_integration)
             suite=apps/workbench
             ;;
         *)
@@ -527,7 +530,8 @@ do_test() {
             ;;
     esac
     if [[ -z "${skip[$suite]}" && -z "${skip[$1]}" && \
-                (-z "${only}" || "${only}" == "${suite}") ]]; then
+                (-z "${only}" || "${only}" == "${suite}" || \
+                 "${only}" == "${1}") ]]; then
         retry do_test_once ${@}
     else
         title "Skipping ${1} tests"
@@ -547,14 +551,14 @@ 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
-        cd "$WORKSPACE/$1" || return 1
-        gofmt -e -d . | egrep . && result=1
-        if [[ -n "${testargs[$1]}" ]]
+        go get -t "git.curoverse.com/arvados.git/$1" && \
+            cd "$WORKSPACE/$1" && \
+            [[ -z "$(gofmt -e -d . | tee /dev/stderr)" ]] && \
+            if [[ -n "${testargs[$1]}" ]]
         then
             # "go test -check.vv giturl" doesn't work, but this
             # does:
-            cd "$WORKSPACE/$1" && go test ${short:+-short} ${testargs[$1]}
+            go test ${short:+-short} ${testargs[$1]}
         else
             # The above form gets verbose even when testargs is
             # empty, so use this form in such cases:
@@ -597,8 +601,7 @@ do_test_once() {
 }
 
 do_install() {
-    if [[ -z "${skip_install}" && \
-                (-z "${only_install}" || "${only_install}" == "${1}") ]]; then
+    if [[ -z "${only_install}" || "${only_install}" == "${1}" ]]; then
         retry do_install_once ${@}
     else
         title "Skipping $1 install"
@@ -770,6 +773,7 @@ gostuff=(
     sdk/go/arvados
     sdk/go/arvadosclient
     sdk/go/blockdigest
+    sdk/go/dispatch
     sdk/go/httpserver
     sdk/go/manifest
     sdk/go/streamer