aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
authorGravatar Alistair Veitch <aveitch@google.com>2016-02-03 09:02:46 -0800
committerGravatar Alistair Veitch <aveitch@google.com>2016-02-03 09:02:46 -0800
commit6f2b8993fdf67aa59966c11f73f9d188a2717b42 (patch)
tree25a1f373b5ce62178135069151cfe30c29389ae9 /tools
parentddb163a0e43f9225be067e244b9f06f38a3313e7 (diff)
parent6b4ec07ec9028e6c4727a3f1b83a166087d44f11 (diff)
merge
Diffstat (limited to 'tools')
-rwxr-xr-xtools/buildgen/plugins/list_api.py78
-rwxr-xr-xtools/distrib/check_copyright.py2
-rwxr-xr-xtools/distrib/check_windows_dlls.sh37
-rwxr-xr-xtools/distrib/docker_for_windows.rb61
-rw-r--r--tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile38
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile4
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile4
-rw-r--r--tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile4
-rw-r--r--tools/dockerfile/distribtest/python_arch_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_centos6_x64/Dockerfile37
-rw-r--r--tools/dockerfile/distribtest/python_centos7_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile37
-rw-r--r--tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile37
-rw-r--r--tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile37
-rw-r--r--tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile37
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x64/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/python_jessie_x86/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile36
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile34
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile35
-rw-r--r--tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile35
-rw-r--r--tools/dockerfile/grpc_artifact_linux_x64/Dockerfile30
-rw-r--r--tools/dockerfile/grpc_artifact_linux_x86/Dockerfile29
-rwxr-xr-xtools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh2
-rwxr-xr-xtools/dockerfile/grpc_interop_csharp/build_interop.sh2
-rwxr-xr-xtools/dockerfile/grpc_interop_ruby/build_interop.sh2
-rw-r--r--tools/doxygen/Doxyfile.core4
-rw-r--r--tools/doxygen/Doxyfile.core.internal129
-rwxr-xr-xtools/jenkins/docker_run.sh5
-rw-r--r--tools/run_tests/artifact_targets.py67
-rwxr-xr-xtools/run_tests/build_artifact_python.sh47
-rwxr-xr-xtools/run_tests/build_artifact_ruby.sh42
-rwxr-xr-xtools/run_tests/build_ruby.sh4
-rw-r--r--tools/run_tests/distribtest_targets.py96
-rw-r--r--tools/run_tests/package_targets.py2
-rwxr-xr-xtools/run_tests/run_interop_tests.py2
-rwxr-xr-xtools/run_tests/run_stress_tests.py2
-rw-r--r--tools/run_tests/sources_and_headers.json853
-rwxr-xr-xtools/run_tests/task_runner.py2
57 files changed, 2025 insertions, 623 deletions
diff --git a/tools/buildgen/plugins/list_api.py b/tools/buildgen/plugins/list_api.py
new file mode 100755
index 0000000000..3396dcd39b
--- /dev/null
+++ b/tools/buildgen/plugins/list_api.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python2.7
+
+# 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.
+
+import collections
+import fnmatch
+import os
+import re
+import sys
+import yaml
+
+
+_RE_API = r'(?:GPR_API|GRPC_API|CENSUS_API)([^;]*);'
+
+
+def list_c_apis(filenames):
+ for filename in filenames:
+ with open(filename, 'r') as f:
+ text = f.read()
+ for m in re.finditer(_RE_API, text):
+ api_declaration = re.sub('[ \r\n\t]+', ' ', m.group(1))
+ type_and_name, args_and_close = api_declaration.split('(', 1)
+ args = args_and_close[:args_and_close.rfind(')')].strip()
+ last_space = type_and_name.rfind(' ')
+ last_star = type_and_name.rfind('*')
+ type_end = max(last_space, last_star)
+ return_type = type_and_name[0:type_end+1].strip()
+ name = type_and_name[type_end+1:].strip()
+ yield {'return_type': return_type, 'name': name, 'arguments': args, 'header': filename}
+
+
+def headers_under(directory):
+ for root, dirnames, filenames in os.walk(directory):
+ for filename in fnmatch.filter(filenames, '*.h'):
+ yield os.path.join(root, filename)
+
+
+def mako_plugin(dictionary):
+ apis = []
+
+# for lib in dictionary['libs']:
+# if lib['name'] == 'grpc':
+# apis.extend(list_c_apis(lib['public_headers']))
+ apis.extend(list_c_apis(sorted(headers_under('include/grpc'))))
+
+ dictionary['c_apis'] = apis
+
+
+if __name__ == '__main__':
+ print yaml.dump([api for api in list_c_apis(headers_under('include/grpc'))])
+
diff --git a/tools/distrib/check_copyright.py b/tools/distrib/check_copyright.py
index 935acf525e..a7efdc85cc 100755
--- a/tools/distrib/check_copyright.py
+++ b/tools/distrib/check_copyright.py
@@ -124,7 +124,7 @@ def log(cond, why, filename):
# scan files, validate the text
ok = True
-for filename in subprocess.check_output('git ls-tree -r --name-only -r HEAD',
+for filename in subprocess.check_output('git ls-tree -r --name-only -r HEAD | grep -v ^third_party/',
shell=True).splitlines():
if filename in KNOWN_BAD: continue
ext = os.path.splitext(filename)[1]
diff --git a/tools/distrib/check_windows_dlls.sh b/tools/distrib/check_windows_dlls.sh
new file mode 100755
index 0000000000..efb66e9e75
--- /dev/null
+++ b/tools/distrib/check_windows_dlls.sh
@@ -0,0 +1,37 @@
+#!/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
+
+# change to root directory
+cd $(dirname $0)/../..
+
+bundle
+rake dlls
diff --git a/tools/distrib/docker_for_windows.rb b/tools/distrib/docker_for_windows.rb
new file mode 100755
index 0000000000..d72765dde5
--- /dev/null
+++ b/tools/distrib/docker_for_windows.rb
@@ -0,0 +1,61 @@
+#!/usr/bin/env ruby
+# 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.
+
+def grpc_root()
+ File.expand_path(File.join(File.dirname(__FILE__), '..', '..'))
+end
+
+def docker_for_windows_image()
+ require 'digest'
+
+ dockerfile = File.join(grpc_root, 'third_party', 'rake-compiler-dock', 'Dockerfile')
+ dockerpath = File.dirname(dockerfile)
+ version = Digest::SHA1.file(dockerfile).hexdigest
+ image_name = 'grpc/rake-compiler-dock:' + version
+ cmd = "docker build -t #{image_name} --file #{dockerfile} #{dockerpath}"
+ puts cmd
+ system cmd
+ raise "Failed to build the docker image." unless $? == 0
+ image_name
+end
+
+def docker_for_windows(args)
+ require 'rake_compiler_dock'
+
+ args = 'bash -l' if args.empty?
+
+ ENV['RAKE_COMPILER_DOCK_IMAGE'] = docker_for_windows_image
+
+ RakeCompilerDock.sh args
+end
+
+if __FILE__ == $0
+ docker_for_windows $*.join(' ')
+end
diff --git a/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
new file mode 100644
index 0000000000..17e9698904
--- /dev/null
+++ b/tools/dockerfile/distribtest/csharp_centos7_x64/Dockerfile
@@ -0,0 +1,38 @@
+# 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 centos:7
+
+RUN rpm --import "http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF"
+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 ec400b6151..b31f38afc7 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
@@ -41,7 +41,3 @@ RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
nuget
RUN apt-get update && apt-get install -y git unzip
-
-# TODO(jtattermusch): Currently P/Invoke to dlopen will fail without libc6-dev
-# being installed. Figure out how to workaround this.
-RUN apt-get update && apt-get install -y libc6-dev
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
index f8e6401a63..dd5dee75b8 100644
--- a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
@@ -41,7 +41,3 @@ RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
nuget
RUN apt-get update && apt-get install -y git unzip
-
-# TODO(jtattermusch): Currently P/Invoke to dlopen will fail without libc6-dev
-# being installed. Figure out how to workaround this.
-RUN apt-get update && apt-get install -y libc6-dev
diff --git a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
index 4f54f14f07..dd865e8bbc 100644
--- a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
+++ b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
@@ -30,7 +30,3 @@
FROM mono:4.2.2.30
RUN apt-get update && apt-get install -y git unzip
-
-# TODO(jtattermusch): Currently P/Invoke to dlopen will fail without libc6-dev
-# being installed. Figure out how to workaround this.
-RUN apt-get update && apt-get install -y libc6-dev
diff --git a/tools/dockerfile/distribtest/python_arch_x64/Dockerfile b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
new file mode 100644
index 0000000000..4d10e240c6
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_arch_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 base/archlinux
+
+RUN pacman --noconfirm -Syy
+RUN pacman --noconfirm -S git
+RUN pacman --noconfirm -S python
+RUN pacman --noconfirm -S python-pip
+
diff --git a/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
new file mode 100644
index 0000000000..683686c6db
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_centos6_x64/Dockerfile
@@ -0,0 +1,37 @@
+# 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 centos:6
+
+RUN yum install -y git
+RUN yum install -y python
+
+RUN rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm
+RUN yum install -y python-pip
+
diff --git a/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
new file mode 100644
index 0000000000..6b70f65f10
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_centos7_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
new file mode 100644
index 0000000000..1c91594363
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_fedora20_x64/Dockerfile
@@ -0,0 +1,37 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
new file mode 100644
index 0000000000..e35de109ea
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_fedora21_x64/Dockerfile
@@ -0,0 +1,37 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
new file mode 100644
index 0000000000..69c3b541d3
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_fedora22_x64/Dockerfile
@@ -0,0 +1,37 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
new file mode 100644
index 0000000000..74639a3118
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_fedora23_x64/Dockerfile
@@ -0,0 +1,37 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..3d511e267a
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_jessie_x64/Dockerfile
@@ -0,0 +1,34 @@
+# 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
+
+RUN apt-get update
+RUN apt-get install -y git python python-pip
+
diff --git a/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
new file mode 100644
index 0000000000..035d56b655
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_jessie_x86/Dockerfile
@@ -0,0 +1,34 @@
+# 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
+
+RUN apt-get update
+RUN apt-get install -y git python python-pip
+
diff --git a/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
new file mode 100644
index 0000000000..032beb97e5
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_opensuse_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 opensuse:42.1
+
+RUN zypper --non-interactive install git
+RUN zypper --non-interactive install python
+RUN zypper --non-interactive install python-pip
+
diff --git a/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
new file mode 100644
index 0000000000..9dbf90f511
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_ubuntu1204_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
new file mode 100644
index 0000000000..3b366a9bb4
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_ubuntu1404_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
new file mode 100644
index 0000000000..de90b5b7e2
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_ubuntu1504_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
new file mode 100644
index 0000000000..d10e04aacc
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_ubuntu1510_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
new file mode 100644
index 0000000000..bc56285a3d
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_ubuntu1604_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 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
+
diff --git a/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
new file mode 100644
index 0000000000..895dd96747
--- /dev/null
+++ b/tools/dockerfile/distribtest/python_wheezy_x64/Dockerfile
@@ -0,0 +1,34 @@
+# 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:wheezy
+
+RUN apt-get update
+RUN apt-get install -y git python python-pip
+
diff --git a/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
new file mode 100644
index 0000000000..28a5c4ad71
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_centos6_x64/Dockerfile
@@ -0,0 +1,34 @@
+# 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 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
new file mode 100644
index 0000000000..bdc100ee1c
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_centos7_x64/Dockerfile
@@ -0,0 +1,34 @@
+# 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 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
new file mode 100644
index 0000000000..50ff0b038b
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_fedora20_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 fedora:20
+
+RUN yum clean all
+RUN yum update -y
+RUN yum install -y git
+RUN yum install -y ruby
+
diff --git a/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
new file mode 100644
index 0000000000..219ecc8b53
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_fedora21_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 fedora:21
+
+RUN yum clean all
+RUN yum update -y
+RUN yum install -y git
+RUN yum install -y ruby
+
diff --git a/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
new file mode 100644
index 0000000000..49d4c7d7f8
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_fedora22_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 fedora:22
+
+RUN yum clean all
+RUN yum update -y
+RUN yum install -y git
+RUN yum install -y ruby
+
diff --git a/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
new file mode 100644
index 0000000000..3c5363fb63
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_fedora23_x64/Dockerfile
@@ -0,0 +1,36 @@
+# 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 fedora:23
+
+RUN yum clean all
+RUN yum update -y
+RUN yum install -y git
+RUN yum install -y ruby
+
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
new file mode 100644
index 0000000000..6a3d7edba0
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_jessie_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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
+
+RUN apt-get update
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
new file mode 100644
index 0000000000..ca3b731f56
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_jessie_x86/Dockerfile
@@ -0,0 +1,35 @@
+# 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
+
+RUN apt-get update
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
new file mode 100644
index 0000000000..a9423042ea
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_opensuse_x64/Dockerfile
@@ -0,0 +1,34 @@
+# 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 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
new file mode 100644
index 0000000000..66f17100cf
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1204_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 ubuntu:12.04
+
+RUN apt-get update -y
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
new file mode 100644
index 0000000000..dc533a5fca
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1404_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 ubuntu:14.04
+
+RUN apt-get update -y
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
new file mode 100644
index 0000000000..7e4f203041
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1504_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 ubuntu:15.04
+
+RUN apt-get update -y
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
new file mode 100644
index 0000000000..43ef63ec8c
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1510_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 ubuntu:15.10
+
+RUN apt-get update -y
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
new file mode 100644
index 0000000000..3b63976d3c
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_ubuntu1604_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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 ubuntu:16.04
+
+RUN apt-get update -y
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
new file mode 100644
index 0000000000..1ff083d43c
--- /dev/null
+++ b/tools/dockerfile/distribtest/ruby_wheezy_x64/Dockerfile
@@ -0,0 +1,35 @@
+# 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:wheezy
+
+RUN apt-get update
+RUN apt-get install -y git
+RUN apt-get install -y ruby-full
+
diff --git a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
index de40247a73..f467cff2fa 100644
--- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
@@ -58,6 +58,36 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
+
+##################
+# Python dependencies
+
+RUN apt-get update && apt-get install -y \
+ python-all-dev \
+ python3-all-dev \
+ python-pip
+
+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
+
+
+##################
+# 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"
+
+
RUN mkdir /var/local/jenkins
# Define the default command.
diff --git a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
index 774b4523a1..9522df7998 100644
--- a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
@@ -58,6 +58,35 @@ RUN apt-get update && apt-get install -y \
wget \
zip && apt-get clean
+
+##################
+# Python dependencies
+
+RUN apt-get update && apt-get install -y \
+ python-all-dev \
+ python3-all-dev \
+ python-pip
+
+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
+
+
+##################
+# 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"
+
RUN mkdir /var/local/jenkins
# Define the default command.
diff --git a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
index 87445c71ce..86ba8b2e90 100755
--- a/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
+++ b/tools/dockerfile/grpc_clang_format/clang_format_all_the_things.sh
@@ -44,7 +44,7 @@ for dir in $DIRS
do
for glob in $GLOB
do
- files="$files `find /local-code/$dir -name $glob`"
+ files="$files `find /local-code/$dir -name $glob -and -not -name *.generated.*`"
done
done
diff --git a/tools/dockerfile/grpc_interop_csharp/build_interop.sh b/tools/dockerfile/grpc_interop_csharp/build_interop.sh
index e87fe2f692..5ad525f41c 100755
--- a/tools/dockerfile/grpc_interop_csharp/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_csharp/build_interop.sh
@@ -39,8 +39,6 @@ cp -r /var/local/jenkins/service_account $HOME || true
cd /var/local/git/grpc
-make install-certs
-
# build C# interop client & server
make CONFIG=dbg grpc_csharp_ext
(cd src/csharp && mono /var/local/NuGet.exe restore Grpc.sln)
diff --git a/tools/dockerfile/grpc_interop_ruby/build_interop.sh b/tools/dockerfile/grpc_interop_ruby/build_interop.sh
index 04288bf1aa..84fd4995f1 100755
--- a/tools/dockerfile/grpc_interop_ruby/build_interop.sh
+++ b/tools/dockerfile/grpc_interop_ruby/build_interop.sh
@@ -43,4 +43,4 @@ rvm --default use ruby-2.1
make install-certs
# build Ruby interop client and server
-(cd src/ruby && gem update bundler && bundle && rake compile:grpc)
+(cd src/ruby && gem update bundler && bundle && rake compile)
diff --git a/tools/doxygen/Doxyfile.core b/tools/doxygen/Doxyfile.core
index 03c040fe4c..a3b458163c 100644
--- a/tools/doxygen/Doxyfile.core
+++ b/tools/doxygen/Doxyfile.core
@@ -766,7 +766,6 @@ 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 \
@@ -814,7 +813,8 @@ 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/impl/codegen/time.h \
+include/grpc/census.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 dd5dd9252d..e91b47c6f4 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -766,6 +766,54 @@ 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/census.h \
src/core/security/auth_filters.h \
src/core/security/base64.h \
@@ -894,6 +942,16 @@ 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 \
@@ -1044,69 +1102,6 @@ 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/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 \
-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 \
@@ -1148,7 +1143,13 @@ src/core/support/time.c \
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/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
# 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/docker_run.sh b/tools/jenkins/docker_run.sh
index 3cc21c4925..7a0ee29c3c 100755
--- a/tools/jenkins/docker_run.sh
+++ b/tools/jenkins/docker_run.sh
@@ -36,6 +36,11 @@ set -e
mkdir -p /var/local/git
git clone --recursive "$EXTERNAL_GIT_ROOT" /var/local/git/grpc
+if [ -x "$(command -v rvm)" ]
+then
+ rvm use ruby-2.1
+fi
+
cd /var/local/git/grpc
$RUN_COMMAND
diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py
index a34fa8e4fa..d0aee7dda3 100644
--- a/tools/run_tests/artifact_targets.py
+++ b/tools/run_tests/artifact_targets.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2016, Google Inc.
# All rights reserved.
#
@@ -62,7 +62,7 @@ def create_jobspec(name, cmdline, environ=None, shell=False,
cmdline=cmdline,
environ=environ,
shortname='build_artifact.%s' % (name),
- timeout_seconds=5*60,
+ timeout_seconds=10*60,
flake_retries=flake_retries,
timeout_retries=timeout_retries,
shell=shell)
@@ -80,6 +80,63 @@ def macos_arch_env(arch):
return {'CFLAGS': arch_arg, 'LDFLAGS': arch_arg}
+class PythonArtifact:
+ """Builds Python artifacts."""
+
+ def __init__(self, platform, arch):
+ self.name = 'python_%s_%s' % (platform, arch)
+ self.platform = platform
+ self.arch = arch
+ self.labels = ['artifact', 'python', platform, arch]
+
+ def pre_build_jobspecs(self):
+ return []
+
+ def build_jobspec(self):
+ if self.platform == 'windows':
+ raise Exception('Not supported yet.')
+ else:
+ if self.platform == 'linux':
+ return create_docker_jobspec(self.name,
+ 'tools/dockerfile/grpc_artifact_linux_%s' % self.arch,
+ 'tools/run_tests/build_artifact_python.sh')
+ else:
+ return create_jobspec(self.name,
+ ['tools/run_tests/build_artifact_python.sh'])
+
+ def __str__(self):
+ return self.name
+
+
+class RubyArtifact:
+ """Builds ruby native gem."""
+
+ def __init__(self, platform, arch):
+ self.name = 'ruby_native_gem_%s_%s' % (platform, arch)
+ self.platform = platform
+ self.arch = arch
+ self.labels = ['artifact', 'ruby', platform, arch]
+
+ def pre_build_jobspecs(self):
+ return []
+
+ def build_jobspec(self):
+ if self.platform == 'windows':
+ raise Exception("Not supported yet")
+ else:
+ if self.platform == 'linux':
+ environ = {}
+ if self.arch == 'x86':
+ environ['SETARCH_CMD'] = 'i386'
+ return create_docker_jobspec(self.name,
+ 'tools/dockerfile/grpc_artifact_linux_%s' % self.arch,
+ 'tools/run_tests/build_artifact_ruby.sh',
+ environ=environ)
+ else:
+ return create_jobspec(self.name,
+ ['tools/run_tests/build_artifact_ruby.sh'])
+
+
class CSharpExtArtifact:
"""Builds C# native extension library"""
@@ -134,4 +191,8 @@ def targets():
CSharpExtArtifact('macos', 'x86'),
CSharpExtArtifact('macos', 'x64'),
CSharpExtArtifact('windows', 'x86'),
- CSharpExtArtifact('windows', 'x64')]
+ CSharpExtArtifact('windows', 'x64'),
+ PythonArtifact('linux', 'x86'),
+ PythonArtifact('linux', 'x64'),
+ RubyArtifact('linux', 'x86'),
+ RubyArtifact('linux', 'x64')]
diff --git a/tools/run_tests/build_artifact_python.sh b/tools/run_tests/build_artifact_python.sh
new file mode 100755
index 0000000000..0ff6b2f8c0
--- /dev/null
+++ b/tools/run_tests/build_artifact_python.sh
@@ -0,0 +1,47 @@
+#!/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)/../..
+
+pip install --upgrade six
+pip install --upgrade setuptools
+
+pip install -rrequirements.txt
+
+GRPC_PYTHON_BUILD_WITH_CYTHON=1 python setup.py \
+ bdist_wheel \
+ sdist \
+ bdist_egg_grpc_custom
+
+mkdir -p artifacts
+
+cp -r dist/* artifacts \ No newline at end of file
diff --git a/tools/run_tests/build_artifact_ruby.sh b/tools/run_tests/build_artifact_ruby.sh
new file mode 100755
index 0000000000..8f722ee420
--- /dev/null
+++ b/tools/run_tests/build_artifact_ruby.sh
@@ -0,0 +1,42 @@
+#!/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)/../..
+
+bundle install
+
+${SETARCH_CMD} rake native gem
+
+mkdir -p artifacts
+
+cp pkg/*.gem artifacts
+
diff --git a/tools/run_tests/build_ruby.sh b/tools/run_tests/build_ruby.sh
index 8acb40dc62..ebd27f6a6c 100755
--- a/tools/run_tests/build_ruby.sh
+++ b/tools/run_tests/build_ruby.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
@@ -37,4 +37,4 @@ export GRPC_CONFIG=${CONFIG:-opt}
cd $(dirname $0)/../..
rm -rf ./tmp
-rake compile:grpc
+rake compile
diff --git a/tools/run_tests/distribtest_targets.py b/tools/run_tests/distribtest_targets.py
index aa1d55aedd..25bcd61c3d 100644
--- a/tools/run_tests/distribtest_targets.py
+++ b/tools/run_tests/distribtest_targets.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2016, Google Inc.
# All rights reserved.
#
@@ -54,7 +54,7 @@ def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={},
return jobspec
-class CSharpDistribTest:
+class CSharpDistribTest(object):
"""Tests C# NuGet package"""
def __init__(self, platform, arch, docker_suffix):
@@ -62,7 +62,7 @@ class CSharpDistribTest:
self.platform = platform
self.arch = arch
self.docker_suffix = docker_suffix
- self.labels = ['distribtest', 'csharp', platform, arch]
+ self.labels = ['distribtest', 'csharp', platform, arch, docker_suffix]
def pre_build_jobspecs(self):
return []
@@ -81,8 +81,96 @@ class CSharpDistribTest:
return self.name
+class PythonDistribTest(object):
+ """Tests Python package"""
+
+ def __init__(self, platform, arch, docker_suffix):
+ self.name = 'python_%s_%s_%s' % (platform, arch, docker_suffix)
+ self.platform = platform
+ self.arch = arch
+ self.docker_suffix = docker_suffix
+ self.labels = ['distribtest', 'python', platform, arch, 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,
+ 'tools/dockerfile/distribtest/python_%s_%s' % (
+ self.docker_suffix,
+ self.arch),
+ 'test/distrib/python/run_distrib_test.sh')
+
+ def __str__(self):
+ return self.name
+
+
+class RubyDistribTest(object):
+ """Tests Ruby package"""
+
+ def __init__(self, platform, arch, docker_suffix):
+ self.name = 'ruby_%s_%s_%s' % (platform, arch, docker_suffix)
+ self.platform = platform
+ self.arch = arch
+ self.docker_suffix = docker_suffix
+ self.labels = ['distribtest', 'ruby', platform, arch, 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,
+ 'tools/dockerfile/distribtest/ruby_%s_%s' % (
+ self.docker_suffix,
+ self.arch),
+ 'test/distrib/ruby/run_distrib_test.sh')
+
+ def __str__(self):
+ return self.name
+
+
def targets():
"""Gets list of supported targets"""
return [CSharpDistribTest('linux', 'x64', 'wheezy'),
CSharpDistribTest('linux', 'x64', 'jessie'),
- CSharpDistribTest('linux', 'x86', 'jessie')]
+ CSharpDistribTest('linux', 'x86', 'jessie'),
+ CSharpDistribTest('linux', 'x64', 'centos7'),
+ PythonDistribTest('linux', 'x64', 'wheezy'),
+ PythonDistribTest('linux', 'x64', 'jessie'),
+ PythonDistribTest('linux', 'x86', 'jessie'),
+ PythonDistribTest('linux', 'x64', 'centos6'),
+ PythonDistribTest('linux', 'x64', 'centos7'),
+ PythonDistribTest('linux', 'x64', 'fedora20'),
+ PythonDistribTest('linux', 'x64', 'fedora21'),
+ PythonDistribTest('linux', 'x64', 'fedora22'),
+ PythonDistribTest('linux', 'x64', 'fedora23'),
+ PythonDistribTest('linux', 'x64', 'opensuse'),
+ PythonDistribTest('linux', 'x64', 'arch'),
+ PythonDistribTest('linux', 'x64', 'ubuntu1204'),
+ PythonDistribTest('linux', 'x64', 'ubuntu1404'),
+ PythonDistribTest('linux', 'x64', 'ubuntu1504'),
+ PythonDistribTest('linux', 'x64', 'ubuntu1510'),
+ PythonDistribTest('linux', 'x64', 'ubuntu1604'),
+ RubyDistribTest('linux', 'x64', 'wheezy'),
+ RubyDistribTest('linux', 'x64', 'jessie'),
+ RubyDistribTest('linux', 'x86', 'jessie'),
+ RubyDistribTest('linux', 'x64', 'centos6'),
+ RubyDistribTest('linux', 'x64', 'centos7'),
+ RubyDistribTest('linux', 'x64', 'fedora20'),
+ RubyDistribTest('linux', 'x64', 'fedora21'),
+ RubyDistribTest('linux', 'x64', 'fedora22'),
+ RubyDistribTest('linux', 'x64', 'fedora23'),
+ RubyDistribTest('linux', 'x64', 'opensuse'),
+ RubyDistribTest('linux', 'x64', 'ubuntu1204'),
+ RubyDistribTest('linux', 'x64', 'ubuntu1404'),
+ RubyDistribTest('linux', 'x64', 'ubuntu1504'),
+ RubyDistribTest('linux', 'x64', 'ubuntu1510'),
+ RubyDistribTest('linux', 'x64', 'ubuntu1604'),
+ ]
+
diff --git a/tools/run_tests/package_targets.py b/tools/run_tests/package_targets.py
index 839991e270..5bc4b1c9c4 100644
--- a/tools/run_tests/package_targets.py
+++ b/tools/run_tests/package_targets.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2016, Google Inc.
# All rights reserved.
#
diff --git a/tools/run_tests/run_interop_tests.py b/tools/run_tests/run_interop_tests.py
index 6ce618eb77..fbc3b3cdf6 100755
--- a/tools/run_tests/run_interop_tests.py
+++ b/tools/run_tests/run_interop_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
diff --git a/tools/run_tests/run_stress_tests.py b/tools/run_tests/run_stress_tests.py
index 193ff2e53a..d1faf7d964 100755
--- a/tools/run_tests/run_stress_tests.py
+++ b/tools/run_tests/run_stress_tests.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2015-2016, Google Inc.
# All rights reserved.
#
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 82747e85e2..e3131276f5 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -3,8 +3,6 @@
[
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -17,8 +15,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -31,8 +27,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -43,8 +39,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -85,8 +79,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -99,8 +91,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -113,8 +103,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -127,8 +115,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -141,8 +127,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -155,8 +139,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -169,8 +151,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -183,8 +163,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -197,8 +175,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -211,8 +187,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -225,8 +199,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -239,8 +211,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -253,8 +223,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -267,8 +235,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -281,8 +247,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -295,7 +259,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -316,8 +279,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -328,8 +291,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -340,8 +303,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -352,8 +315,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -364,8 +327,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -376,8 +339,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -388,8 +351,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -400,8 +363,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -412,8 +375,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -424,8 +387,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -436,8 +399,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -448,8 +411,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -460,8 +423,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -472,8 +435,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -484,8 +447,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -496,8 +459,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -508,8 +471,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -520,8 +483,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -534,8 +495,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -548,8 +507,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -562,8 +519,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -576,8 +531,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -590,8 +543,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -604,8 +555,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -618,8 +567,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -632,8 +579,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -646,8 +591,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -660,8 +603,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -674,8 +615,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -688,8 +627,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -702,8 +639,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -716,8 +651,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -730,8 +663,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -744,8 +675,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -758,8 +687,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -772,8 +699,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -786,8 +711,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -800,8 +723,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -814,8 +735,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -828,8 +747,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -842,7 +759,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -854,8 +770,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -868,8 +782,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -882,8 +794,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -896,8 +806,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -910,8 +818,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -924,8 +830,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -938,8 +842,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -952,8 +854,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -966,8 +866,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -978,8 +878,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -992,8 +890,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1006,8 +902,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1020,8 +914,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1034,8 +926,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1048,8 +938,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1062,8 +950,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -1077,8 +963,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1091,8 +975,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1105,8 +987,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1119,8 +999,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1133,8 +1011,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1147,8 +1023,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1161,8 +1035,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1175,8 +1047,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1189,8 +1059,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1203,8 +1071,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1217,8 +1083,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1231,8 +1095,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1245,8 +1107,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1259,8 +1119,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1273,8 +1131,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1287,8 +1143,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1301,8 +1155,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1315,8 +1167,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1331,8 +1181,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1348,8 +1196,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1365,8 +1211,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1381,7 +1225,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++"
],
@@ -1394,8 +1237,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1410,8 +1251,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1426,8 +1265,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1442,7 +1279,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++"
],
@@ -1455,8 +1291,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1470,8 +1304,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1496,8 +1328,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1511,8 +1341,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1527,8 +1355,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1544,8 +1370,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1560,8 +1384,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1632,8 +1454,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1648,8 +1468,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1665,8 +1483,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1682,8 +1498,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1696,7 +1510,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc++_test_config"
@@ -1715,8 +1528,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1731,8 +1542,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1749,8 +1558,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1766,8 +1573,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1784,8 +1589,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1802,8 +1605,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1825,8 +1626,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1849,8 +1648,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1875,8 +1672,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1891,8 +1686,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1908,8 +1701,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1924,8 +1715,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1940,8 +1729,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1956,8 +1743,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1971,8 +1756,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1987,8 +1770,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -2024,8 +1805,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2041,8 +1820,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2058,8 +1835,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2074,8 +1849,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2094,7 +1867,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -2107,8 +1879,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2122,8 +1892,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2137,8 +1905,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2152,8 +1918,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2167,8 +1931,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2182,8 +1944,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2197,8 +1957,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2212,8 +1970,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2227,8 +1983,6 @@
{
"deps": [
"bad_ssl_test_server",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2242,8 +1996,6 @@
{
"deps": [
"bad_ssl_test_server",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2256,8 +2008,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2270,8 +2020,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2286,8 +2034,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2302,8 +2048,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2318,8 +2062,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2334,8 +2076,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2350,8 +2090,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2366,8 +2104,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2382,8 +2118,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2398,8 +2132,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2414,8 +2146,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2430,8 +2160,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2446,8 +2174,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2462,8 +2188,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2478,8 +2202,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2494,8 +2216,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2510,8 +2230,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2526,8 +2244,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2542,8 +2258,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2558,8 +2272,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2573,8 +2285,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2588,8 +2298,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2603,8 +2311,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2618,8 +2324,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2633,8 +2337,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2648,8 +2350,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2663,8 +2363,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2678,8 +2376,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2693,8 +2389,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2708,8 +2402,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2723,8 +2415,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2738,8 +2428,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2753,8 +2441,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2768,6 +2454,12 @@
{
"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",
@@ -2788,6 +2480,7 @@
"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",
@@ -2816,148 +2509,6 @@
"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/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/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"
- ]
- },
- {
- "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/status.h",
"src/core/census/aggregation.h",
"src/core/census/grpc_filter.h",
"src/core/census/rpc_metric_id.h",
@@ -3034,6 +2585,7 @@
"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",
@@ -3045,6 +2597,15 @@
"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",
@@ -3097,7 +2658,55 @@
"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",
@@ -3258,6 +2867,9 @@
"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",
@@ -3284,6 +2896,56 @@
"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",
@@ -3384,8 +3046,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc"
],
"headers": [
@@ -3397,7 +3057,8 @@
"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/slice_splitter.h",
+ "test/core/util/test_config.h"
],
"language": "c",
"name": "grpc_test_util",
@@ -3422,13 +3083,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/slice_splitter.h",
+ "test/core/util/test_config.c",
+ "test/core/util/test_config.h"
]
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc_unsecure"
],
"headers": [
@@ -3438,7 +3099,8 @@
"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/slice_splitter.h",
+ "test/core/util/test_config.h"
],
"language": "c",
"name": "grpc_test_util_unsecure",
@@ -3457,20 +3119,68 @@
"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/slice_splitter.h",
+ "test/core/util/test_config.c",
+ "test/core/util/test_config.h"
]
},
{
- "deps": [
- "gpr"
- ],
+ "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/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",
@@ -3547,8 +3257,18 @@
"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",
@@ -3595,7 +3315,55 @@
"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",
@@ -3755,8 +3523,61 @@
"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",
@@ -3848,7 +3669,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [
@@ -3865,8 +3685,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -3883,8 +3701,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -3900,7 +3716,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [
@@ -4155,7 +3970,6 @@
},
{
"deps": [
- "gpr",
"grpc_unsecure"
],
"headers": [
@@ -4496,7 +4310,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -4516,8 +4329,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4544,7 +4355,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc_test_util"
@@ -4561,8 +4371,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4646,7 +4454,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -4658,8 +4465,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -4675,8 +4480,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4693,8 +4496,6 @@
{
"deps": [
"end2end_certs",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4748,8 +4549,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
diff --git a/tools/run_tests/task_runner.py b/tools/run_tests/task_runner.py
index e5ecc4867b..b42aa17cbb 100755
--- a/tools/run_tests/task_runner.py
+++ b/tools/run_tests/task_runner.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright 2016, Google Inc.
# All rights reserved.
#