Эх сурвалжийг харах

Try running multiple tests in a row.

Josh Haberman 9 жил өмнө
parent
commit
738393b2c0

+ 1 - 1
.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

+ 9 - 3
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

+ 47 - 2
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"

+ 0 - 45
tools/run_tests/travis.sh

@@ -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"