aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--.travis.yml2
-rwxr-xr-xtools/run_tests/jenkins.sh12
-rwxr-xr-x[-rw-r--r--]tools/run_tests/tests.sh49
-rwxr-xr-xtools/run_tests/travis.sh45
4 files changed, 57 insertions, 51 deletions
diff --git a/.travis.yml b/.travis.yml
index 4a295401..26b9dcaf 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,7 +10,7 @@ os:
# The Objective C build needs Xcode 7.0 or later.
osx_image: xcode7.2
script:
- - ./tools/run_tests/travis.sh $CONFIG
+ - ./tools/run_tests/tests.sh $CONFIG
env:
- CONFIG=cpp
- CONFIG=cpp_distcheck
diff --git a/tools/run_tests/jenkins.sh b/tools/run_tests/jenkins.sh
index b90c099f..e174a209 100755
--- a/tools/run_tests/jenkins.sh
+++ b/tools/run_tests/jenkins.sh
@@ -1,17 +1,23 @@
#!/bin/bash
MY_DIR="$(dirname "$0")"
+TEST_SCRIPT=$MY_DIR/tests.sh
BUILD_DIR=/tmp/protobuf
-source $MY_DIR/tests.sh
-
# Set value used in tests.sh.
PARALLELISM=-j8
+set -x # display all commands
+
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
cd $BUILD_DIR
git clone /var/local/jenkins/protobuf
cd protobuf
-build_cpp
+# If protoc fails to build, we can't test anything else.
+$TEST_SCRIPT cpp || exit 1
+
+# Other tests can fail and we keep on going.
+$TEST_SCRIPT java_jdk6
+$TEST_SCRIPT java_jdk7
diff --git a/tools/run_tests/tests.sh b/tools/run_tests/tests.sh
index a6ba1405..718d6de9 100644..100755
--- a/tools/run_tests/tests.sh
+++ b/tools/run_tests/tests.sh
@@ -1,9 +1,13 @@
-# This file is not intended to be executed directly. It is intended to be
-# included in a larger shell script.
+#!/bin/bash
# For when some other test needs the C++ main build, including protoc and
# libprotobuf.
internal_build_cpp() {
+ if [ -f src/protoc ]; then
+ # Already built.
+ return
+ fi
+
if [[ $(uname -s) == "Linux" && "$TRAVIS" == "true" ]]; then
# Install GCC 4.8 to replace the default GCC 4.6. We need 4.8 for more
# decent C++ 11 support in order to compile conformance tests.
@@ -277,3 +281,44 @@ build_javascript() {
cd js && npm install && npm test && cd ..
}
+[ -n "${PARALLELISM}" ] && PARALLELISM=-j8
+
+# Note: travis currently does not support testing more than one language so the
+# .travis.yml cheats and claims to only be cpp. If they add multiple language
+# support, this should probably get updated to install steps and/or
+# rvm/gemfile/jdk/etc. entries rather than manually doing the work.
+
+# .travis.yml uses matrix.exclude to block the cases where app-get can't be
+# use to install things.
+
+# -------- main --------
+
+# Set value used in tests.sh.
+PARALLELISM=-j2
+
+if [ "$#" -ne 1 ]; then
+ echo "
+Usage: $0 { cpp |
+ csharp |
+ java_jdk6 |
+ java_jdk7 |
+ java_oracle7 |
+ javanano_jdk6 |
+ javanano_jdk7 |
+ javanano_oracle7 |
+ objectivec_ios |
+ objectivec_osx |
+ python |
+ python_cpp |
+ ruby_19 |
+ ruby_20 |
+ ruby_21 |
+ ruby_22 |
+ jruby }
+"
+ exit 1
+fi
+
+set -e # exit immediately on error
+set -x # display all commands
+eval "build_$1"
diff --git a/tools/run_tests/travis.sh b/tools/run_tests/travis.sh
deleted file mode 100755
index f7045f1b..00000000
--- a/tools/run_tests/travis.sh
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env bash
-
-MY_DIR="$(dirname "$0")"
-
-source $MY_DIR/tests.sh
-
-# Note: travis currently does not support testing more than one language so the
-# .travis.yml cheats and claims to only be cpp. If they add multiple language
-# support, this should probably get updated to install steps and/or
-# rvm/gemfile/jdk/etc. entries rather than manually doing the work.
-
-# .travis.yml uses matrix.exclude to block the cases where app-get can't be
-# use to install things.
-
-# -------- main --------
-
-# Set value used in tests.sh.
-PARALLELISM=-j2
-
-if [ "$#" -ne 1 ]; then
- echo "
-Usage: $0 { cpp |
- csharp |
- java_jdk6 |
- java_jdk7 |
- java_oracle7 |
- javanano_jdk6 |
- javanano_jdk7 |
- javanano_oracle7 |
- objectivec_ios |
- objectivec_osx |
- python |
- python_cpp |
- ruby_19 |
- ruby_20 |
- ruby_21 |
- ruby_22 |
- jruby }
-"
- exit 1
-fi
-
-set -e # exit immediately on error
-set -x # display all commands
-eval "build_$1"