aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Craig Tiller <ctiller@google.com>2016-02-11 08:48:13 -0800
committerGravatar Craig Tiller <ctiller@google.com>2016-02-11 08:48:13 -0800
commitb718c8af703fc3442d691a091d5c8f9c321e3b55 (patch)
tree90c9c265035f3714b81badc68ea3e6d1e1ff026b /tools
parent6456a47b184540e9be3bbff25fe39ee4072676ad (diff)
parentf79366a3c99592eccd9c719c86dca2f976804d3d (diff)
Merge github.com:grpc/grpc into compatibility_mode
Diffstat (limited to 'tools')
-rwxr-xr-xtools/buildgen/build-cleaner.py3
-rwxr-xr-xtools/buildgen/plugins/expand_version.py102
-rwxr-xr-xtools/codegen/core/gen_static_metadata.py4
-rw-r--r--tools/distrib/build_ruby_environment_macos.sh61
-rw-r--r--tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile1
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/node_centos7_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_jessie_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_jessie_x86/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_ubuntu1204_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_ubuntu1404_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_ubuntu1504_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_ubuntu1510_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_ubuntu1604_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/node_wheezy_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_arch_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_centos6_x64/Dockerfile17
-rw-r--r--tools/dockerfile/distribtest/python_centos7_x64/Dockerfile1
-rw-r--r--tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x64/Dockerfile4
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x86/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile7
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile4
-rw-r--r--tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile6
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile2
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile5
-rw-r--r--tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile5
-rwxr-xr-xtools/dockerfile/grpc_interop_python/build_interop.sh1
-rw-r--r--tools/dockerfile/test/csharp_jessie_x64/Dockerfile (renamed from tools/dockerfile/grpc_tests_multilang_x64/Dockerfile)96
-rw-r--r--tools/dockerfile/test/cxx_jessie_x64/Dockerfile86
-rw-r--r--tools/dockerfile/test/cxx_jessie_x86/Dockerfile86
-rw-r--r--tools/dockerfile/test/node_jessie_x64/Dockerfile90
-rw-r--r--tools/dockerfile/test/php_jessie_x64/Dockerfile96
-rw-r--r--tools/dockerfile/test/python_jessie_x64/Dockerfile97
-rw-r--r--tools/dockerfile/test/ruby_jessie_x64/Dockerfile (renamed from tools/dockerfile/grpc_tests_multilang_x86/Dockerfile)93
-rw-r--r--tools/dockerfile/test/sanity/Dockerfile (renamed from tools/dockerfile/grpc_sanity/Dockerfile)17
-rw-r--r--tools/doxygen/Doxyfile.c++2
-rw-r--r--tools/doxygen/Doxyfile.c++.internal2
-rw-r--r--tools/doxygen/Doxyfile.core18
-rw-r--r--tools/doxygen/Doxyfile.core.internal128
-rwxr-xr-xtools/jenkins/build_and_run_docker.sh3
-rwxr-xr-xtools/jenkins/build_artifacts.sh6
-rwxr-xr-xtools/jenkins/build_docker_and_run_tests.sh4
-rwxr-xr-xtools/jenkins/docker_run.sh14
-rwxr-xr-xtools/jenkins/docker_run_tests.sh9
-rw-r--r--tools/run_tests/artifact_targets.py2
-rwxr-xr-xtools/run_tests/build_artifact_node.sh6
-rwxr-xr-xtools/run_tests/build_artifact_python.sh10
-rwxr-xr-xtools/run_tests/build_artifact_ruby.sh32
-rwxr-xr-xtools/run_tests/build_node.sh4
-rwxr-xr-xtools/run_tests/build_package_node.sh7
-rwxr-xr-xtools/run_tests/build_package_python.sh43
-rwxr-xr-xtools/run_tests/build_package_ruby.sh43
-rw-r--r--tools/run_tests/distribtest_targets.py86
-rw-r--r--tools/run_tests/interop_html_report.template42
-rw-r--r--tools/run_tests/package_targets.py51
-rwxr-xr-xtools/run_tests/pre_build_csharp.sh5
-rwxr-xr-xtools/run_tests/pre_build_node.sh6
-rw-r--r--tools/run_tests/report_utils.py6
-rwxr-xr-xtools/run_tests/run_interop_tests.py94
-rwxr-xr-xtools/run_tests/run_node.sh4
-rwxr-xr-xtools/run_tests/run_tests.py43
-rw-r--r--tools/run_tests/sources_and_headers.json843
88 files changed, 2046 insertions, 812 deletions
diff --git a/tools/buildgen/build-cleaner.py b/tools/buildgen/build-cleaner.py
index 37fedec6ad..49a3644123 100755
--- a/tools/buildgen/build-cleaner.py
+++ b/tools/buildgen/build-cleaner.py
@@ -38,7 +38,6 @@ import yaml
TEST = (os.environ.get('TEST', 'false') == 'true')
_TOP_LEVEL_KEYS = ['settings', 'proto_deps', 'filegroups', 'libs', 'targets', 'vspackages']
-_VERSION_KEYS = ['major', 'minor', 'micro', 'build']
_ELEM_KEYS = [
'name',
'cpu_cost',
@@ -83,8 +82,6 @@ for filename in sys.argv[1:]:
with open(filename) as f:
js = yaml.load(f)
js = rebuild_as_ordered_dict(js, _TOP_LEVEL_KEYS)
- js['settings']['version'] = rebuild_as_ordered_dict(
- js['settings']['version'], _VERSION_KEYS)
for grp in ['filegroups', 'libs', 'targets']:
if grp not in js: continue
js[grp] = sorted([clean_elem(x) for x in js[grp]],
diff --git a/tools/buildgen/plugins/expand_version.py b/tools/buildgen/plugins/expand_version.py
new file mode 100755
index 0000000000..b55e1b15ff
--- /dev/null
+++ b/tools/buildgen/plugins/expand_version.py
@@ -0,0 +1,102 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Buildgen .proto files list plugin.
+
+This parses the list of targets from the yaml build file, and creates
+a list called "protos" that contains all of the proto file names.
+
+"""
+
+
+import re
+
+LANGUAGES = [
+ 'core',
+ 'cpp',
+ 'csharp',
+ 'node',
+ 'objc',
+ 'php',
+ 'python',
+ 'ruby',
+ ]
+
+class Version:
+
+ def __init__(self, s):
+ self.tag = None
+ if '-' in s:
+ s, self.tag = s.split('-')
+ self.major, self.minor, self.patch = [int(x) for x in s.split('.')]
+
+ def __str__(self):
+ """Version string in a somewhat idiomatic style for most languages"""
+ s = '%d.%d.%d' % (self.major, self.minor, self.patch)
+ if self.tag:
+ s += '-%s' % self.tag
+ return s
+
+ def pep440(self):
+ """Version string in Python PEP440 style"""
+ s = '%d.%d.%d' % (self.major, self.minor, self.patch)
+ if self.tag:
+ # we need to translate from grpc version tags to pep440 version
+ # tags; this code is likely to be a little ad-hoc
+ if self.tag == 'dev':
+ s += '.dev0'
+ elif len(self.tag) >= 3 and self.tag[0:3] == 'pre':
+ s += 'rc%d' % int(self.tag[3:])
+ else:
+ raise Exception('Don\'t know how to translate version tag "%s" to pep440' % self.tag)
+ return s
+
+ def ruby(self):
+ """Version string in Ruby style"""
+ if self.tag:
+ return '%d.%d.%d.%s' % (self.major, self.minor, self.patch, self.tag)
+ else:
+ return '%d.%d.%d' % (self.major, self.minor, self.patch)
+
+def mako_plugin(dictionary):
+ """Expand version numbers:
+ - for each language, ensure there's a language_version tag in
+ settings (defaulting to the master version tag)
+ - expand version strings to major, minor, patch, and tag
+ """
+
+ settings = dictionary['settings']
+ master_version = Version(settings['version'])
+ settings['version'] = master_version
+ for language in LANGUAGES:
+ version_tag = '%s_version' % language
+ if version_tag in settings:
+ settings[version_tag] = Version(settings[version_tag])
+ else:
+ settings[version_tag] = master_version
diff --git a/tools/codegen/core/gen_static_metadata.py b/tools/codegen/core/gen_static_metadata.py
index 3e47d7f6d5..e6ae00e611 100755
--- a/tools/codegen/core/gen_static_metadata.py
+++ b/tools/codegen/core/gen_static_metadata.py
@@ -1,6 +1,6 @@
#!/usr/bin/env python2.7
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -50,8 +50,8 @@ CONFIG = [
'host',
'grpc-message',
'grpc-status',
- 'census',
'census-bin',
+ 'census-binary-bin',
'',
('grpc-status', '0'),
('grpc-status', '1'),
diff --git a/tools/distrib/build_ruby_environment_macos.sh b/tools/distrib/build_ruby_environment_macos.sh
new file mode 100644
index 0000000000..ff3a388eaf
--- /dev/null
+++ b/tools/distrib/build_ruby_environment_macos.sh
@@ -0,0 +1,61 @@
+#!/bin/bash
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -ex
+
+rm -rf ~/.rake-compiler
+
+CROSS_RUBY=`mktemp tmpfile.XXXXXXXX`
+
+curl https://raw.githubusercontent.com/rake-compiler/rake-compiler/v0.9.5/tasks/bin/cross-ruby.rake > $CROSS_RUBY
+
+patch $CROSS_RUBY << EOF
+--- cross-ruby.rake 2016-02-05 16:26:53.000000000 -0800
++++ cross-ruby.rake.patched 2016-02-05 16:27:33.000000000 -0800
+@@ -133,7 +133,8 @@
+ "--host=#{MINGW_HOST}",
+ "--target=#{MINGW_TARGET}",
+ "--build=#{RUBY_BUILD}",
+- '--enable-shared',
++ '--enable-static',
++ '--disable-shared',
+ '--disable-install-doc',
+ '--without-tk',
+ '--without-tcl'
+EOF
+
+MAKE="make -j8"
+
+for v in 2.3.0 2.2.2 2.1.5 2.0.0-p645 ; do
+ rake -f $CROSS_RUBY cross-ruby VERSION=$v HOST=x86_64-darwin11
+done
+
+sed 's/x86_64-darwin-11/universal-darwin/' ~/.rake-compiler/config.yml > $CROSS_RUBY
+mv $CROSS_RUBY ~/.rake-compiler/config.yml
diff --git a/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
index 17e9698904..03b5b364f8 100644
--- a/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
@@ -33,6 +33,5 @@ RUN rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E03
RUN yum-config-manager --add-repo http://download.mono-project.com/repo/centos/
RUN yum install -y mono
-RUN yum install -y git
RUN yum install -y unzip
RUN yum install -y nuget
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
index 840ecf0fc2..1cadba3b7b 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
@@ -40,4 +40,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
index 3a50da4936..be962828c2 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
@@ -40,4 +40,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
index 901c981acb..3d04d032b5 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1404_x64/Dockerfile
@@ -37,4 +37,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
index 1b8d454681..5eec570491 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1504_x64/Dockerfile
@@ -37,4 +37,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
index a6c26a4b9e..a6d60fb4b9 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1510_x64/Dockerfile
@@ -37,4 +37,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
index c6a8634937..61472704d7 100644
--- a/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_ubuntu1604_x64/Dockerfile
@@ -34,4 +34,4 @@ RUN apt-get update && apt-get install -y \
ca-certificates-mono \
nuget
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
index dd865e8bbc..9039c3c509 100644
--- a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
@@ -29,4 +29,4 @@
FROM mono:4.2.2.30
-RUN apt-get update && apt-get install -y git unzip
+RUN apt-get update && apt-get install -y unzip
diff --git a/tools/dockerfile/distribtest/node_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/node_centos7_x64/Dockerfile
new file mode 100644
index 0000000000..f6e1664086
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_centos7_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM centos:7
+
+RUN yum install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/node_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..4ca5e86563
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_jessie_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/node_jessie_x86/Dockerfile
new file mode 100644
index 0000000000..8b97d8bb5a
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_jessie_x86/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM 32bit/debian:jessie
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash
diff --git a/tools/dockerfile/distribtest/node_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/node_ubuntu1204_x64/Dockerfile
new file mode 100644
index 0000000000..0134dc964e
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_ubuntu1204_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM ubuntu:12.04
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/node_ubuntu1404_x64/Dockerfile
new file mode 100644
index 0000000000..0fae447946
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_ubuntu1404_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM ubuntu:14.04
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/node_ubuntu1504_x64/Dockerfile
new file mode 100644
index 0000000000..55da46c3be
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_ubuntu1504_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM ubuntu:15.04
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/node_ubuntu1510_x64/Dockerfile
new file mode 100644
index 0000000000..c050cab7d3
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_ubuntu1510_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM ubuntu:15.10
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/node_ubuntu1604_x64/Dockerfile
new file mode 100644
index 0000000000..ab9e8a32e3
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_ubuntu1604_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM ubuntu:16.04
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/node_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/node_wheezy_x64/Dockerfile
new file mode 100644
index 0000000000..20ef27b71b
--- /dev/null
+++ b/tools/dockerfile/distribtest/node_wheezy_x64/Dockerfile
@@ -0,0 +1,36 @@
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:wheezy
+
+RUN apt-get update && apt-get install -y curl
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.30.2/install.sh | bash \ No newline at end of file
diff --git a/tools/dockerfile/distribtest/python_arch_x64/Dockerfile b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
index 4d10e240c6..c4f2431080 100644
--- a/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
@@ -30,7 +30,7 @@
FROM base/archlinux
RUN pacman --noconfirm -Syy
-RUN pacman --noconfirm -S git
-RUN pacman --noconfirm -S python
-RUN pacman --noconfirm -S python-pip
+RUN pacman --noconfirm -S openssl
+RUN pacman --noconfirm -S python2
+RUN pacman --noconfirm -S python2-pip
diff --git a/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
index 683686c6db..79dae0742f 100644
--- a/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
@@ -29,9 +29,18 @@
FROM centos:6
-RUN yum install -y git
-RUN yum install -y python
+RUN yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm
-RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
-RUN yum install -y python-pip
+# Vanilla CentOS6 only has python 2.6 and we don't support that.
+RUN yum -y install yum -y install https://centos6.iuscommunity.org/ius-release.rpm
+RUN yum install -y python27
+# Override python2.6
+RUN ln -s /usr/bin/python2.7 /usr/local/bin/python
+RUN ln -s /usr/bin/python2.7 /usr/local/bin/python2
+
+# Install pip
+RUN curl https://bootstrap.pypa.io/get-pip.py | python -
+
+# "which" command required by python's run_distrib_test.sh
+RUN yum install -y which
diff --git a/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
index 6b70f65f10..114957b573 100644
--- a/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
@@ -29,7 +29,6 @@
FROM centos:7
-RUN yum install -y git
RUN yum install -y python
RUN yum install -y epel-release
RUN yum install -y python-pip
diff --git a/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
index 1c91594363..d58036410f 100644
--- a/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
@@ -29,9 +29,4 @@
FROM fedora:20
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y python
-RUN yum install -y python-pip
-
+RUN yum clean all && yum update -y && yum install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
index e35de109ea..b44fcff7e3 100644
--- a/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
@@ -29,9 +29,4 @@
FROM fedora:21
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y python
-RUN yum install -y python-pip
-
+RUN yum clean all && yum update -y && yum install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
index 69c3b541d3..c6415946c3 100644
--- a/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
@@ -29,9 +29,4 @@
FROM fedora:22
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y python
-RUN yum install -y python-pip
-
+RUN yum clean all && yum update -y && yum install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
index 74639a3118..6c834d2bc2 100644
--- a/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
@@ -29,9 +29,4 @@
FROM fedora:23
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y python
-RUN yum install -y python-pip
-
+RUN yum clean all && yum update -y && yum install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
index 3d511e267a..5778d604c8 100644
--- a/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
@@ -29,6 +29,4 @@
FROM debian:jessie
-RUN apt-get update
-RUN apt-get install -y git python python-pip
-
+RUN apt-get update && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
index 035d56b655..e9cf99142b 100644
--- a/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
@@ -29,6 +29,9 @@
FROM 32bit/debian:jessie
-RUN apt-get update
-RUN apt-get install -y git python python-pip
+RUN apt-get update && apt-get install -y python python-pip
+# docker is running on a 64-bit machine, so we need to
+# override "uname -m" to report i686 instead of x86_64, otherwise
+# python will choose a wrong binary package to install.
+ENTRYPOINT ["linux32"]
diff --git a/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
index 032beb97e5..ea5d4c72a1 100644
--- a/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
@@ -29,7 +29,12 @@
FROM opensuse:42.1
-RUN zypper --non-interactive install git
RUN zypper --non-interactive install python
RUN zypper --non-interactive install python-pip
+# "which" command required by python's run_distrib_test.sh
+RUN zypper --non-interactive install which
+
+# Without this, pip won't be able to connect to
+# https://pypi.python.org/simple/
+RUN zypper --non-interactive install ca-certificates-mozilla
diff --git a/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
index 9dbf90f511..a48ce0eeef 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM ubuntu:12.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y python
-RUN apt-get install -y python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
index 3b366a9bb4..18dbfd4657 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM ubuntu:14.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y python
-RUN apt-get install -y python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
index de90b5b7e2..444a54d14b 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM ubuntu:15.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y python
-RUN apt-get install -y python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
index d10e04aacc..245ffb9413 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM ubuntu:15.10
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y python
-RUN apt-get install -y python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
index bc56285a3d..a1ac3051ba 100644
--- a/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM ubuntu:16.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y python
-RUN apt-get install -y python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
index 895dd96747..46353b92d6 100644
--- a/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
@@ -29,6 +29,4 @@
FROM debian:wheezy
-RUN apt-get update
-RUN apt-get install -y git python python-pip
-
+RUN apt-get update -y && apt-get install -y python python-pip
diff --git a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
index 28a5c4ad71..fd2cf63a59 100644
--- a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
@@ -29,6 +29,4 @@
FROM centos:6
-RUN yum install -y git
RUN yum install -y ruby
-
diff --git a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
index bdc100ee1c..5bb9bd6fa6 100644
--- a/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
@@ -29,6 +29,4 @@
FROM centos:7
-RUN yum install -y git
RUN yum install -y ruby
-
diff --git a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
index 50ff0b038b..9f23be986f 100644
--- a/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM fedora:20
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y ruby
-
+RUN yum clean all && yum update -y && yum install -y ruby
diff --git a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
index 219ecc8b53..57106a4894 100644
--- a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM fedora:21
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y ruby
-
+RUN yum clean all && yum update -y && yum install -y ruby
diff --git a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
index 49d4c7d7f8..d770177381 100644
--- a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM fedora:22
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y ruby
-
+RUN yum clean all && yum update -y && yum install -y ruby
diff --git a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
index 3c5363fb63..2c9b78ed08 100644
--- a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
@@ -29,8 +29,4 @@
FROM fedora:23
-RUN yum clean all
-RUN yum update -y
-RUN yum install -y git
-RUN yum install -y ruby
-
+RUN yum clean all && yum update -y && yum install -y ruby
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
index 6a3d7edba0..4784bd73b4 100644
--- a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM debian:jessie
-RUN apt-get update
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
index ca3b731f56..4f649cbc03 100644
--- a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
@@ -29,7 +29,4 @@
FROM 32bit/debian:jessie
-RUN apt-get update
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
index a9423042ea..a249950998 100644
--- a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
@@ -29,6 +29,4 @@
FROM opensuse:42.1
-RUN zypper --non-interactive install git
RUN zypper --non-interactive install ruby
-
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
index 66f17100cf..95b7702afb 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM ubuntu:12.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update -y && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
index dc533a5fca..66ba01d37e 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM ubuntu:14.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update -y && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
index 7e4f203041..81e7ca1d3c 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM ubuntu:15.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update -y && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
index 43ef63ec8c..37b897f0f5 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM ubuntu:15.10
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update -y && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
index 3b63976d3c..5c54b8f754 100644
--- a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM ubuntu:16.04
-RUN apt-get update -y
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update -y && apt-get install -y ruby-full
diff --git a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
index 1ff083d43c..2e6593c230 100644
--- a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
@@ -29,7 +29,4 @@
FROM debian:wheezy
-RUN apt-get update
-RUN apt-get install -y git
-RUN apt-get install -y ruby-full
-
+RUN apt-get update && apt-get install -y ruby-full
diff --git a/tools/dockerfile/grpc_interop_python/build_interop.sh b/tools/dockerfile/grpc_interop_python/build_interop.sh
index 203b012aed..ed736809bc 100755
--- a/tools/dockerfile/grpc_interop_python/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_python/build_interop.sh
@@ -39,7 +39,6 @@ cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-make install-certs
make
# build Python interop client and server
diff --git a/tools/dockerfile/grpc_tests_multilang_x64/Dockerfile b/tools/dockerfile/test/csharp_jessie_x64/Dockerfile
index aa5fc5cf72..0052de6130 100644
--- a/tools/dockerfile/grpc_tests_multilang_x64/Dockerfile
+++ b/tools/dockerfile/test/csharp_jessie_x64/Dockerfile
@@ -27,8 +27,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Dockerfile for running gRPC test suites inside a docker container.
-
FROM debian:jessie
# Install Git and basic packages.
@@ -61,19 +59,11 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
-# Prepare ccache
-RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
-RUN ln -s /usr/bin/ccache /usr/local/bin/g++
-RUN ln -s /usr/bin/ccache /usr/local/bin/cc
-RUN ln -s /usr/bin/ccache /usr/local/bin/c++
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-
-##################
-# C++ dependencies
-RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
-#################
+#================
# C# dependencies
# Update to a newer version of mono
@@ -86,77 +76,23 @@ RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat
# Install dependencies
RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
mono-devel \
- nunit \
- nunit-console \
- monodevelop
-
-# Download NuGet
-RUN cd /var/local && wget www.nuget.org/NuGet.exe
-ENV NUGET mono /var/local/NuGet.exe
-
-##################
-# Node dependencies
-
-# Install nvm
-RUN touch .profile
-RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
-RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
-
-##################
-# Ruby dependencies
-
-# Install rvm
-RUN gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
-RUN \curl -sSL https://get.rvm.io | bash -s stable
-
-# Install Ruby 2.1
-RUN /bin/bash -l -c "rvm install ruby-2.1"
-RUN /bin/bash -l -c "rvm use --default ruby-2.1"
-RUN /bin/bash -l -c "echo 'gem: --no-ri --no-rdoc' > ~/.gemrc"
-RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
-RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc"
-RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
-
-##################
-# Python dependencies
-
-# Install dependencies
+ ca-certificates-mono \
+ nuget \
+ && apt-get clean
-RUN apt-get update && apt-get install -y \
- python-all-dev \
- python3-all-dev \
- python-pip
-
-# Install Python packages from PyPI
-RUN pip install pip --upgrade
-RUN pip install virtualenv
-RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 tox
-
-# For sanity test
-RUN pip install simplejson mako
-
-##################
-# PHP dependencies
-
-# Install dependencies
-
-RUN /bin/bash -l -c "echo 'deb http://packages.dotdeb.org wheezy-php55 all' \
- >> /etc/apt/sources.list.d/dotdeb.list"
-RUN /bin/bash -l -c "echo 'deb-src http://packages.dotdeb.org wheezy-php55 all' \
- >> /etc/apt/sources.list.d/dotdeb.list"
-RUN wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
-
-RUN apt-get update && apt-get install -y \
- git php5 php5-dev phpunit unzip
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-##################
+#======================
# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
RUN apt-get install -y libzookeeper-mt-dev
-##################
-# Build profiling
-RUN apt-get install -y time
-
RUN mkdir /var/local/jenkins
# Define the default command.
diff --git a/tools/dockerfile/test/cxx_jessie_x64/Dockerfile b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..e3ed39dfe6
--- /dev/null
+++ b/tools/dockerfile/test/cxx_jessie_x64/Dockerfile
@@ -0,0 +1,86 @@
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ autotools-dev \
+ build-essential \
+ bzip2 \
+ ccache \
+ curl \
+ gcc \
+ gcc-multilib \
+ git \
+ golang \
+ gyp \
+ lcov \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ libgtest-dev \
+ libtool \
+ make \
+ perl \
+ strace \
+ python-dev \
+ python-setuptools \
+ python-yaml \
+ telnet \
+ unzip \
+ wget \
+ zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#======================
+# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
+RUN apt-get install -y libzookeeper-mt-dev
+
+RUN mkdir /var/local/jenkins
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/cxx_jessie_x86/Dockerfile b/tools/dockerfile/test/cxx_jessie_x86/Dockerfile
new file mode 100644
index 0000000000..9a8f2b1cca
--- /dev/null
+++ b/tools/dockerfile/test/cxx_jessie_x86/Dockerfile
@@ -0,0 +1,86 @@
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM 32bit/debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ autotools-dev \
+ build-essential \
+ bzip2 \
+ ccache \
+ curl \
+ gcc \
+ gcc-multilib \
+ git \
+ golang \
+ gyp \
+ lcov \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ libgtest-dev \
+ libtool \
+ make \
+ perl \
+ strace \
+ python-dev \
+ python-setuptools \
+ python-yaml \
+ telnet \
+ unzip \
+ wget \
+ zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#=================
+# C++ dependencies
+RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang && apt-get clean
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#======================
+# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
+RUN apt-get install -y libzookeeper-mt-dev
+
+RUN mkdir /var/local/jenkins
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/node_jessie_x64/Dockerfile b/tools/dockerfile/test/node_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..0655bf7179
--- /dev/null
+++ b/tools/dockerfile/test/node_jessie_x64/Dockerfile
@@ -0,0 +1,90 @@
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ autotools-dev \
+ build-essential \
+ bzip2 \
+ ccache \
+ curl \
+ gcc \
+ gcc-multilib \
+ git \
+ golang \
+ gyp \
+ lcov \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ libgtest-dev \
+ libtool \
+ make \
+ perl \
+ strace \
+ python-dev \
+ python-setuptools \
+ python-yaml \
+ telnet \
+ unzip \
+ wget \
+ zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#==================
+# Node dependencies
+
+# Install nvm
+RUN touch .profile
+RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
+RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#======================
+# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
+RUN apt-get install -y libzookeeper-mt-dev
+
+RUN mkdir /var/local/jenkins
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/php_jessie_x64/Dockerfile b/tools/dockerfile/test/php_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..43081e7d38
--- /dev/null
+++ b/tools/dockerfile/test/php_jessie_x64/Dockerfile
@@ -0,0 +1,96 @@
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ autotools-dev \
+ build-essential \
+ bzip2 \
+ ccache \
+ curl \
+ gcc \
+ gcc-multilib \
+ git \
+ golang \
+ gyp \
+ lcov \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ libgtest-dev \
+ libtool \
+ make \
+ perl \
+ strace \
+ python-dev \
+ python-setuptools \
+ python-yaml \
+ telnet \
+ unzip \
+ wget \
+ zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#=================
+# PHP dependencies
+
+# Install dependencies
+
+RUN /bin/bash -l -c "echo 'deb http://packages.dotdeb.org wheezy-php55 all' \
+ >> /etc/apt/sources.list.d/dotdeb.list"
+RUN /bin/bash -l -c "echo 'deb-src http://packages.dotdeb.org wheezy-php55 all' \
+ >> /etc/apt/sources.list.d/dotdeb.list"
+RUN wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
+
+RUN apt-get update && apt-get install -y \
+ git php5 php5-dev phpunit unzip
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#======================
+# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
+RUN apt-get install -y libzookeeper-mt-dev
+
+RUN mkdir /var/local/jenkins
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/test/python_jessie_x64/Dockerfile b/tools/dockerfile/test/python_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..7ed8b4c085
--- /dev/null
+++ b/tools/dockerfile/test/python_jessie_x64/Dockerfile
@@ -0,0 +1,97 @@
+# Copyright 2015-2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FROM debian:jessie
+
+# Install Git and basic packages.
+RUN apt-get update && apt-get install -y \
+ autoconf \
+ autotools-dev \
+ build-essential \
+ bzip2 \
+ ccache \
+ curl \
+ gcc \
+ gcc-multilib \
+ git \
+ golang \
+ gyp \
+ lcov \
+ libc6 \
+ libc6-dbg \
+ libc6-dev \
+ libgtest-dev \
+ libtool \
+ make \
+ perl \
+ strace \
+ python-dev \
+ python-setuptools \
+ python-yaml \
+ telnet \
+ unzip \
+ wget \
+ zip && apt-get clean
+
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#====================
+# Python dependencies
+
+# Install dependencies
+
+RUN apt-get update && apt-get install -y \
+ python-all-dev \
+ python3-all-dev \
+ python-pip
+
+# Install Python packages from PyPI
+RUN pip install pip --upgrade
+RUN pip install virtualenv
+RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2 tox
+
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
+
+#======================
+# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
+RUN apt-get install -y libzookeeper-mt-dev
+
+RUN mkdir /var/local/jenkins
+
+# Define the default command.
+CMD ["bash"]
diff --git a/tools/dockerfile/grpc_tests_multilang_x86/Dockerfile b/tools/dockerfile/test/ruby_jessie_x64/Dockerfile
index 6e0dbd7d57..91af772d72 100644
--- a/tools/dockerfile/grpc_tests_multilang_x86/Dockerfile
+++ b/tools/dockerfile/test/ruby_jessie_x64/Dockerfile
@@ -27,9 +27,7 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Dockerfile for running gRPC test suites inside a docker container.
-
-FROM 32bit/debian:jessie
+FROM debian:jessie
# Install Git and basic packages.
RUN apt-get update && apt-get install -y \
@@ -61,48 +59,11 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
-# Prepare ccache
-RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
-RUN ln -s /usr/bin/ccache /usr/local/bin/g++
-RUN ln -s /usr/bin/ccache /usr/local/bin/cc
-RUN ln -s /usr/bin/ccache /usr/local/bin/c++
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang
-RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-
-##################
-# C++ dependencies
-RUN apt-get update && apt-get -y install libgflags-dev libgtest-dev libc++-dev clang
-
-#################
-# C# dependencies
-
-# Update to a newer version of mono
-RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
-RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
-RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
-RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
-RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
-
-# Install dependencies
-RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
- mono-devel \
- nunit \
- nunit-console \
- monodevelop
-
-# Download NuGet
-RUN cd /var/local && wget www.nuget.org/NuGet.exe
-ENV NUGET mono /var/local/NuGet.exe
-
-##################
-# Node dependencies
-
-# Install nvm
-RUN touch .profile
-RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
-RUN /bin/bash -l -c "nvm install 0.12 && npm config set cache /tmp/npm-cache"
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
-##################
+#==================
# Ruby dependencies
# Install rvm
@@ -117,45 +78,19 @@ RUN /bin/bash -l -c "echo 'export PATH=/usr/local/rvm/bin:$PATH' >> ~/.bashrc"
RUN /bin/bash -l -c "echo 'rvm --default use ruby-2.1' >> ~/.bashrc"
RUN /bin/bash -l -c "gem install bundler --no-ri --no-rdoc"
-##################
-# Python dependencies
-
-# Install dependencies
-
-RUN apt-get update && apt-get install -y \
- python-all-dev \
- python3-all-dev \
- python-pip \
- python-virtualenv
-
-# Install Python packages from PyPI
-RUN pip install futures==2.2.0 enum34==1.0.4 protobuf==3.0.0a2
-
-# For sanity test
-RUN pip install simplejson mako
-
-##################
-# PHP dependencies
-
-# Install dependencies
-
-RUN /bin/bash -l -c "echo 'deb http://packages.dotdeb.org wheezy-php55 all' \
- >> /etc/apt/sources.list.d/dotdeb.list"
-RUN /bin/bash -l -c "echo 'deb-src http://packages.dotdeb.org wheezy-php55 all' \
- >> /etc/apt/sources.list.d/dotdeb.list"
-RUN wget http://www.dotdeb.org/dotdeb.gpg -O- | apt-key add -
-
-RUN apt-get update && apt-get install -y \
- git php5 php5-dev phpunit unzip
+# Prepare ccache
+RUN ln -s /usr/bin/ccache /usr/local/bin/gcc
+RUN ln -s /usr/bin/ccache /usr/local/bin/g++
+RUN ln -s /usr/bin/ccache /usr/local/bin/cc
+RUN ln -s /usr/bin/ccache /usr/local/bin/c++
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang
+RUN ln -s /usr/bin/ccache /usr/local/bin/clang++
-##################
+#======================
# Zookeeper dependencies
+# TODO(jtattermusch): is zookeeper still needed?
RUN apt-get install -y libzookeeper-mt-dev
-##################
-# Build profiling
-RUN apt-get install -y time
-
RUN mkdir /var/local/jenkins
# Define the default command.
diff --git a/tools/dockerfile/grpc_sanity/Dockerfile b/tools/dockerfile/test/sanity/Dockerfile
index 8833141832..1935f67560 100644
--- a/tools/dockerfile/grpc_sanity/Dockerfile
+++ b/tools/dockerfile/test/sanity/Dockerfile
@@ -27,8 +27,6 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-# Dockerfile for running gRPC sanity tests
-
FROM debian:jessie
# Install Git and basic packages.
@@ -61,22 +59,23 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
-##################
+#================
+# Build profiling
+RUN apt-get update && apt-get install -y time && apt-get clean
+
+#========================
# Sanity test dependencies
RUN apt-get update && apt-get install -y python-pip
RUN pip install simplejson mako
-##################
-# Docker "inception".
+#===================
+# Docker "inception"
# Note this is quite the ugly hack.
# This makes sure that the docker binary we inject has its dependencies.
+RUN apt-get install libsystemd-journal0
RUN curl https://get.docker.com/ | sh
RUN apt-get remove --purge -y docker-engine
-##################
-# Build profiling
-RUN apt-get install -y time
-
RUN mkdir /var/local/jenkins
# Define the default command.
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index cdb998d59c..5de1a15604 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.13.0.0
+PROJECT_NUMBER = 0.14.0-dev
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index 558ec9d394..bd724d8bda 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC C++"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.13.0.0
+PROJECT_NUMBER = 0.14.0-dev
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index a3b458163c..a9b14c8aff 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Core"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.13.0.0
+PROJECT_NUMBER = 0.14.0-dev
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -761,11 +761,18 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.
INPUT = include/grpc/grpc_security.h \
+include/grpc/impl/codegen/byte_buffer.h \
+include/grpc/impl/codegen/compression_types.h \
+include/grpc/impl/codegen/connectivity_state.h \
+include/grpc/impl/codegen/grpc_types.h \
+include/grpc/impl/codegen/propagation_bits.h \
+include/grpc/impl/codegen/status.h \
include/grpc/byte_buffer.h \
include/grpc/byte_buffer_reader.h \
include/grpc/compression.h \
include/grpc/grpc.h \
include/grpc/status.h \
+include/grpc/census.h \
include/grpc/support/alloc.h \
include/grpc/support/atm.h \
include/grpc/support/atm_gcc_atomic.h \
@@ -799,22 +806,15 @@ include/grpc/impl/codegen/atm.h \
include/grpc/impl/codegen/atm_gcc_atomic.h \
include/grpc/impl/codegen/atm_gcc_sync.h \
include/grpc/impl/codegen/atm_win32.h \
-include/grpc/impl/codegen/byte_buffer.h \
-include/grpc/impl/codegen/compression_types.h \
-include/grpc/impl/codegen/connectivity_state.h \
-include/grpc/impl/codegen/grpc_types.h \
include/grpc/impl/codegen/log.h \
include/grpc/impl/codegen/port_platform.h \
-include/grpc/impl/codegen/propagation_bits.h \
include/grpc/impl/codegen/slice.h \
include/grpc/impl/codegen/slice_buffer.h \
-include/grpc/impl/codegen/status.h \
include/grpc/impl/codegen/sync.h \
include/grpc/impl/codegen/sync_generic.h \
include/grpc/impl/codegen/sync_posix.h \
include/grpc/impl/codegen/sync_win32.h \
-include/grpc/impl/codegen/time.h \
-include/grpc/census.h
+include/grpc/impl/codegen/time.h
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index e91b47c6f4..b626843233 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -40,7 +40,7 @@ PROJECT_NAME = "GRPC Core"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-PROJECT_NUMBER = 0.13.0.0
+PROJECT_NUMBER = 0.14.0-dev
# Using the PROJECT_BRIEF tag one can provide an optional one line description
# for a project that appears at the top of each page and should give viewer a
@@ -761,59 +761,17 @@ WARN_LOGFILE =
# Note: If this tag is empty the current directory is searched.
INPUT = include/grpc/grpc_security.h \
-include/grpc/byte_buffer.h \
-include/grpc/byte_buffer_reader.h \
-include/grpc/compression.h \
-include/grpc/grpc.h \
-include/grpc/status.h \
-include/grpc/support/alloc.h \
-include/grpc/support/atm.h \
-include/grpc/support/atm_gcc_atomic.h \
-include/grpc/support/atm_gcc_sync.h \
-include/grpc/support/atm_win32.h \
-include/grpc/support/avl.h \
-include/grpc/support/cmdline.h \
-include/grpc/support/cpu.h \
-include/grpc/support/histogram.h \
-include/grpc/support/host_port.h \
-include/grpc/support/log.h \
-include/grpc/support/log_win32.h \
-include/grpc/support/port_platform.h \
-include/grpc/support/slice.h \
-include/grpc/support/slice_buffer.h \
-include/grpc/support/string_util.h \
-include/grpc/support/subprocess.h \
-include/grpc/support/sync.h \
-include/grpc/support/sync_generic.h \
-include/grpc/support/sync_posix.h \
-include/grpc/support/sync_win32.h \
-include/grpc/support/thd.h \
-include/grpc/support/time.h \
-include/grpc/support/tls.h \
-include/grpc/support/tls_gcc.h \
-include/grpc/support/tls_msvc.h \
-include/grpc/support/tls_pthread.h \
-include/grpc/support/useful.h \
-include/grpc/impl/codegen/alloc.h \
-include/grpc/impl/codegen/atm.h \
-include/grpc/impl/codegen/atm_gcc_atomic.h \
-include/grpc/impl/codegen/atm_gcc_sync.h \
-include/grpc/impl/codegen/atm_win32.h \
include/grpc/impl/codegen/byte_buffer.h \
include/grpc/impl/codegen/compression_types.h \
include/grpc/impl/codegen/connectivity_state.h \
include/grpc/impl/codegen/grpc_types.h \
-include/grpc/impl/codegen/log.h \
-include/grpc/impl/codegen/port_platform.h \
include/grpc/impl/codegen/propagation_bits.h \
-include/grpc/impl/codegen/slice.h \
-include/grpc/impl/codegen/slice_buffer.h \
include/grpc/impl/codegen/status.h \
-include/grpc/impl/codegen/sync.h \
-include/grpc/impl/codegen/sync_generic.h \
-include/grpc/impl/codegen/sync_posix.h \
-include/grpc/impl/codegen/sync_win32.h \
-include/grpc/impl/codegen/time.h \
+include/grpc/byte_buffer.h \
+include/grpc/byte_buffer_reader.h \
+include/grpc/compression.h \
+include/grpc/grpc.h \
+include/grpc/status.h \
include/grpc/census.h \
src/core/security/auth_filters.h \
src/core/security/base64.h \
@@ -942,16 +900,6 @@ src/core/transport/metadata_batch.h \
src/core/transport/static_metadata.h \
src/core/transport/transport.h \
src/core/transport/transport_impl.h \
-src/core/profiling/timers.h \
-src/core/support/block_annotate.h \
-src/core/support/env.h \
-src/core/support/file.h \
-src/core/support/murmur_hash.h \
-src/core/support/stack_lockfree.h \
-src/core/support/string.h \
-src/core/support/string_win32.h \
-src/core/support/thd_internal.h \
-src/core/support/time_precise.h \
src/core/census/aggregation.h \
src/core/census/rpc_metric_id.h \
src/core/httpcli/httpcli_security_connector.c \
@@ -1102,6 +1050,63 @@ src/core/transport/metadata_batch.c \
src/core/transport/static_metadata.c \
src/core/transport/transport.c \
src/core/transport/transport_op_string.c \
+src/core/census/context.c \
+src/core/census/initialize.c \
+src/core/census/operation.c \
+src/core/census/placeholders.c \
+src/core/census/tracing.c \
+include/grpc/support/alloc.h \
+include/grpc/support/atm.h \
+include/grpc/support/atm_gcc_atomic.h \
+include/grpc/support/atm_gcc_sync.h \
+include/grpc/support/atm_win32.h \
+include/grpc/support/avl.h \
+include/grpc/support/cmdline.h \
+include/grpc/support/cpu.h \
+include/grpc/support/histogram.h \
+include/grpc/support/host_port.h \
+include/grpc/support/log.h \
+include/grpc/support/log_win32.h \
+include/grpc/support/port_platform.h \
+include/grpc/support/slice.h \
+include/grpc/support/slice_buffer.h \
+include/grpc/support/string_util.h \
+include/grpc/support/subprocess.h \
+include/grpc/support/sync.h \
+include/grpc/support/sync_generic.h \
+include/grpc/support/sync_posix.h \
+include/grpc/support/sync_win32.h \
+include/grpc/support/thd.h \
+include/grpc/support/time.h \
+include/grpc/support/tls.h \
+include/grpc/support/tls_gcc.h \
+include/grpc/support/tls_msvc.h \
+include/grpc/support/tls_pthread.h \
+include/grpc/support/useful.h \
+include/grpc/impl/codegen/alloc.h \
+include/grpc/impl/codegen/atm.h \
+include/grpc/impl/codegen/atm_gcc_atomic.h \
+include/grpc/impl/codegen/atm_gcc_sync.h \
+include/grpc/impl/codegen/atm_win32.h \
+include/grpc/impl/codegen/log.h \
+include/grpc/impl/codegen/port_platform.h \
+include/grpc/impl/codegen/slice.h \
+include/grpc/impl/codegen/slice_buffer.h \
+include/grpc/impl/codegen/sync.h \
+include/grpc/impl/codegen/sync_generic.h \
+include/grpc/impl/codegen/sync_posix.h \
+include/grpc/impl/codegen/sync_win32.h \
+include/grpc/impl/codegen/time.h \
+src/core/profiling/timers.h \
+src/core/support/block_annotate.h \
+src/core/support/env.h \
+src/core/support/file.h \
+src/core/support/murmur_hash.h \
+src/core/support/stack_lockfree.h \
+src/core/support/string.h \
+src/core/support/string_win32.h \
+src/core/support/thd_internal.h \
+src/core/support/time_precise.h \
src/core/profiling/basic_timers.c \
src/core/profiling/stap_timers.c \
src/core/support/alloc.c \
@@ -1144,12 +1149,7 @@ src/core/support/time_posix.c \
src/core/support/time_precise.c \
src/core/support/time_win32.c \
src/core/support/tls_pthread.c \
-src/core/support/wrap_memcpy.c \
-src/core/census/context.c \
-src/core/census/initialize.c \
-src/core/census/operation.c \
-src/core/census/placeholders.c \
-src/core/census/tracing.c
+src/core/support/wrap_memcpy.c
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/jenkins/build_and_run_docker.sh b/tools/jenkins/build_and_run_docker.sh
index b77cd0aebb..92dbbc6f38 100755
--- a/tools/jenkins/build_and_run_docker.sh
+++ b/tools/jenkins/build_and_run_docker.sh
@@ -37,9 +37,6 @@ cd $(dirname $0)/../..
git_root=$(pwd)
cd -
-# Create a local branch so the child Docker script won't complain
-git branch -f jenkins-docker
-
# Inputs
# DOCKERFILE_DIR - Directory in which Dockerfile file is located.
# DOCKER_RUN_SCRIPT - Script to run under docker (relative to grpc repo root)
diff --git a/tools/jenkins/build_artifacts.sh b/tools/jenkins/build_artifacts.sh
index 9af553ae48..c0acbdfb27 100755
--- a/tools/jenkins/build_artifacts.sh
+++ b/tools/jenkins/build_artifacts.sh
@@ -39,4 +39,8 @@ set -ex -o igncr || set -ex
curr_platform="$platform"
unset platform # variable named 'platform' breaks the windows build
-python tools/run_tests/task_runner.py -f artifact $language $curr_platform $architecture
+if [ "$curr_platform" == "linux" ] && [ "$language" == "ruby" ] ; then
+ ./tools/run_tests/build_artifact_ruby.sh
+else
+ python tools/run_tests/task_runner.py -f artifact $language $curr_platform $architecture
+fi
diff --git a/tools/jenkins/build_docker_and_run_tests.sh b/tools/jenkins/build_docker_and_run_tests.sh
index 58163bb583..e2ac7518f0 100755
--- a/tools/jenkins/build_docker_and_run_tests.sh
+++ b/tools/jenkins/build_docker_and_run_tests.sh
@@ -33,8 +33,8 @@
set -ex
-cd `dirname $0`/../..
-git_root=`pwd`
+cd $(dirname $0)/../..
+git_root=$(pwd)
cd -
# Ensure existence of ccache directory
diff --git a/tools/jenkins/docker_run.sh b/tools/jenkins/docker_run.sh
index 49553aae2f..df7b6571d7 100755
--- a/tools/jenkins/docker_run.sh
+++ b/tools/jenkins/docker_run.sh
@@ -31,10 +31,16 @@
# This script is invoked by build_docker_* inside a docker
# container. You should never need to call this script on your own.
-set -e
+set -ex
-mkdir -p /var/local/git
-git clone --recursive "$EXTERNAL_GIT_ROOT" /var/local/git/grpc
+if [ "$RELATIVE_COPY_PATH" == "" ]
+then
+ mkdir -p /var/local/git
+ git clone --recursive "$EXTERNAL_GIT_ROOT" /var/local/git/grpc
+else
+ mkdir -p "/var/local/git/grpc/$RELATIVE_COPY_PATH"
+ cp -r "$EXTERNAL_GIT_ROOT/$RELATIVE_COPY_PATH"/* "/var/local/git/grpc/$RELATIVE_COPY_PATH"
+fi
if [ -x "$(command -v rvm)" ]
then
@@ -43,6 +49,4 @@ fi
cd /var/local/git/grpc
-nvm use 4 || true
-
$RUN_COMMAND
diff --git a/tools/jenkins/docker_run_tests.sh b/tools/jenkins/docker_run_tests.sh
index 26e5585d2d..282b857351 100755
--- a/tools/jenkins/docker_run_tests.sh
+++ b/tools/jenkins/docker_run_tests.sh
@@ -38,18 +38,11 @@ export ASAN_SYMBOLIZER_PATH=/usr/bin/llvm-symbolizer-3.5
# Ensure that programs depending on current-user-ownership of cache directories
# are satisfied (it's being mounted from outside the image).
-chown `whoami` $XDG_CACHE_HOME
+chown $(whoami) $XDG_CACHE_HOME
mkdir -p /var/local/git
git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
-nvm use 0.12 || true
-
-if [ -x "$(command -v rvm)" ]
-then
- rvm use ruby-2.1
-fi
-
mkdir -p reports
exit_code=0
diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py
index 159d803db3..9cd02c5e43 100644
--- a/tools/run_tests/artifact_targets.py
+++ b/tools/run_tests/artifact_targets.py
@@ -62,7 +62,7 @@ def create_jobspec(name, cmdline, environ=None, shell=False,
cmdline=cmdline,
environ=environ,
shortname='build_artifact.%s' % (name),
- timeout_seconds=10*60,
+ timeout_seconds=30*60,
flake_retries=flake_retries,
timeout_retries=timeout_retries,
shell=shell)
diff --git a/tools/run_tests/build_artifact_node.sh b/tools/run_tests/build_artifact_node.sh
index ec3fb6462f..8aeec79d08 100755
--- a/tools/run_tests/build_artifact_node.sh
+++ b/tools/run_tests/build_artifact_node.sh
@@ -28,8 +28,12 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+NODE_TARGET_ARCH=$1
+source ~/.nvm/nvm.sh
set -ex
+nvm use 4
+
cd $(dirname $0)/../..
rm -rf build
@@ -42,6 +46,6 @@ node_versions=( 0.10.41 0.12.0 1.0.0 1.1.0 2.0.0 3.0.0 4.0.0 5.0.0 )
for version in ${node_versions[@]}
do
- node-pre-gyp configure rebuild package testpackage --target=$version --target_arch=$1
+ node-pre-gyp configure rebuild package testpackage --target=$version --target_arch=$NODE_TARGET_ARCH
cp -r build/stage/* artifacts/
done
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh
index 48cf390f69..835fad83e1 100755
--- a/tools/run_tests/build_artifact_python.sh
+++ b/tools/run_tests/build_artifact_python.sh
@@ -39,11 +39,13 @@ then
pip install -rrequirements.txt
fi
-GRPC_PYTHON_BUILD_WITH_CYTHON=1 ${SETARCH_CMD} python setup.py \
- bdist_wheel \
- sdist \
+GRPC_PYTHON_USE_CUSTOM_BDIST=0 \
+GRPC_PYTHON_BUILD_WITH_CYTHON=1 \
+${SETARCH_CMD} python setup.py \
+ bdist_wheel \
+ sdist \
bdist_egg_grpc_custom
mkdir -p artifacts
-cp -r dist/* artifacts \ No newline at end of file
+cp -r dist/* artifacts
diff --git a/tools/run_tests/build_artifact_ruby.sh b/tools/run_tests/build_artifact_ruby.sh
index 482d128be3..2d97b4068b 100755
--- a/tools/run_tests/build_artifact_ruby.sh
+++ b/tools/run_tests/build_artifact_ruby.sh
@@ -27,16 +27,40 @@
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
set -ex
+SYSTEM=`uname | cut -f 1 -d_`
+
cd $(dirname $0)/../..
+set +ex
+[[ -s /etc/profile.d/rvm.sh ]] && . /etc/profile.d/rvm.sh
+[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"
+set -ex
+
+if [ "$SYSTEM" == "MSYS" ] ; then
+ SYSTEM=MINGW32
+fi
+if [ "$SYSTEM" == "MINGW64" ] ; then
+ SYSTEM=MINGW32
+fi
-${SETARCH_CMD} bundle install
+if [ "$SYSTEM" == "MINGW32" ] ; then
+ echo "Need Linux to build the Windows ruby gem."
+ exit 1
+fi
-${SETARCH_CMD} rake native gem
+set +ex
+rvm use default
+gem install bundler --update
+bundle install
+set -ex
+
+rake gem:native
+
+if [ "$SYSTEM" == "Darwin" ] ; then
+ rm `ls pkg/*.gem | grep -v darwin`
+fi
mkdir -p artifacts
cp pkg/*.gem artifacts
-
diff --git a/tools/run_tests/build_node.sh b/tools/run_tests/build_node.sh
index 8f2ab4413a..9c4af07185 100755
--- a/tools/run_tests/build_node.sh
+++ b/tools/run_tests/build_node.sh
@@ -29,8 +29,12 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+NODE_VERSION=$1
+source ~/.nvm/nvm.sh
set -ex
+nvm use $NODE_VERSION
+
CONFIG=${CONFIG:-opt}
# change to grpc repo root
diff --git a/tools/run_tests/build_package_node.sh b/tools/run_tests/build_package_node.sh
index e6360f979f..a8b9448973 100755
--- a/tools/run_tests/build_package_node.sh
+++ b/tools/run_tests/build_package_node.sh
@@ -28,13 +28,16 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+source ~/.nvm/nvm.sh
set -ex
+nvm use 4
+
cd $(dirname $0)/../..
mkdir -p artifacts/
-cp -r architecture={x86,x64},language=node,platform={windows,linux,macos}/artifacts/* artifacts/ || true
+cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=node,platform={windows,linux,macos}/artifacts/* artifacts/ || true
npm pack
-cp grpc-*.tgz artifacts/
+cp grpc-*.tgz artifacts/grpc.tgz
diff --git a/tools/run_tests/build_package_python.sh b/tools/run_tests/build_package_python.sh
new file mode 100755
index 0000000000..2511a6ae46
--- /dev/null
+++ b/tools/run_tests/build_package_python.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -ex
+
+cd $(dirname $0)/../..
+
+mkdir -p artifacts/
+
+# All the python packages have been built in the artifact phase already
+# and we only collect them here to deliver them to the distribtest phase.
+cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=python,platform={windows,linux,macos}/artifacts/* artifacts/ || true
+
+# TODO: all the artifact builder configurations generate a grpcio-VERSION.tar.gz
+# source distribution package, and only one of them will end up
+# in the artifacts/ directory. They should be all equivalent though.
diff --git a/tools/run_tests/build_package_ruby.sh b/tools/run_tests/build_package_ruby.sh
new file mode 100755
index 0000000000..1a5b94348d
--- /dev/null
+++ b/tools/run_tests/build_package_ruby.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+# Copyright 2016, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+set -ex
+
+cd $(dirname $0)/../..
+
+mkdir -p artifacts/
+
+# All the ruby packages have been built in the artifact phase already
+# and we only collect them here to deliver them to the distribtest phase.
+cp -r $EXTERNAL_GIT_ROOT/architecture={x86,x64},language=ruby,platform={windows,linux,macos}/artifacts/* artifacts/ || true
+
+# TODO: all the artifact builder configurations generate a grpc-VERSION.gem
+# source distribution package, and only one of them will end up
+# in the artifacts/ directory. They should be all equivalent though.
diff --git a/tools/run_tests/distribtest_targets.py b/tools/run_tests/distribtest_targets.py
index 08fc9f1da6..a46917c71e 100644
--- a/tools/run_tests/distribtest_targets.py
+++ b/tools/run_tests/distribtest_targets.py
@@ -38,6 +38,7 @@ def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={},
"""Creates jobspec for a task running under docker."""
environ = environ.copy()
environ['RUN_COMMAND'] = shell_command
+ environ['RELATIVE_COPY_PATH'] = 'test/distrib'
docker_args=[]
for k,v in environ.iteritems():
@@ -54,32 +55,90 @@ def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={},
return jobspec
+def create_jobspec(name, cmdline, environ=None, shell=False,
+ flake_retries=0, timeout_retries=0):
+ """Creates jobspec."""
+ jobspec = jobset.JobSpec(
+ cmdline=cmdline,
+ environ=environ,
+ shortname='distribtest.%s' % (name),
+ timeout_seconds=10*60,
+ flake_retries=flake_retries,
+ timeout_retries=timeout_retries,
+ shell=shell)
+ return jobspec
+
+
class CSharpDistribTest(object):
"""Tests C# NuGet package"""
- def __init__(self, platform, arch, docker_suffix):
- self.name = 'csharp_nuget_%s_%s_%s' % (platform, arch, docker_suffix)
+ def __init__(self, platform, arch, docker_suffix=None):
+ self.name = 'csharp_nuget_%s_%s' % (platform, arch)
self.platform = platform
self.arch = arch
self.docker_suffix = docker_suffix
- self.labels = ['distribtest', 'csharp', platform, arch, docker_suffix]
+ self.labels = ['distribtest', 'csharp', platform, arch]
+ if docker_suffix:
+ self.name += '_%s' % docker_suffix
+ self.labels.append(docker_suffix)
def pre_build_jobspecs(self):
return []
def build_jobspec(self):
- if not self.platform == 'linux':
- raise Exception("Not supported yet.")
-
- return create_docker_jobspec(self.name,
+ if self.platform == 'linux':
+ return create_docker_jobspec(self.name,
'tools/dockerfile/distribtest/csharp_%s_%s' % (
self.docker_suffix,
self.arch),
'test/distrib/csharp/run_distrib_test.sh')
+ elif self.platform == 'macos':
+ return create_jobspec(self.name,
+ ['test/distrib/csharp/run_distrib_test.sh'],
+ environ={'EXTERNAL_GIT_ROOT': '../../..'})
+ else:
+ raise Exception("Not supported yet.")
def __str__(self):
return self.name
+class NodeDistribTest(object):
+ """Tests Node package"""
+
+ def __init__(self, platform, arch, docker_suffix, node_version):
+ self.name = 'node_npm_%s_%s_%s' % (platform, arch, node_version)
+ self.platform = platform
+ self.arch = arch
+ self.node_version = node_version
+ self.labels = ['distribtest', 'node', platform, arch,
+ 'node-%s' % node_version]
+ if docker_suffix is not None:
+ self.name += '_%s' % docker_suffix
+ self.docker_suffix = docker_suffix
+ self.labels.append(docker_suffix)
+
+ def pre_build_jobspecs(self):
+ return []
+
+ def build_jobspec(self):
+ if self.platform == 'linux':
+ return create_docker_jobspec(self.name,
+ 'tools/dockerfile/distribtest/node_%s_%s' % (
+ self.docker_suffix,
+ self.arch),
+ 'test/distrib/node/run_distrib_test.sh %s' % (
+ self.node_version))
+ elif self.platform == 'macos':
+ return create_jobspec(self.name,
+ ['test/distrib/node/run_distrib_test.sh',
+ str(self.node_version)],
+ environ={'EXTERNAL_GIT_ROOT': '../../..'})
+ else:
+ raise Exception("Not supported yet.")
+
+ def __str__(self):
+ return self.name
+
class PythonDistribTest(object):
"""Tests Python package"""
@@ -145,6 +204,7 @@ def targets():
CSharpDistribTest('linux', 'x64', 'ubuntu1504'),
CSharpDistribTest('linux', 'x64', 'ubuntu1510'),
CSharpDistribTest('linux', 'x64', 'ubuntu1604'),
+ CSharpDistribTest('macos', 'x86'),
PythonDistribTest('linux', 'x64', 'wheezy'),
PythonDistribTest('linux', 'x64', 'jessie'),
PythonDistribTest('linux', 'x86', 'jessie'),
@@ -176,5 +236,15 @@ def targets():
RubyDistribTest('linux', 'x64', 'ubuntu1504'),
RubyDistribTest('linux', 'x64', 'ubuntu1510'),
RubyDistribTest('linux', 'x64', 'ubuntu1604'),
+ NodeDistribTest('macos', 'x64', None, '0.10'),
+ NodeDistribTest('macos', 'x64', None, '0.12'),
+ NodeDistribTest('macos', 'x64', None, '3'),
+ NodeDistribTest('macos', 'x64', None, '4'),
+ NodeDistribTest('macos', 'x64', None, '5'),
+ NodeDistribTest('linux', 'x86', 'jessie', '4')
+ ] + [
+ NodeDistribTest('linux', 'x64', os, version)
+ for os in ('wheezy', 'jessie', 'ubuntu1204', 'ubuntu1404',
+ 'ubuntu1504', 'ubuntu1510', 'ubuntu1604')
+ for version in ('0.10', '0.12', '3', '4', '5')
]
-
diff --git a/tools/run_tests/interop_html_report.template b/tools/run_tests/interop_html_report.template
index 114a508c31..46cce426b7 100644
--- a/tools/run_tests/interop_html_report.template
+++ b/tools/run_tests/interop_html_report.template
@@ -64,17 +64,8 @@
% endif
</%def>
-% if num_failures > 1:
- <p><h2><font color="red">${num_failures} tests failed!</font></h2></p>
-% elif num_failures:
- <p><h2><font color="red">${num_failures} test failed!</font></h2></p>
-% else:
- <p><h2><font color="green">All tests passed!</font></h2></p>
-% endif
-
-% if cloud_to_prod:
+<%def name="display_cloud_to_prod_result(prod_server)">
## Each column header is the client language.
- <h2>Cloud to Prod</h2>
<table style="width:100%" border="1">
<tr bgcolor="#00BFFF">
<th>Client languages &#9658;<br/>Test Cases &#9660;</th>
@@ -87,15 +78,32 @@
% for client_lang in client_langs:
<%
if test_case in auth_test_cases:
- shortname = 'cloud_to_prod_auth:%s:%s' % (client_lang, test_case)
+ shortname = 'cloud_to_prod_auth:%s:%s:%s' % (
+ prod_server, client_lang, test_case)
else:
- shortname = 'cloud_to_prod:%s:%s' % (client_lang, test_case)
+ shortname = 'cloud_to_prod:%s:%s:%s' % (
+ prod_server, client_lang, test_case)
%>
${fill_one_test_result(shortname, resultset)}
% endfor
</tr>
% endfor
</table>
+</%def>
+
+% if num_failures > 1:
+ <p><h2><font color="red">${num_failures} tests failed!</font></h2></p>
+% elif num_failures:
+ <p><h2><font color="red">${num_failures} test failed!</font></h2></p>
+% else:
+ <p><h2><font color="green">All tests passed!</font></h2></p>
+% endif
+
+% if cloud_to_prod:
+ % for prod_server in prod_servers:
+ <h2>Cloud to ${prod_server}</h2>
+ ${display_cloud_to_prod_result(prod_server)}
+ % endfor
% endif
% if http2_interop:
@@ -108,7 +116,9 @@
<th>${server_lang}</th>
% endfor
% if cloud_to_prod:
- <th>prod</th>
+ % for prod_server in prod_servers:
+ <th>${prod_server}</th>
+ % endfor
% endif
</tr>
% for test_case in http2_cases:
@@ -122,8 +132,10 @@
${fill_one_http2_test_result(shortname, resultset)}
% endfor
% if cloud_to_prod:
- <% shortname = 'cloud_to_prod:http2:%s' % test_case %>
- ${fill_one_http2_test_result(shortname, resultset)}
+ % for prod_server in prod_servers:
+ <% shortname = 'cloud_to_prod:%s:http2:%s' % (prod_server, test_case) %>
+ ${fill_one_http2_test_result(shortname, resultset)}
+ % endfor
% endif
</tr>
% endfor
diff --git a/tools/run_tests/package_targets.py b/tools/run_tests/package_targets.py
index 997bc57cc5..4ca8279f1b 100644
--- a/tools/run_tests/package_targets.py
+++ b/tools/run_tests/package_targets.py
@@ -68,11 +68,11 @@ def create_jobspec(name, cmdline, environ=None, cwd=None, shell=False,
return jobspec
-class CSharpNugetTarget:
+class CSharpPackage:
"""Builds C# nuget packages."""
def __init__(self):
- self.name = 'csharp_nuget'
+ self.name = 'csharp_package'
self.labels = ['package', 'csharp', 'windows']
def pre_build_jobspecs(self):
@@ -87,11 +87,12 @@ class CSharpNugetTarget:
def __str__(self):
return self.name
-class NodeNpmBinaryTarget:
- """Builds Node NPM package and collects binaries"""
+
+class NodePackage:
+ """Builds Node NPM package and collects precompiled binaries"""
def __init__(self):
- self.name = 'node_npm_binary'
+ self.name = 'node_package'
self.labels = ['package', 'node', 'linux']
def pre_build_jobspecs(self):
@@ -103,6 +104,44 @@ class NodeNpmBinaryTarget:
'tools/dockerfile/grpc_artifact_linux_x64',
'tools/run_tests/build_package_node.sh')
+
+class RubyPackage:
+ """Collects ruby gems created in the artifact phase"""
+
+ def __init__(self):
+ self.name = 'ruby_package'
+ self.labels = ['package', 'ruby', 'linux']
+
+ def pre_build_jobspecs(self):
+ return []
+
+ def build_jobspec(self):
+ return create_docker_jobspec(
+ self.name,
+ 'tools/dockerfile/grpc_artifact_linux_x64',
+ 'tools/run_tests/build_package_ruby.sh')
+
+
+class PythonPackage:
+ """Collects python eggs and wheels created in the artifact phase"""
+
+ def __init__(self):
+ self.name = 'python_package'
+ self.labels = ['package', 'python', 'linux']
+
+ def pre_build_jobspecs(self):
+ return []
+
+ def build_jobspec(self):
+ return create_docker_jobspec(
+ self.name,
+ 'tools/dockerfile/grpc_artifact_linux_x64',
+ 'tools/run_tests/build_package_python.sh')
+
+
def targets():
"""Gets list of supported targets"""
- return [CSharpNugetTarget(), NodeNpmBinaryTarget()]
+ return [CSharpPackage(),
+ NodePackage(),
+ RubyPackage(),
+ PythonPackage()]
diff --git a/tools/run_tests/pre_build_csharp.sh b/tools/run_tests/pre_build_csharp.sh
index 4341c0256f..32466c2177 100755
--- a/tools/run_tests/pre_build_csharp.sh
+++ b/tools/run_tests/pre_build_csharp.sh
@@ -39,8 +39,3 @@ if [ -x "$(command -v nuget)" ]
then
nuget restore Grpc.sln
fi
-
-if [ -n "$NUGET" ]
-then
- $NUGET restore Grpc.sln
-fi
diff --git a/tools/run_tests/pre_build_node.sh b/tools/run_tests/pre_build_node.sh
index 28ce354f27..11f46d60fc 100755
--- a/tools/run_tests/pre_build_node.sh
+++ b/tools/run_tests/pre_build_node.sh
@@ -1,6 +1,6 @@
#!/bin/bash
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -29,8 +29,12 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+NODE_VERSION=$1
+source ~/.nvm/nvm.sh
set -ex
+nvm use $NODE_VERSION
+
export GRPC_CONFIG=${CONFIG:-opt}
# Expire cache after 1 week
diff --git a/tools/run_tests/report_utils.py b/tools/run_tests/report_utils.py
index 35f2069bee..0032a98523 100644
--- a/tools/run_tests/report_utils.py
+++ b/tools/run_tests/report_utils.py
@@ -1,4 +1,4 @@
-# Copyright 2015, Google Inc.
+# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -77,7 +77,7 @@ def render_junit_xml_report(resultset, xml_report):
def render_interop_html_report(
client_langs, server_langs, test_cases, auth_test_cases, http2_cases,
- resultset, num_failures, cloud_to_prod, http2_interop):
+ resultset, num_failures, cloud_to_prod, prod_servers, http2_interop):
"""Generate HTML report for interop tests."""
template_file = 'tools/run_tests/interop_html_report.template'
try:
@@ -94,6 +94,7 @@ def render_interop_html_report(
sorted_http2_cases = sorted(http2_cases)
sorted_client_langs = sorted(client_langs)
sorted_server_langs = sorted(server_langs)
+ sorted_prod_servers = sorted(prod_servers)
args = {'client_langs': sorted_client_langs,
'server_langs': sorted_server_langs,
@@ -103,6 +104,7 @@ def render_interop_html_report(
'resultset': resultset,
'num_failures': num_failures,
'cloud_to_prod': cloud_to_prod,
+ 'prod_servers': sorted_prod_servers,
'http2_interop': http2_interop}
html_report_out_dir = 'reports'
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index fbc3b3cdf6..76be932aef 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -422,12 +422,13 @@ def _job_kill_handler(job):
time.sleep(2)
-def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
+def cloud_to_prod_jobspec(language, test_case, server_host_name,
+ server_host_detail, docker_image=None, auth=False):
"""Creates jobspec for cloud-to-prod interop test"""
container_name = None
cmdargs = [
- '--server_host_override=grpc-test.sandbox.googleapis.com',
- '--server_host=grpc-test.sandbox.googleapis.com',
+ '--server_host=%s' % server_host_detail[0],
+ '--server_host_override=%s' % server_host_detail[1],
'--server_port=443',
'--use_tls=true',
'--test_case=%s' % test_case]
@@ -440,7 +441,8 @@ def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
cwd = language.client_cwd
if docker_image:
- container_name = dockerjob.random_name('interop_client_%s' % language.safename)
+ container_name = dockerjob.random_name('interop_client_%s' %
+ language.safename)
cmdline = docker_run_cmdline(cmdline,
image=docker_image,
cwd=cwd,
@@ -455,7 +457,8 @@ def cloud_to_prod_jobspec(language, test_case, docker_image=None, auth=False):
cmdline=cmdline,
cwd=cwd,
environ=environ,
- shortname='%s:%s:%s' % (suite_name, language, test_case),
+ shortname='%s:%s:%s:%s' % (suite_name, server_host_name, language,
+ test_case),
timeout_seconds=90,
flake_retries=5 if args.allow_flakes else 0,
timeout_retries=2 if args.allow_flakes else 0,
@@ -491,7 +494,7 @@ def cloud_to_cloud_jobspec(language, test_case, server_name, server_host,
cwd=cwd,
environ=environ,
shortname='cloud_to_cloud:%s:%s_server:%s' % (language, server_name,
- test_case),
+ test_case),
timeout_seconds=90,
flake_retries=5 if args.allow_flakes else 0,
timeout_retries=2 if args.allow_flakes else 0,
@@ -532,10 +535,10 @@ def build_interop_image_jobspec(language, tag=None):
env['TTY_FLAG'] = '-t'
# This env variable is used to get around the github rate limit
# error when running the PHP `composer install` command
- # TODO(stanleycheung): find a more elegant way to do this
- if language.safename == 'php' and os.path.exists('/var/local/.composer/auth.json'):
+ host_file = '%s/.composer/auth.json' % os.environ['HOME']
+ if language.safename == 'php' and os.path.exists(host_file):
env['BUILD_INTEROP_DOCKER_EXTRA_ARGS'] = \
- '-v /var/local/.composer/auth.json:/root/.composer/auth.json:ro'
+ '-v %s:/root/.composer/auth.json:ro' % host_file
build_job = jobset.JobSpec(
cmdline=['tools/jenkins/build_interop_image.sh'],
environ=env,
@@ -572,6 +575,21 @@ def aggregate_http2_results(stdout):
'percent': 1.0 * passed / (passed + failed)
}
+# A dictionary of prod servers to test.
+# Format: server_name: (server_host, server_host_override, errors_allowed)
+# TODO(adelez): implement logic for errors_allowed where if the indicated tests
+# fail, they don't impact the overall test result.
+prod_servers = {
+ 'default': ('grpc-test.sandbox.googleapis.com',
+ 'grpc-test.sandbox.googleapis.com', False),
+ 'gateway_v2': ('grpc-test2.sandbox.googleapis.com',
+ 'grpc-test2.sandbox.googleapis.com', True),
+ 'cloud_gateway': ('216.239.32.255', 'grpc-test.sandbox.googleapis.com',
+ False),
+ 'cloud_gateway_v2': ('216.239.32.255', 'grpc-test2.sandbox.googleapis.com',
+ True)
+}
+
argp = argparse.ArgumentParser(description='Run interop tests.')
argp.add_argument('-l', '--language',
choices=['all'] + sorted(_LANGUAGES),
@@ -589,6 +607,12 @@ argp.add_argument('--cloud_to_prod_auth',
action='store_const',
const=True,
help='Run cloud_to_prod_auth tests.')
+argp.add_argument('--prod_servers',
+ choices=prod_servers.keys(),
+ default=['default'],
+ nargs='+',
+ help=('The servers to run cloud_to_prod and '
+ 'cloud_to_prod_auth tests against.'))
argp.add_argument('-s', '--server',
choices=['all'] + sorted(_SERVERS),
action='append',
@@ -688,32 +712,37 @@ try:
server_jobs[lang] = job
server_addresses[lang] = ('localhost', job.mapped_port(_DEFAULT_SERVER_PORT))
-
jobs = []
if args.cloud_to_prod:
- for language in languages:
- for test_case in _TEST_CASES:
- if not test_case in language.unimplemented_test_cases():
- if not test_case in _SKIP_ADVANCED + _SKIP_COMPRESSION:
- test_job = cloud_to_prod_jobspec(language, test_case,
- docker_image=docker_images.get(str(language)))
- jobs.append(test_job)
-
- if args.http2_interop:
- for test_case in _HTTP2_TEST_CASES:
- test_job = cloud_to_prod_jobspec(http2Interop, test_case,
- docker_image=docker_images.get(str(http2Interop)))
- jobs.append(test_job)
-
+ for server_host_name in args.prod_servers:
+ for language in languages:
+ for test_case in _TEST_CASES:
+ if not test_case in language.unimplemented_test_cases():
+ if not test_case in _SKIP_ADVANCED + _SKIP_COMPRESSION:
+ test_job = cloud_to_prod_jobspec(
+ language, test_case, server_host_name,
+ prod_servers[server_host_name],
+ docker_image=docker_images.get(str(language)))
+ jobs.append(test_job)
+
+ if args.http2_interop:
+ for test_case in _HTTP2_TEST_CASES:
+ test_job = cloud_to_prod_jobspec(
+ http2Interop, test_case, server_host_name,
+ prod_servers[server_host_name],
+ docker_image=docker_images.get(str(http2Interop)))
+ jobs.append(test_job)
if args.cloud_to_prod_auth:
- for language in languages:
- for test_case in _AUTH_TEST_CASES:
- if not test_case in language.unimplemented_test_cases():
- test_job = cloud_to_prod_jobspec(language, test_case,
- docker_image=docker_images.get(str(language)),
- auth=True)
- jobs.append(test_job)
+ for server_host_name in args.prod_servers:
+ for language in languages:
+ for test_case in _AUTH_TEST_CASES:
+ if not test_case in language.unimplemented_test_cases():
+ test_job = cloud_to_prod_jobspec(
+ language, test_case, server_host_name,
+ prod_servers[server_host_name],
+ docker_image=docker_images.get(str(language)), auth=True)
+ jobs.append(test_job)
for server in args.override_server:
server_name = server[0]
@@ -773,7 +802,8 @@ try:
report_utils.render_interop_html_report(
set([str(l) for l in languages]), servers, _TEST_CASES, _AUTH_TEST_CASES,
_HTTP2_TEST_CASES, resultset, num_failures,
- args.cloud_to_prod_auth or args.cloud_to_prod, args.http2_interop)
+ args.cloud_to_prod_auth or args.cloud_to_prod, args.prod_servers,
+ args.http2_interop)
finally:
# Check if servers are still running.
diff --git a/tools/run_tests/run_node.sh b/tools/run_tests/run_node.sh
index f93c9c30cb..40f61d77cc 100755
--- a/tools/run_tests/run_node.sh
+++ b/tools/run_tests/run_node.sh
@@ -28,8 +28,12 @@
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+NODE_VERSION=$1
+source ~/.nvm/nvm.sh
set -ex
+nvm use $NODE_VERSION
+
CONFIG=${CONFIG:-opt}
# change to grpc repo root
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 9e7b97c6a2..f405866442 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -186,7 +186,7 @@ class CLanguage(object):
return True
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/cxx_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return self.make_target
@@ -194,13 +194,17 @@ class CLanguage(object):
class NodeLanguage(object):
+ def __init__(self):
+ self.node_version = '0.12'
+
def test_specs(self, config, args):
- return [config.job_spec(['tools/run_tests/run_node.sh'], None,
+ return [config.job_spec(['tools/run_tests/run_node.sh', self.node_version],
+ None,
environ=_FORCE_ENVIRON_FOR_WRAPPERS)]
def pre_build_steps(self):
# Default to 1 week cache expiration
- return [['tools/run_tests/pre_build_node.sh']]
+ return [['tools/run_tests/pre_build_node.sh', self.node_version]]
def make_targets(self, test_regex):
return []
@@ -209,7 +213,7 @@ class NodeLanguage(object):
return []
def build_steps(self):
- return [['tools/run_tests/build_node.sh']]
+ return [['tools/run_tests/build_node.sh', self.node_version]]
def post_tests_steps(self):
return []
@@ -221,7 +225,7 @@ class NodeLanguage(object):
return False
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/node_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return 'node'
@@ -255,7 +259,7 @@ class PhpLanguage(object):
return False
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/php_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return 'php'
@@ -311,7 +315,7 @@ class PythonLanguage(object):
return False
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/python_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return 'python'
@@ -345,7 +349,7 @@ class RubyLanguage(object):
return False
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/ruby_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return 'ruby'
@@ -430,7 +434,7 @@ class CSharpLanguage(object):
return False
def dockerfile_dir(self, config, arch):
- return None
+ return 'tools/dockerfile/test/csharp_jessie_%s' % _docker_arch_suffix(arch)
def __str__(self):
return 'csharp'
@@ -502,7 +506,7 @@ class Sanity(object):
return False
def dockerfile_dir(self, config, arch):
- return 'tools/dockerfile/grpc_sanity'
+ return 'tools/dockerfile/test/sanity'
def __str__(self):
return 'sanity'
@@ -626,19 +630,24 @@ def _windows_toolset_option(compiler):
sys.exit(1)
+def _docker_arch_suffix(arch):
+ """Returns suffix to dockerfile dir to use."""
+ if arch == 'default' or arch == 'x64':
+ return 'x64'
+ elif arch == 'x86':
+ return 'x86'
+ else:
+ print 'Architecture %s not supported with current settings.' % arch
+ sys.exit(1)
+
+
def _get_dockerfile_dir(language, cfg, arch):
"""Returns dockerfile to use"""
custom = language.dockerfile_dir(cfg, arch)
if custom:
return custom
else:
- if arch == 'default' or arch == 'x64':
- return 'tools/dockerfile/grpc_tests_multilang_x64'
- elif arch == 'x86':
- return 'tools/dockerfile/grpc_tests_multilang_x86'
- else:
- print 'Architecture %s not supported with current settings.' % arch
- sys.exit(1)
+ return 'tools/dockerfile/grpc_tests_multilang_%s' % _docker_arch_suffix(arch)
def runs_per_test_type(arg_str):
"""Auxilary function to parse the "runs_per_test" flag.
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index d2938ae3ca..ca8d09f65d 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -3,6 +3,8 @@
[
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -15,6 +17,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -27,8 +31,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -39,6 +43,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -63,6 +69,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -75,6 +83,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -87,6 +97,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -99,6 +111,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -111,6 +125,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -123,6 +139,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -135,6 +153,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -147,6 +167,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -159,6 +181,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -171,6 +195,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -183,6 +209,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -195,6 +223,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -207,6 +237,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -219,6 +251,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -231,6 +265,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -243,6 +279,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -255,6 +293,7 @@
},
{
"deps": [
+ "gpr",
"grpc"
],
"headers": [],
@@ -275,8 +314,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -287,8 +326,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -299,8 +338,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -311,8 +350,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -323,8 +362,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -335,8 +374,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -347,8 +386,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -359,8 +398,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -371,8 +410,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -383,8 +422,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -395,8 +434,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -407,8 +446,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -419,8 +458,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -431,8 +470,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -443,8 +482,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -455,8 +494,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -467,8 +506,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -479,6 +518,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -491,6 +532,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -503,6 +546,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -515,6 +560,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -527,6 +574,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -539,6 +588,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -551,6 +602,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -563,6 +616,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -575,6 +630,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -587,6 +644,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -599,6 +658,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -611,6 +672,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -623,6 +686,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -635,6 +700,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -647,6 +714,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -659,6 +728,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -671,6 +742,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -683,6 +756,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -695,6 +770,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -707,6 +784,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -719,6 +798,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -731,6 +812,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -743,6 +826,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -755,6 +840,7 @@
},
{
"deps": [
+ "gpr",
"grpc"
],
"headers": [],
@@ -766,6 +852,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -778,6 +866,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -790,6 +880,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -802,6 +894,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -814,6 +908,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -826,6 +922,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -838,6 +936,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -850,6 +950,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -862,8 +964,8 @@
},
{
"deps": [
- "grpc",
- "grpc_test_util"
+ "gpr",
+ "gpr_test_util"
],
"headers": [],
"language": "c",
@@ -874,6 +976,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -886,6 +990,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -898,6 +1004,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -910,6 +1018,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -922,6 +1032,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -934,6 +1046,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -946,6 +1060,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -959,6 +1075,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -971,6 +1089,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -983,6 +1103,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -995,6 +1117,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1007,6 +1131,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1019,6 +1145,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1031,6 +1159,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1043,6 +1173,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1055,6 +1187,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1067,6 +1201,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1079,6 +1215,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1091,6 +1229,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1103,6 +1243,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1115,6 +1257,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1127,6 +1271,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1139,6 +1285,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1151,6 +1299,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1163,6 +1313,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1177,6 +1329,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1192,6 +1346,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1207,6 +1363,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1221,6 +1379,7 @@
},
{
"deps": [
+ "gpr",
"grpc",
"grpc++"
],
@@ -1233,6 +1392,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1247,6 +1408,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1261,6 +1424,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1275,6 +1440,7 @@
},
{
"deps": [
+ "gpr",
"grpc",
"grpc++"
],
@@ -1287,6 +1453,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1300,6 +1468,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1324,6 +1494,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1337,6 +1509,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1351,6 +1525,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1366,6 +1542,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1380,6 +1558,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1450,6 +1630,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1464,6 +1646,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1479,6 +1663,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1494,6 +1680,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1506,6 +1694,7 @@
},
{
"deps": [
+ "gpr",
"grpc",
"grpc++",
"grpc++_test_config"
@@ -1524,6 +1713,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1538,6 +1729,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1554,6 +1747,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1569,6 +1764,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1585,6 +1782,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1601,6 +1800,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1622,6 +1823,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1644,6 +1847,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1668,6 +1873,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1682,6 +1889,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1697,6 +1906,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1711,6 +1922,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1725,6 +1938,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1739,6 +1954,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1752,6 +1969,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1766,6 +1985,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1801,6 +2022,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1816,6 +2039,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1831,6 +2056,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1845,6 +2072,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1863,6 +2092,7 @@
},
{
"deps": [
+ "gpr",
"grpc"
],
"headers": [],
@@ -1875,6 +2105,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1888,6 +2120,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1901,6 +2135,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1914,6 +2150,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1927,6 +2165,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1940,6 +2180,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1953,6 +2195,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1966,6 +2210,8 @@
{
"deps": [
"bad_client_test",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -1979,6 +2225,8 @@
{
"deps": [
"bad_ssl_test_server",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1992,6 +2240,8 @@
{
"deps": [
"bad_ssl_test_server",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2004,6 +2254,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2016,6 +2268,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2030,6 +2284,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2044,6 +2300,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2058,6 +2316,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2072,6 +2332,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2086,6 +2348,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2100,6 +2364,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2114,6 +2380,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2128,6 +2396,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2142,6 +2412,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2156,6 +2428,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2170,6 +2444,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2184,6 +2460,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2198,6 +2476,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2212,6 +2492,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2226,6 +2508,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2240,6 +2524,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2254,6 +2540,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2268,6 +2556,8 @@
"deps": [
"end2end_certs",
"end2end_tests",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2281,6 +2571,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2294,6 +2586,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2307,6 +2601,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2320,6 +2616,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2333,6 +2631,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2346,6 +2646,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2359,6 +2661,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2372,6 +2676,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2385,6 +2691,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2398,6 +2706,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2411,6 +2721,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2424,6 +2736,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2437,6 +2751,8 @@
{
"deps": [
"end2end_nosec_tests",
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2450,33 +2766,20 @@
{
"deps": [],
"headers": [
- "include/grpc/byte_buffer.h",
- "include/grpc/byte_buffer_reader.h",
- "include/grpc/census.h",
- "include/grpc/compression.h",
- "include/grpc/grpc.h",
- "include/grpc/grpc_security.h",
"include/grpc/impl/codegen/alloc.h",
"include/grpc/impl/codegen/atm.h",
"include/grpc/impl/codegen/atm_gcc_atomic.h",
"include/grpc/impl/codegen/atm_gcc_sync.h",
"include/grpc/impl/codegen/atm_win32.h",
- "include/grpc/impl/codegen/byte_buffer.h",
- "include/grpc/impl/codegen/compression_types.h",
- "include/grpc/impl/codegen/connectivity_state.h",
- "include/grpc/impl/codegen/grpc_types.h",
"include/grpc/impl/codegen/log.h",
"include/grpc/impl/codegen/port_platform.h",
- "include/grpc/impl/codegen/propagation_bits.h",
"include/grpc/impl/codegen/slice.h",
"include/grpc/impl/codegen/slice_buffer.h",
- "include/grpc/impl/codegen/status.h",
"include/grpc/impl/codegen/sync.h",
"include/grpc/impl/codegen/sync_generic.h",
"include/grpc/impl/codegen/sync_posix.h",
"include/grpc/impl/codegen/sync_win32.h",
"include/grpc/impl/codegen/time.h",
- "include/grpc/status.h",
"include/grpc/support/alloc.h",
"include/grpc/support/atm.h",
"include/grpc/support/atm_gcc_atomic.h",
@@ -2505,6 +2808,149 @@
"include/grpc/support/tls_msvc.h",
"include/grpc/support/tls_pthread.h",
"include/grpc/support/useful.h",
+ "src/core/profiling/timers.h",
+ "src/core/support/block_annotate.h",
+ "src/core/support/env.h",
+ "src/core/support/file.h",
+ "src/core/support/murmur_hash.h",
+ "src/core/support/stack_lockfree.h",
+ "src/core/support/string.h",
+ "src/core/support/string_win32.h",
+ "src/core/support/thd_internal.h",
+ "src/core/support/time_precise.h"
+ ],
+ "language": "c",
+ "name": "gpr",
+ "src": [
+ "include/grpc/impl/codegen/alloc.h",
+ "include/grpc/impl/codegen/atm.h",
+ "include/grpc/impl/codegen/atm_gcc_atomic.h",
+ "include/grpc/impl/codegen/atm_gcc_sync.h",
+ "include/grpc/impl/codegen/atm_win32.h",
+ "include/grpc/impl/codegen/log.h",
+ "include/grpc/impl/codegen/port_platform.h",
+ "include/grpc/impl/codegen/slice.h",
+ "include/grpc/impl/codegen/slice_buffer.h",
+ "include/grpc/impl/codegen/sync.h",
+ "include/grpc/impl/codegen/sync_generic.h",
+ "include/grpc/impl/codegen/sync_posix.h",
+ "include/grpc/impl/codegen/sync_win32.h",
+ "include/grpc/impl/codegen/time.h",
+ "include/grpc/support/alloc.h",
+ "include/grpc/support/atm.h",
+ "include/grpc/support/atm_gcc_atomic.h",
+ "include/grpc/support/atm_gcc_sync.h",
+ "include/grpc/support/atm_win32.h",
+ "include/grpc/support/avl.h",
+ "include/grpc/support/cmdline.h",
+ "include/grpc/support/cpu.h",
+ "include/grpc/support/histogram.h",
+ "include/grpc/support/host_port.h",
+ "include/grpc/support/log.h",
+ "include/grpc/support/log_win32.h",
+ "include/grpc/support/port_platform.h",
+ "include/grpc/support/slice.h",
+ "include/grpc/support/slice_buffer.h",
+ "include/grpc/support/string_util.h",
+ "include/grpc/support/subprocess.h",
+ "include/grpc/support/sync.h",
+ "include/grpc/support/sync_generic.h",
+ "include/grpc/support/sync_posix.h",
+ "include/grpc/support/sync_win32.h",
+ "include/grpc/support/thd.h",
+ "include/grpc/support/time.h",
+ "include/grpc/support/tls.h",
+ "include/grpc/support/tls_gcc.h",
+ "include/grpc/support/tls_msvc.h",
+ "include/grpc/support/tls_pthread.h",
+ "include/grpc/support/useful.h",
+ "src/core/profiling/basic_timers.c",
+ "src/core/profiling/stap_timers.c",
+ "src/core/profiling/timers.h",
+ "src/core/support/alloc.c",
+ "src/core/support/avl.c",
+ "src/core/support/block_annotate.h",
+ "src/core/support/cmdline.c",
+ "src/core/support/cpu_iphone.c",
+ "src/core/support/cpu_linux.c",
+ "src/core/support/cpu_posix.c",
+ "src/core/support/cpu_windows.c",
+ "src/core/support/env.h",
+ "src/core/support/env_linux.c",
+ "src/core/support/env_posix.c",
+ "src/core/support/env_win32.c",
+ "src/core/support/file.c",
+ "src/core/support/file.h",
+ "src/core/support/file_posix.c",
+ "src/core/support/file_win32.c",
+ "src/core/support/histogram.c",
+ "src/core/support/host_port.c",
+ "src/core/support/log.c",
+ "src/core/support/log_android.c",
+ "src/core/support/log_linux.c",
+ "src/core/support/log_posix.c",
+ "src/core/support/log_win32.c",
+ "src/core/support/murmur_hash.c",
+ "src/core/support/murmur_hash.h",
+ "src/core/support/slice.c",
+ "src/core/support/slice_buffer.c",
+ "src/core/support/stack_lockfree.c",
+ "src/core/support/stack_lockfree.h",
+ "src/core/support/string.c",
+ "src/core/support/string.h",
+ "src/core/support/string_posix.c",
+ "src/core/support/string_win32.c",
+ "src/core/support/string_win32.h",
+ "src/core/support/subprocess_posix.c",
+ "src/core/support/subprocess_windows.c",
+ "src/core/support/sync.c",
+ "src/core/support/sync_posix.c",
+ "src/core/support/sync_win32.c",
+ "src/core/support/thd.c",
+ "src/core/support/thd_internal.h",
+ "src/core/support/thd_posix.c",
+ "src/core/support/thd_win32.c",
+ "src/core/support/time.c",
+ "src/core/support/time_posix.c",
+ "src/core/support/time_precise.c",
+ "src/core/support/time_precise.h",
+ "src/core/support/time_win32.c",
+ "src/core/support/tls_pthread.c",
+ "src/core/support/wrap_memcpy.c"
+ ]
+ },
+ {
+ "deps": [
+ "gpr"
+ ],
+ "headers": [
+ "test/core/util/test_config.h"
+ ],
+ "language": "c",
+ "name": "gpr_test_util",
+ "src": [
+ "test/core/util/test_config.c",
+ "test/core/util/test_config.h"
+ ]
+ },
+ {
+ "deps": [
+ "gpr"
+ ],
+ "headers": [
+ "include/grpc/byte_buffer.h",
+ "include/grpc/byte_buffer_reader.h",
+ "include/grpc/census.h",
+ "include/grpc/compression.h",
+ "include/grpc/grpc.h",
+ "include/grpc/grpc_security.h",
+ "include/grpc/impl/codegen/byte_buffer.h",
+ "include/grpc/impl/codegen/compression_types.h",
+ "include/grpc/impl/codegen/connectivity_state.h",
+ "include/grpc/impl/codegen/grpc_types.h",
+ "include/grpc/impl/codegen/propagation_bits.h",
+ "include/grpc/impl/codegen/status.h",
+ "include/grpc/status.h",
"src/core/census/aggregation.h",
"src/core/census/grpc_filter.h",
"src/core/census/rpc_metric_id.h",
@@ -2581,7 +3027,6 @@
"src/core/json/json_common.h",
"src/core/json/json_reader.h",
"src/core/json/json_writer.h",
- "src/core/profiling/timers.h",
"src/core/security/auth_filters.h",
"src/core/security/base64.h",
"src/core/security/credentials.h",
@@ -2593,15 +3038,6 @@
"src/core/security/security_context.h",
"src/core/statistics/census_interface.h",
"src/core/statistics/census_rpc_stats.h",
- "src/core/support/block_annotate.h",
- "src/core/support/env.h",
- "src/core/support/file.h",
- "src/core/support/murmur_hash.h",
- "src/core/support/stack_lockfree.h",
- "src/core/support/string.h",
- "src/core/support/string_win32.h",
- "src/core/support/thd_internal.h",
- "src/core/support/time_precise.h",
"src/core/surface/api_trace.h",
"src/core/surface/call.h",
"src/core/surface/call_test_only.h",
@@ -2654,55 +3090,13 @@
"include/grpc/compression.h",
"include/grpc/grpc.h",
"include/grpc/grpc_security.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
"include/grpc/impl/codegen/propagation_bits.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
"include/grpc/status.h",
- "include/grpc/support/alloc.h",
- "include/grpc/support/atm.h",
- "include/grpc/support/atm_gcc_atomic.h",
- "include/grpc/support/atm_gcc_sync.h",
- "include/grpc/support/atm_win32.h",
- "include/grpc/support/avl.h",
- "include/grpc/support/cmdline.h",
- "include/grpc/support/cpu.h",
- "include/grpc/support/histogram.h",
- "include/grpc/support/host_port.h",
- "include/grpc/support/log.h",
- "include/grpc/support/log_win32.h",
- "include/grpc/support/port_platform.h",
- "include/grpc/support/slice.h",
- "include/grpc/support/slice_buffer.h",
- "include/grpc/support/string_util.h",
- "include/grpc/support/subprocess.h",
- "include/grpc/support/sync.h",
- "include/grpc/support/sync_generic.h",
- "include/grpc/support/sync_posix.h",
- "include/grpc/support/sync_win32.h",
- "include/grpc/support/thd.h",
- "include/grpc/support/time.h",
- "include/grpc/support/tls.h",
- "include/grpc/support/tls_gcc.h",
- "include/grpc/support/tls_msvc.h",
- "include/grpc/support/tls_pthread.h",
- "include/grpc/support/useful.h",
"src/core/census/aggregation.h",
"src/core/census/context.c",
"src/core/census/grpc_context.c",
@@ -2863,9 +3257,6 @@
"src/core/json/json_string.c",
"src/core/json/json_writer.c",
"src/core/json/json_writer.h",
- "src/core/profiling/basic_timers.c",
- "src/core/profiling/stap_timers.c",
- "src/core/profiling/timers.h",
"src/core/security/auth_filters.h",
"src/core/security/base64.c",
"src/core/security/base64.h",
@@ -2892,56 +3283,6 @@
"src/core/security/server_secure_chttp2.c",
"src/core/statistics/census_interface.h",
"src/core/statistics/census_rpc_stats.h",
- "src/core/support/alloc.c",
- "src/core/support/avl.c",
- "src/core/support/block_annotate.h",
- "src/core/support/cmdline.c",
- "src/core/support/cpu_iphone.c",
- "src/core/support/cpu_linux.c",
- "src/core/support/cpu_posix.c",
- "src/core/support/cpu_windows.c",
- "src/core/support/env.h",
- "src/core/support/env_linux.c",
- "src/core/support/env_posix.c",
- "src/core/support/env_win32.c",
- "src/core/support/file.c",
- "src/core/support/file.h",
- "src/core/support/file_posix.c",
- "src/core/support/file_win32.c",
- "src/core/support/histogram.c",
- "src/core/support/host_port.c",
- "src/core/support/log.c",
- "src/core/support/log_android.c",
- "src/core/support/log_linux.c",
- "src/core/support/log_posix.c",
- "src/core/support/log_win32.c",
- "src/core/support/murmur_hash.c",
- "src/core/support/murmur_hash.h",
- "src/core/support/slice.c",
- "src/core/support/slice_buffer.c",
- "src/core/support/stack_lockfree.c",
- "src/core/support/stack_lockfree.h",
- "src/core/support/string.c",
- "src/core/support/string.h",
- "src/core/support/string_posix.c",
- "src/core/support/string_win32.c",
- "src/core/support/string_win32.h",
- "src/core/support/subprocess_posix.c",
- "src/core/support/subprocess_windows.c",
- "src/core/support/sync.c",
- "src/core/support/sync_posix.c",
- "src/core/support/sync_win32.c",
- "src/core/support/thd.c",
- "src/core/support/thd_internal.h",
- "src/core/support/thd_posix.c",
- "src/core/support/thd_win32.c",
- "src/core/support/time.c",
- "src/core/support/time_posix.c",
- "src/core/support/time_precise.c",
- "src/core/support/time_precise.h",
- "src/core/support/time_win32.c",
- "src/core/support/tls_pthread.c",
- "src/core/support/wrap_memcpy.c",
"src/core/surface/alarm.c",
"src/core/surface/api_trace.c",
"src/core/surface/api_trace.h",
@@ -3042,6 +3383,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc"
],
"headers": [
@@ -3053,8 +3396,7 @@
"test/core/util/grpc_profiler.h",
"test/core/util/parse_hexstring.h",
"test/core/util/port.h",
- "test/core/util/slice_splitter.h",
- "test/core/util/test_config.h"
+ "test/core/util/slice_splitter.h"
],
"language": "c",
"name": "grpc_test_util",
@@ -3079,13 +3421,13 @@
"test/core/util/port_posix.c",
"test/core/util/port_windows.c",
"test/core/util/slice_splitter.c",
- "test/core/util/slice_splitter.h",
- "test/core/util/test_config.c",
- "test/core/util/test_config.h"
+ "test/core/util/slice_splitter.h"
]
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc_unsecure"
],
"headers": [
@@ -3095,8 +3437,7 @@
"test/core/util/grpc_profiler.h",
"test/core/util/parse_hexstring.h",
"test/core/util/port.h",
- "test/core/util/slice_splitter.h",
- "test/core/util/test_config.h"
+ "test/core/util/slice_splitter.h"
],
"language": "c",
"name": "grpc_test_util_unsecure",
@@ -3115,68 +3456,26 @@
"test/core/util/port_posix.c",
"test/core/util/port_windows.c",
"test/core/util/slice_splitter.c",
- "test/core/util/slice_splitter.h",
- "test/core/util/test_config.c",
- "test/core/util/test_config.h"
+ "test/core/util/slice_splitter.h"
]
},
{
- "deps": [],
+ "deps": [
+ "gpr"
+ ],
"headers": [
"include/grpc/byte_buffer.h",
"include/grpc/byte_buffer_reader.h",
"include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
"include/grpc/impl/codegen/propagation_bits.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
"include/grpc/status.h",
- "include/grpc/support/alloc.h",
- "include/grpc/support/atm.h",
- "include/grpc/support/atm_gcc_atomic.h",
- "include/grpc/support/atm_gcc_sync.h",
- "include/grpc/support/atm_win32.h",
- "include/grpc/support/avl.h",
- "include/grpc/support/cmdline.h",
- "include/grpc/support/cpu.h",
- "include/grpc/support/histogram.h",
- "include/grpc/support/host_port.h",
- "include/grpc/support/log.h",
- "include/grpc/support/log_win32.h",
- "include/grpc/support/port_platform.h",
- "include/grpc/support/slice.h",
- "include/grpc/support/slice_buffer.h",
- "include/grpc/support/string_util.h",
- "include/grpc/support/subprocess.h",
- "include/grpc/support/sync.h",
- "include/grpc/support/sync_generic.h",
- "include/grpc/support/sync_posix.h",
- "include/grpc/support/sync_win32.h",
- "include/grpc/support/thd.h",
- "include/grpc/support/time.h",
- "include/grpc/support/tls.h",
- "include/grpc/support/tls_gcc.h",
- "include/grpc/support/tls_msvc.h",
- "include/grpc/support/tls_pthread.h",
- "include/grpc/support/useful.h",
"src/core/census/aggregation.h",
"src/core/census/grpc_filter.h",
"src/core/census/rpc_metric_id.h",
@@ -3253,18 +3552,8 @@
"src/core/json/json_common.h",
"src/core/json/json_reader.h",
"src/core/json/json_writer.h",
- "src/core/profiling/timers.h",
"src/core/statistics/census_interface.h",
"src/core/statistics/census_rpc_stats.h",
- "src/core/support/block_annotate.h",
- "src/core/support/env.h",
- "src/core/support/file.h",
- "src/core/support/murmur_hash.h",
- "src/core/support/stack_lockfree.h",
- "src/core/support/string.h",
- "src/core/support/string_win32.h",
- "src/core/support/thd_internal.h",
- "src/core/support/time_precise.h",
"src/core/surface/api_trace.h",
"src/core/surface/call.h",
"src/core/surface/call_test_only.h",
@@ -3311,55 +3600,13 @@
"include/grpc/census.h",
"include/grpc/compression.h",
"include/grpc/grpc.h",
- "include/grpc/impl/codegen/alloc.h",
- "include/grpc/impl/codegen/atm.h",
- "include/grpc/impl/codegen/atm_gcc_atomic.h",
- "include/grpc/impl/codegen/atm_gcc_sync.h",
- "include/grpc/impl/codegen/atm_win32.h",
"include/grpc/impl/codegen/byte_buffer.h",
"include/grpc/impl/codegen/compression_types.h",
"include/grpc/impl/codegen/connectivity_state.h",
"include/grpc/impl/codegen/grpc_types.h",
- "include/grpc/impl/codegen/log.h",
- "include/grpc/impl/codegen/port_platform.h",
"include/grpc/impl/codegen/propagation_bits.h",
- "include/grpc/impl/codegen/slice.h",
- "include/grpc/impl/codegen/slice_buffer.h",
"include/grpc/impl/codegen/status.h",
- "include/grpc/impl/codegen/sync.h",
- "include/grpc/impl/codegen/sync_generic.h",
- "include/grpc/impl/codegen/sync_posix.h",
- "include/grpc/impl/codegen/sync_win32.h",
- "include/grpc/impl/codegen/time.h",
"include/grpc/status.h",
- "include/grpc/support/alloc.h",
- "include/grpc/support/atm.h",
- "include/grpc/support/atm_gcc_atomic.h",
- "include/grpc/support/atm_gcc_sync.h",
- "include/grpc/support/atm_win32.h",
- "include/grpc/support/avl.h",
- "include/grpc/support/cmdline.h",
- "include/grpc/support/cpu.h",
- "include/grpc/support/histogram.h",
- "include/grpc/support/host_port.h",
- "include/grpc/support/log.h",
- "include/grpc/support/log_win32.h",
- "include/grpc/support/port_platform.h",
- "include/grpc/support/slice.h",
- "include/grpc/support/slice_buffer.h",
- "include/grpc/support/string_util.h",
- "include/grpc/support/subprocess.h",
- "include/grpc/support/sync.h",
- "include/grpc/support/sync_generic.h",
- "include/grpc/support/sync_posix.h",
- "include/grpc/support/sync_win32.h",
- "include/grpc/support/thd.h",
- "include/grpc/support/time.h",
- "include/grpc/support/tls.h",
- "include/grpc/support/tls_gcc.h",
- "include/grpc/support/tls_msvc.h",
- "include/grpc/support/tls_pthread.h",
- "include/grpc/support/useful.h",
"src/core/census/aggregation.h",
"src/core/census/context.c",
"src/core/census/grpc_context.c",
@@ -3519,61 +3766,8 @@
"src/core/json/json_string.c",
"src/core/json/json_writer.c",
"src/core/json/json_writer.h",
- "src/core/profiling/basic_timers.c",
- "src/core/profiling/stap_timers.c",
- "src/core/profiling/timers.h",
"src/core/statistics/census_interface.h",
"src/core/statistics/census_rpc_stats.h",
- "src/core/support/alloc.c",
- "src/core/support/avl.c",
- "src/core/support/block_annotate.h",
- "src/core/support/cmdline.c",
- "src/core/support/cpu_iphone.c",
- "src/core/support/cpu_linux.c",
- "src/core/support/cpu_posix.c",
- "src/core/support/cpu_windows.c",
- "src/core/support/env.h",
- "src/core/support/env_linux.c",
- "src/core/support/env_posix.c",
- "src/core/support/env_win32.c",
- "src/core/support/file.c",
- "src/core/support/file.h",
- "src/core/support/file_posix.c",
- "src/core/support/file_win32.c",
- "src/core/support/histogram.c",
- "src/core/support/host_port.c",
- "src/core/support/log.c",
- "src/core/support/log_android.c",
- "src/core/support/log_linux.c",
- "src/core/support/log_posix.c",
- "src/core/support/log_win32.c",
- "src/core/support/murmur_hash.c",
- "src/core/support/murmur_hash.h",
- "src/core/support/slice.c",
- "src/core/support/slice_buffer.c",
- "src/core/support/stack_lockfree.c",
- "src/core/support/stack_lockfree.h",
- "src/core/support/string.c",
- "src/core/support/string.h",
- "src/core/support/string_posix.c",
- "src/core/support/string_win32.c",
- "src/core/support/string_win32.h",
- "src/core/support/subprocess_posix.c",
- "src/core/support/subprocess_windows.c",
- "src/core/support/sync.c",
- "src/core/support/sync_posix.c",
- "src/core/support/sync_win32.c",
- "src/core/support/thd.c",
- "src/core/support/thd_internal.h",
- "src/core/support/thd_posix.c",
- "src/core/support/thd_win32.c",
- "src/core/support/time.c",
- "src/core/support/time_posix.c",
- "src/core/support/time_precise.c",
- "src/core/support/time_precise.h",
- "src/core/support/time_win32.c",
- "src/core/support/tls_pthread.c",
- "src/core/support/wrap_memcpy.c",
"src/core/surface/alarm.c",
"src/core/surface/api_trace.c",
"src/core/surface/api_trace.h",
@@ -3665,6 +3859,7 @@
},
{
"deps": [
+ "gpr",
"grpc"
],
"headers": [
@@ -3681,6 +3876,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -3697,6 +3894,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -3966,6 +4165,7 @@
},
{
"deps": [
+ "gpr",
"grpc_unsecure"
],
"headers": [
@@ -4306,6 +4506,7 @@
},
{
"deps": [
+ "gpr",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -4325,6 +4526,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4351,6 +4554,7 @@
},
{
"deps": [
+ "gpr",
"grpc",
"grpc++",
"grpc_test_util"
@@ -4367,6 +4571,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4450,6 +4656,7 @@
},
{
"deps": [
+ "gpr",
"grpc"
],
"headers": [],
@@ -4461,6 +4668,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -4476,6 +4685,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4492,6 +4703,8 @@
{
"deps": [
"end2end_certs",
+ "gpr",
+ "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4545,6 +4758,8 @@
},
{
"deps": [
+ "gpr",
+ "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],