. `dirname "$(readlink -f "$0")"`/libcloud-pin
+COLUMNS=80
+. `dirname "$(readlink -f "$0")"`/run-library.sh
+
read -rd "\000" helpmessage <<EOF
$(basename $0): Install and test Arvados components.
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.)
services/keepstore
services/login-sync
services/nodemanager
+services/crunch-run
services/crunch-dispatch-local
+services/crunch-dispatch-slurm
sdk/cli
sdk/pam
sdk/python
sdk/ruby
sdk/go/arvadosclient
sdk/go/keepclient
+sdk/go/httpserver
sdk/go/manifest
sdk/go/blockdigest
sdk/go/streamer
sdk/cwl
tools/crunchstat-summary
tools/keep-rsync
+tools/keep-block-check
EOF
GEMHOME=
PERLINSTALLBASE=
-COLUMNS=80
-
+short=
skip_install=
temp=
temp_preserve=
exit 1
}
-report_outcomes() {
- for x in "${successes[@]}"
- do
- echo "Pass: $x"
- done
-
- if [[ ${#failures[@]} == 0 ]]
- then
- echo "All test suites passed."
- else
- echo "Failures (${#failures[@]}):"
- for x in "${failures[@]}"
- do
- echo "Fail: $x"
- done
- fi
-}
-
exit_cleanly() {
trap - INT
create-plot-data-from-log.sh $BUILD_NUMBER "$WORKSPACE/apps/workbench/log/test.log" "$WORKSPACE/apps/workbench/log/"
--only)
only="$1"; skip[$1]=""; shift
;;
+ --short)
+ short=1
+ ;;
--skip-install)
skip_install=1
;;
if ! [[ -e "$venvdest/bin/activate" ]] || ! [[ -e "$venvdest/bin/pip" ]]; then
virtualenv --setuptools "$@" "$venvdest" || fatal "virtualenv $venvdest failed"
fi
- "$venvdest/bin/pip" install 'setuptools>=18' 'pip>=7'
+ if [[ $("$venvdest/bin/python" --version 2>&1) =~ \ 3\.[012]\. ]]; then
+ # pip 8.0.0 dropped support for python 3.2, e.g., debian wheezy
+ "$venvdest/bin/pip" install 'setuptools>=18' 'pip>=7,<8'
+ else
+ "$venvdest/bin/pip" install 'setuptools>=18' 'pip>=7'
+ fi
# ubuntu1404 can't seem to install mock via tests_require, but it can do this.
"$venvdest/bin/pip" install 'mock>=1.0' 'pbr<1.7.0'
}
gem install --user-install bundler || fatal 'Could not install bundler'
fi
-checkexit() {
- if [[ "$1" != "0" ]]; then
- title "!!!!!! $2 FAILED !!!!!!"
- failures+=("$2 (`timer`)")
- else
- successes+=("$2 (`timer`)")
- fi
-}
-
-timer_reset() {
- t0=$SECONDS
-}
-
-timer() {
- echo -n "$(($SECONDS - $t0))s"
-}
-
retry() {
while ! ${@} && [[ "$retry" == 1 ]]
do
# does:
cd "$WORKSPACE/$1" && \
go get -t "git.curoverse.com/arvados.git/$1" && \
- go test ${coverflags[@]} ${testargs[$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"
# $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"
fi
}
-title () {
- txt="********** $1 **********"
- printf "\n%*s%s\n\n" $((($COLUMNS-${#txt})/2)) "" "$txt"
-}
-
bundle_install_trylocal() {
(
set -e
gostuff=(
sdk/go/arvadosclient
sdk/go/blockdigest
+ sdk/go/httpserver
sdk/go/manifest
sdk/go/streamer
sdk/go/crunchrunner
services/datamanager/keep
services/datamanager
services/crunch-dispatch-local
+ services/crunch-dispatch-slurm
services/crunch-run
tools/keep-rsync
+ tools/keep-block-check
)
for g in "${gostuff[@]}"
do