Small tweaks: fix example for running one API test in run-tests.sh;
[arvados-dev.git] / jenkins / run-tests.sh
index 742baebad07df6f3bd3825da5f6b211f998fd3c4..ec6f4b99d88c7c594a25230b5506390cb2310c6e 100755 (executable)
@@ -20,7 +20,8 @@ Options:
                from a previous invocation if you use this option.
 WORKSPACE=path Arvados source tree to test.
 CONFIGSRC=path Dir with api server config files to copy into source tree.
                from a previous invocation if you use this option.
 WORKSPACE=path Arvados source tree to test.
 CONFIGSRC=path Dir with api server config files to copy into source tree.
-apiserver_test="TEST=test/functional/arvados/v1/collections_test.rb"
+               (If none given, leave config files alone in source tree.)
+apiserver_test="TEST=test/functional/arvados/v1/collections_controller_test.rb"
                Restrict apiserver tests to the given file
 python_sdk_test="--test-suite test.test_keep_locator"
                Restrict Python SDK tests to the given class
                Restrict apiserver tests to the given file
 python_sdk_test="--test-suite test.test_keep_locator"
                Restrict Python SDK tests to the given class
@@ -36,6 +37,9 @@ into \$GOPATH, \$VENDIR, and \$GEMHOME before running any tests. Many
 test suites depend on other components being installed, and installing
 everything tends to be quicker than debugging dependencies.
 
 test suites depend on other components being installed, and installing
 everything tends to be quicker than debugging dependencies.
 
+As a special concession to the current CI server config, CONFIGSRC
+defaults to $HOME/arvados-api-server if that directory exists.
+
 More information and background:
 
 https://arvados.org/projects/arvados/wiki/Running_tests
 More information and background:
 
 https://arvados.org/projects/arvados/wiki/Running_tests
@@ -84,7 +88,7 @@ clear_temp() {
             leaving+=" $var=\"${!var}\""
         fi
     done
             leaving+=" $var=\"${!var}\""
         fi
     done
-    if [[ -z "$leaving" ]]; then
+    if [[ -n "$leaving" ]]; then
         echo "Leaving behind temp dirs: $leaving"
     fi
 }
         echo "Leaving behind temp dirs: $leaving"
     fi
 }
@@ -156,13 +160,15 @@ done
 echo "WORKSPACE=$WORKSPACE"
 [[ -n "$WORKSPACE" ]] || fatal "WORKSPACE not set"
 
 echo "WORKSPACE=$WORKSPACE"
 [[ -n "$WORKSPACE" ]] || fatal "WORKSPACE not set"
 
-if [[ -n "$CONFIGSRC" ]]; then
-    if [[ -d "$HOME/arvados-api-server" ]]; then
-        # Jenkins expects us to use this by default.
-        CONFIGSRC="$HOME/arvados-api-server"
-    fi
+if [[ -z "$CONFIGSRC" ]] && [[ -d "$HOME/arvados-api-server" ]]; then
+    # Jenkins expects us to use this by default.
+    CONFIGSRC="$HOME/arvados-api-server"
 fi
 
 fi
 
+# Clean up .pyc files that may exist in the workspace
+cd "$WORKSPACE"
+find -name '*.pyc' -delete
+
 # Set up temporary install dirs (unless existing dirs were supplied)
 for tmpdir in VENVDIR GOPATH GEMHOME
 do
 # Set up temporary install dirs (unless existing dirs were supplied)
 for tmpdir in VENVDIR GOPATH GEMHOME
 do
@@ -179,7 +185,7 @@ ln -sfn "$WORKSPACE" "$GOPATH/src/git.curoverse.com/arvados.git" \
     || fatal "symlink failed"
 
 virtualenv --setuptools "$VENVDIR" || fatal "virtualenv $VENVDIR failed"
     || fatal "symlink failed"
 
 virtualenv --setuptools "$VENVDIR" || fatal "virtualenv $VENVDIR failed"
-PATH="$VENVDIR/bin:$PATH"
+. "$VENVDIR/bin/activate"
 
 checkexit() {
     if [[ "$?" != "0" ]]; then
 
 checkexit() {
     if [[ "$?" != "0" ]]; then
@@ -273,14 +279,14 @@ install_python_sdk() {
     # keepproxy).
 
     cd "$WORKSPACE/sdk/python" \
     # keepproxy).
 
     cd "$WORKSPACE/sdk/python" \
-        && python setup.py egg_info -b ".$(git log --first-parent --format=format:%ci.%h -n1 . | tr -dc 0-9a-f. | cut -c 1-14,19-)" sdist rotate --keep=1 --match .tar.gz \
+        && python setup.py sdist rotate --keep=1 --match .tar.gz \
         && pip install dist/arvados-python-client-0.1.*.tar.gz
 }
 do_install python_sdk
 
 install_fuse() {
     cd "$WORKSPACE/services/fuse" \
         && pip install dist/arvados-python-client-0.1.*.tar.gz
 }
 do_install python_sdk
 
 install_fuse() {
     cd "$WORKSPACE/services/fuse" \
-        && python setup.py egg_info -b ".$(git log --first-parent --format=format:%ci.%h -n1 . | tr -dc 0-9a-f. | cut -c 1-14,19-)" sdist rotate --keep=1 --match .tar.gz \
+        && python setup.py sdist rotate --keep=1 --match .tar.gz \
         && pip install dist/arvados_fuse-0.1.*.tar.gz
 }
 do_install fuse
         && pip install dist/arvados_fuse-0.1.*.tar.gz
 }
 do_install fuse
@@ -335,6 +341,7 @@ do_install apiserver
 
 declare -a gostuff
 gostuff=(
 
 declare -a gostuff
 gostuff=(
+    services/crunchstat
     services/keepstore
     services/keepproxy
     sdk/go/arvadosclient
     services/keepstore
     services/keepproxy
     sdk/go/arvadosclient
@@ -399,6 +406,11 @@ test_fuse() {
 }
 do_test fuse
 
 }
 do_test fuse
 
+test_nodemanager() {
+    cd "$WORKSPACE/services/nodemanager" && python setup.py test
+}
+do_test nodemanager
+
 for g in "${gostuff[@]}"
 do
     do_test "$g" go
 for g in "${gostuff[@]}"
 do
     do_test "$g" go