Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(202)

Unified Diff: third_party/protobuf/tests.sh

Issue 1983203003: Update third_party/protobuf to protobuf-v3.0.0-beta-3 (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: owners Created 4 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « third_party/protobuf/src/google/protobuf/wrappers.pb.cc ('k') | third_party/protobuf/travis.sh » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: third_party/protobuf/tests.sh
diff --git a/third_party/protobuf/travis.sh b/third_party/protobuf/tests.sh
similarity index 70%
rename from third_party/protobuf/travis.sh
rename to third_party/protobuf/tests.sh
index 97a769d7e56eebcc99a89f4ee11363263eae543e..6a9439a5515bcc9982e4d8427d18418580bc4023 100755
--- a/third_party/protobuf/travis.sh
+++ b/third_party/protobuf/tests.sh
@@ -1,17 +1,24 @@
-#!/usr/bin/env bash
+#!/bin/bash
+#
+# Build and runs tests for the protobuf project. The tests as written here are
+# used by both Jenkins and Travis, though some specialized logic is required to
+# handle the differences between them.
-# 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.
+on_travis() {
+ if [ "$TRAVIS" == "true" ]; then
+ "$@"
+ fi
+}
# For when some other test needs the C++ main build, including protoc and
# libprotobuf.
internal_build_cpp() {
- if [ $(uname -s) == "Linux" ]; then
+ 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.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test -y
@@ -29,6 +36,9 @@ build_cpp() {
internal_build_cpp
make check -j2
cd conformance && make test_cpp && cd ..
+
+ # Verify benchmarking code can build successfully.
+ cd benchmarks && make && ./generate-datasets && cd ..
}
build_cpp_distcheck() {
@@ -42,20 +52,22 @@ build_csharp() {
# need to really build protoc, but it's simplest to keep with the
# conventions of the other builds.
internal_build_cpp
+ NUGET=/usr/local/bin/nuget.exe
- # Install latest version of Mono
- sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
- echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
- echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
- sudo apt-get update -qq
- sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit
- wget www.nuget.org/NuGet.exe -O nuget.exe
+ if [ "$TRAVIS" == "true" ]; then
+ # Install latest version of Mono
+ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+ echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
+ echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
+ sudo apt-get update -qq
+ sudo apt-get install -qq mono-devel referenceassemblies-pcl nunit
+ wget www.nuget.org/NuGet.exe -O nuget.exe
+ NUGET=../../nuget.exe
+ fi
- (cd csharp/src; mono ../../nuget.exe restore)
+ (cd csharp/src; mono $NUGET restore)
csharp/buildall.sh
- # TODO(xiaofeng): The conformance tests are disable because the testee program
- # crashes on some inputs.
- # cd conformance && make test_csharp && cd ..
+ cd conformance && make test_csharp && cd ..
}
build_golang() {
@@ -80,40 +92,54 @@ use_java() {
version=$1
case "$version" in
jdk6)
- sudo apt-get install openjdk-6-jdk
+ on_travis sudo apt-get install openjdk-6-jdk
export PATH=/usr/lib/jvm/java-6-openjdk-amd64/bin:$PATH
;;
jdk7)
- sudo apt-get install openjdk-7-jdk
+ on_travis sudo apt-get install openjdk-7-jdk
export PATH=/usr/lib/jvm/java-7-openjdk-amd64/bin:$PATH
;;
oracle7)
- sudo apt-get install python-software-properties # for apt-add-repository
- echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
- sudo debconf-set-selections
- yes | sudo apt-add-repository ppa:webupd8team/java
- yes | sudo apt-get install oracle-java7-installer
+ if [ "$TRAVIS" == "true" ]; then
+ sudo apt-get install python-software-properties # for apt-add-repository
+ echo "oracle-java7-installer shared/accepted-oracle-license-v1-1 select true" | \
+ sudo debconf-set-selections
+ yes | sudo apt-add-repository ppa:webupd8team/java
+ yes | sudo apt-get install oracle-java7-installer
+ fi;
export PATH=/usr/lib/jvm/java-7-oracle/bin:$PATH
;;
esac
+ if [ "$TRAVIS" != "true" ]; then
+ MAVEN_LOCAL_REPOSITORY=/var/maven_local_repository
+ MVN="$MVN -e -X --offline -Dmaven.repo.local=$MAVEN_LOCAL_REPOSITORY"
+ fi;
+
which java
java -version
}
+# --batch-mode supresses download progress output that spams the logs.
+MVN="mvn --batch-mode"
+
build_java() {
+ version=$1
+ dir=java_$version
# Java build needs `protoc`.
internal_build_cpp
- cd java && mvn test && mvn install
- cd util && mvn test
+ cp -r java $dir
+ cd $dir && $MVN clean && $MVN test
cd ../..
}
+# The conformance tests are hard-coded to work with the $ROOT/java directory.
+# So this can't run in parallel with two different sets of tests.
build_java_with_conformance_tests() {
# Java build needs `protoc`.
internal_build_cpp
- cd java && mvn test && mvn install
- cd util && mvn test && mvn assembly:single
+ cd java && $MVN test && $MVN install
+ cd util && $MVN package assembly:single
cd ../..
cd conformance && make test_java && cd ..
}
@@ -121,12 +147,12 @@ build_java_with_conformance_tests() {
build_javanano() {
# Java build needs `protoc`.
internal_build_cpp
- cd javanano && mvn test && cd ..
+ cd javanano && $MVN test && cd ..
}
build_java_jdk6() {
use_java jdk6
- build_java
+ build_java jdk6
}
build_java_jdk7() {
use_java jdk7
@@ -134,7 +160,7 @@ build_java_jdk7() {
}
build_java_oracle7() {
use_java oracle7
- build_java
+ build_java oracle7
}
build_javanano_jdk6() {
@@ -151,6 +177,9 @@ build_javanano_oracle7() {
}
internal_install_python_deps() {
+ if [ "$TRAVIS" != "true" ]; then
+ return;
+ fi
# Install tox (OS X doesn't have pip).
if [ $(uname -s) == "Darwin" ]; then
sudo easy_install tox
@@ -181,8 +210,10 @@ internal_objectivec_common () {
}
internal_xctool_debug_and_release() {
- xctool -configuration Debug "$@"
- xctool -configuration Release "$@"
+ # Always use -reporter plain to avoid escape codes in output (makes travis
+ # logs easier to read).
+ xctool -reporter plain -configuration Debug "$@"
+ xctool -reporter plain -configuration Release "$@"
}
build_objectivec_ios() {
@@ -197,9 +228,9 @@ build_objectivec_ios() {
build-tests
IOS_DESTINATIONS=(
"platform=iOS Simulator,name=iPhone 4s,OS=8.1" # 32bit
- "platform=iOS Simulator,name=iPhone 6,OS=9.1" # 64bit
+ "platform=iOS Simulator,name=iPhone 6,OS=9.2" # 64bit
"platform=iOS Simulator,name=iPad 2,OS=8.1" # 32bit
- "platform=iOS Simulator,name=iPad Air,OS=9.1" # 64bit
+ "platform=iOS Simulator,name=iPad Air,OS=9.2" # 64bit
)
for i in "${IOS_DESTINATIONS[@]}" ; do
internal_xctool_debug_and_release \
@@ -278,6 +309,14 @@ build_javascript() {
cd js && npm install && npm test && cd ..
}
+# 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 --------
if [ "$#" -ne 1 ]; then
@@ -294,10 +333,10 @@ Usage: $0 { cpp |
objectivec_osx |
python |
python_cpp |
- ruby_19 |
- ruby_20 |
- ruby_21 |
- ruby_22 |
+ ruby19 |
+ ruby20 |
+ ruby21 |
+ ruby22 |
jruby }
"
exit 1
« no previous file with comments | « third_party/protobuf/src/google/protobuf/wrappers.pb.cc ('k') | third_party/protobuf/travis.sh » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698