Try running multiple tests in a row.
This commit is contained in:
parent
d33e93b833
commit
738393b2c0
@ -10,7 +10,7 @@ os:
|
|||||||
# The Objective C build needs Xcode 7.0 or later.
|
# The Objective C build needs Xcode 7.0 or later.
|
||||||
osx_image: xcode7.2
|
osx_image: xcode7.2
|
||||||
script:
|
script:
|
||||||
- ./tools/run_tests/travis.sh $CONFIG
|
- ./tools/run_tests/tests.sh $CONFIG
|
||||||
env:
|
env:
|
||||||
- CONFIG=cpp
|
- CONFIG=cpp
|
||||||
- CONFIG=cpp_distcheck
|
- CONFIG=cpp_distcheck
|
||||||
|
@ -1,17 +1,23 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
MY_DIR="$(dirname "$0")"
|
MY_DIR="$(dirname "$0")"
|
||||||
|
TEST_SCRIPT=$MY_DIR/tests.sh
|
||||||
BUILD_DIR=/tmp/protobuf
|
BUILD_DIR=/tmp/protobuf
|
||||||
|
|
||||||
source $MY_DIR/tests.sh
|
|
||||||
|
|
||||||
# Set value used in tests.sh.
|
# Set value used in tests.sh.
|
||||||
PARALLELISM=-j8
|
PARALLELISM=-j8
|
||||||
|
|
||||||
|
set -x # display all commands
|
||||||
|
|
||||||
rm -rf $BUILD_DIR
|
rm -rf $BUILD_DIR
|
||||||
mkdir -p $BUILD_DIR
|
mkdir -p $BUILD_DIR
|
||||||
cd $BUILD_DIR
|
cd $BUILD_DIR
|
||||||
git clone /var/local/jenkins/protobuf
|
git clone /var/local/jenkins/protobuf
|
||||||
cd 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
|
||||||
|
49
tools/run_tests/tests.sh
Normal file → Executable file
49
tools/run_tests/tests.sh
Normal file → Executable file
@ -1,9 +1,13 @@
|
|||||||
# This file is not intended to be executed directly. It is intended to be
|
#!/bin/bash
|
||||||
# included in a larger shell script.
|
|
||||||
|
|
||||||
# For when some other test needs the C++ main build, including protoc and
|
# For when some other test needs the C++ main build, including protoc and
|
||||||
# libprotobuf.
|
# libprotobuf.
|
||||||
internal_build_cpp() {
|
internal_build_cpp() {
|
||||||
|
if [ -f src/protoc ]; then
|
||||||
|
# Already built.
|
||||||
|
return
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $(uname -s) == "Linux" && "$TRAVIS" == "true" ]]; then
|
if [[ $(uname -s) == "Linux" && "$TRAVIS" == "true" ]]; then
|
||||||
# Install GCC 4.8 to replace the default GCC 4.6. We need 4.8 for more
|
# 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.
|
# decent C++ 11 support in order to compile conformance tests.
|
||||||
@ -277,3 +281,44 @@ build_javascript() {
|
|||||||
cd js && npm install && npm test && cd ..
|
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"
|
||||||
|
@ -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"
|
|
Loading…
Reference in New Issue
Block a user