aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools
diff options
context:
space:
mode:
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/Dockerfile43
-rw-r--r--tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile43
-rw-r--r--tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile32
-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/Dockerfile28
-rw-r--r--tools/dockerfile/grpc_artifact_linux_x86/Dockerfile28
-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.internal132
-rwxr-xr-xtools/jenkins/build_and_run_docker.sh2
-rwxr-xr-xtools/jenkins/docker_run.sh7
-rw-r--r--tools/run_tests/artifact_targets.py71
-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.py176
-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.json873
-rwxr-xr-x[-rw-r--r--]tools/run_tests/task_runner.py4
-rw-r--r--tools/run_tests/tests.json20
59 files changed, 2273 insertions, 611 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
new file mode 100644
index 0000000000..b31f38afc7
--- /dev/null
+++ b/tools/dockerfile/distribtest/csharp_jessie_x64/Dockerfile
@@ -0,0 +1,43 @@
+# 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-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+
+RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
+ mono-devel \
+ ca-certificates-mono \
+ nuget
+
+RUN apt-get update && apt-get install -y git unzip
diff --git a/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
new file mode 100644
index 0000000000..dd5dee75b8
--- /dev/null
+++ b/tools/dockerfile/distribtest/csharp_jessie_x86/Dockerfile
@@ -0,0 +1,43 @@
+# 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-key adv --keyserver keyserver.ubuntu.com --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy main" | tee /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libjpeg62-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+RUN echo "deb http://download.mono-project.com/repo/debian wheezy-libtiff-compat main" | tee -a /etc/apt/sources.list.d/mono-xamarin.list
+
+RUN apt-get update && apt-get -y dist-upgrade && apt-get install -y \
+ mono-devel \
+ ca-certificates-mono \
+ nuget
+
+RUN apt-get update && apt-get install -y git unzip
diff --git a/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
new file mode 100644
index 0000000000..dd865e8bbc
--- /dev/null
+++ b/tools/dockerfile/distribtest/csharp_wheezy_x64/Dockerfile
@@ -0,0 +1,32 @@
+# 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 mono:4.2.2.30
+
+RUN apt-get update && apt-get install -y git unzip
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 41dd1ea7f4..41dc427454 100644
--- a/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x64/Dockerfile
@@ -63,6 +63,34 @@ RUN touch .profile
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
RUN /bin/bash -l -c "nvm install 4 && npm install -g node-pre-gyp"
+##################
+# 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 0722efbdc4..46bc9f8f52 100644
--- a/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
+++ b/tools/dockerfile/grpc_artifact_linux_x86/Dockerfile
@@ -63,6 +63,34 @@ RUN touch .profile
RUN curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.25.4/install.sh | bash
RUN /bin/bash -l -c "nvm install 4 && npm install -g node-pre-gyp"
+##################
+# 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 11dc33a463..337d628942 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/context.h \
src/core/census/rpc_metric_id.h \
@@ -996,6 +1054,7 @@ src/core/json/json.c \
src/core/json/json_reader.c \
src/core/json/json_string.c \
src/core/json/json_writer.c \
+src/core/surface/alarm.c \
src/core/surface/api_trace.c \
src/core/surface/byte_buffer.c \
src/core/surface/byte_buffer_reader.c \
@@ -1044,69 +1103,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/tag_set.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 \
@@ -1137,6 +1133,7 @@ src/core/support/string.c \
src/core/support/string_posix.c \
src/core/support/string_win32.c \
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 \
@@ -1147,7 +1144,14 @@ 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/tag_set.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/build_and_run_docker.sh b/tools/jenkins/build_and_run_docker.sh
index c48f58e0d0..b77cd0aebb 100755
--- a/tools/jenkins/build_and_run_docker.sh
+++ b/tools/jenkins/build_and_run_docker.sh
@@ -43,6 +43,7 @@ git branch -f jenkins-docker
# Inputs
# DOCKERFILE_DIR - Directory in which Dockerfile file is located.
# DOCKER_RUN_SCRIPT - Script to run under docker (relative to grpc repo root)
+# OUTPUT_DIR - Directory that will be copied from inside docker after finishing.
# $@ - Extra args to pass to docker run
# Use image name based on Dockerfile location checksum
@@ -57,6 +58,7 @@ CONTAINER_NAME="build_and_run_docker_$(uuidgen)"
# Run command inside docker
docker run \
"$@" \
+ -e EXTERNAL_GIT_ROOT="/var/local/jenkins/grpc" \
-e THIS_IS_REALLY_NEEDED='see https://github.com/docker/docker/issues/14203 for why docker is awful' \
-v "$git_root:/var/local/jenkins/grpc:ro" \
-w /var/local/git/grpc \
diff --git a/tools/jenkins/docker_run.sh b/tools/jenkins/docker_run.sh
index 7b8119a8a0..693e87c0b9 100755
--- a/tools/jenkins/docker_run.sh
+++ b/tools/jenkins/docker_run.sh
@@ -34,7 +34,12 @@
set -e
mkdir -p /var/local/git
-git clone --recursive /var/local/jenkins/grpc /var/local/git/grpc
+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
diff --git a/tools/run_tests/artifact_targets.py b/tools/run_tests/artifact_targets.py
index 1061dccc9c..317111e4df 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.
#
@@ -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"""
@@ -164,7 +221,11 @@ class NodeExtArtifact:
def targets():
"""Gets list of supported targets"""
- return [Cls(platform, arch)
- for Cls in (CSharpExtArtifact, NodeExtArtifact)
- for platform in ('linux', 'macos', 'windows')
- for arch in ('x86', 'x64')]
+ return ([Cls(platform, arch)
+ for Cls in (CSharpExtArtifact, NodeExtArtifact)
+ for platform in ('linux', 'macos', 'windows')
+ for arch in ('x86', '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
new file mode 100644
index 0000000000..25bcd61c3d
--- /dev/null
+++ b/tools/run_tests/distribtest_targets.py
@@ -0,0 +1,176 @@
+#!/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.
+
+"""Definition of targets run distribution package tests."""
+
+import jobset
+
+
+def create_docker_jobspec(name, dockerfile_dir, shell_command, environ={},
+ flake_retries=0, timeout_retries=0):
+ """Creates jobspec for a task running under docker."""
+ environ = environ.copy()
+ environ['RUN_COMMAND'] = shell_command
+
+ docker_args=[]
+ for k,v in environ.iteritems():
+ docker_args += ['-e', '%s=%s' % (k, v)]
+ docker_env = {'DOCKERFILE_DIR': dockerfile_dir,
+ 'DOCKER_RUN_SCRIPT': 'tools/jenkins/docker_run.sh'}
+ jobspec = jobset.JobSpec(
+ cmdline=['tools/jenkins/build_and_run_docker.sh'] + docker_args,
+ environ=docker_env,
+ shortname='distribtest.%s' % (name),
+ timeout_seconds=30*60,
+ flake_retries=flake_retries,
+ timeout_retries=timeout_retries)
+ return jobspec
+
+
+class CSharpDistribTest(object):
+ """Tests C# NuGet package"""
+
+ def __init__(self, platform, arch, docker_suffix):
+ self.name = 'csharp_nuget_%s_%s_%s' % (platform, arch, docker_suffix)
+ self.platform = platform
+ self.arch = arch
+ self.docker_suffix = docker_suffix
+ self.labels = ['distribtest', 'csharp', 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/csharp_%s_%s' % (
+ self.docker_suffix,
+ self.arch),
+ 'test/distrib/csharp/run_distrib_test.sh')
+
+ def __str__(self):
+ 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', '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 9113f1ca05..76065e99c7 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -3,8 +3,18 @@
[
{
"deps": [
- "gpr",
- "gpr_test_util",
+ "grpc",
+ "grpc_test_util"
+ ],
+ "headers": [],
+ "language": "c",
+ "name": "alarm_test",
+ "src": [
+ "test/core/surface/alarm_test.c"
+ ]
+ },
+ {
+ "deps": [
"grpc",
"grpc_test_util"
],
@@ -17,8 +27,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -29,8 +39,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -43,8 +51,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -57,8 +63,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -71,8 +75,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -85,8 +87,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -99,8 +99,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -113,8 +111,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -127,8 +123,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -141,8 +135,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -155,8 +147,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -169,8 +159,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -183,8 +171,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -197,8 +183,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -211,8 +195,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -225,8 +207,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -239,8 +219,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -253,8 +231,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -267,7 +243,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -288,8 +263,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -300,8 +275,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -312,8 +287,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -324,8 +299,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -336,8 +311,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -348,8 +323,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -360,8 +335,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -372,8 +347,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -384,8 +359,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -396,8 +371,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -408,8 +383,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -420,8 +395,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -432,8 +407,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -444,8 +419,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -456,8 +431,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -468,8 +443,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -480,8 +455,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -492,8 +467,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -506,8 +479,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -520,8 +491,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -534,8 +503,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -548,8 +515,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -562,8 +527,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -576,8 +539,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -590,8 +551,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -604,8 +563,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -618,8 +575,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -632,8 +587,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -646,8 +599,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -660,8 +611,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -674,8 +623,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -688,8 +635,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -702,8 +647,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -716,8 +659,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -730,8 +671,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -744,8 +683,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -758,8 +695,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -772,8 +707,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -786,8 +719,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -800,8 +731,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -814,7 +743,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -826,8 +754,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -840,8 +766,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -854,8 +778,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -868,8 +790,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -882,8 +802,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -896,8 +814,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -910,8 +826,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -924,8 +838,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -938,8 +850,8 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util"
+ "grpc",
+ "grpc_test_util"
],
"headers": [],
"language": "c",
@@ -950,8 +862,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -964,8 +874,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -978,8 +886,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -992,8 +898,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1006,8 +910,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1020,8 +922,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1034,8 +934,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -1049,8 +947,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1063,8 +959,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1077,8 +971,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1091,8 +983,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1105,8 +995,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1119,8 +1007,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1133,8 +1019,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1147,8 +1031,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1161,8 +1043,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1175,8 +1055,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1189,8 +1067,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1203,8 +1079,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1217,8 +1091,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1231,8 +1103,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1245,8 +1115,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1259,8 +1127,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1273,8 +1139,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1287,8 +1151,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1301,8 +1163,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1317,8 +1177,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1334,8 +1192,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1351,8 +1207,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1367,7 +1221,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++"
],
@@ -1380,8 +1233,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1396,8 +1247,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1412,8 +1261,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1428,7 +1275,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++"
],
@@ -1441,8 +1287,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1456,8 +1300,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1482,8 +1324,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1497,8 +1337,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1513,8 +1351,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1530,8 +1366,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1546,8 +1380,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1618,8 +1450,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1634,8 +1464,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1651,8 +1479,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1668,8 +1494,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -1682,7 +1506,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc++_test_config"
@@ -1701,8 +1524,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1717,8 +1538,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1735,8 +1554,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1752,8 +1569,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1770,8 +1585,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1788,8 +1601,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1811,8 +1622,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1835,8 +1644,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -1861,8 +1668,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1877,8 +1682,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1894,8 +1697,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1910,8 +1711,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1926,8 +1725,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1942,8 +1739,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc_test_util"
@@ -1957,8 +1752,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -1973,8 +1766,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -2010,8 +1801,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2027,8 +1816,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2044,8 +1831,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2060,8 +1845,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -2080,7 +1863,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -2093,8 +1875,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2108,8 +1888,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2123,8 +1901,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2138,8 +1914,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2153,8 +1927,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2168,8 +1940,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2183,8 +1953,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2198,8 +1966,6 @@
{
"deps": [
"bad_client_test",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2213,8 +1979,6 @@
{
"deps": [
"bad_ssl_test_server",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2228,8 +1992,6 @@
{
"deps": [
"bad_ssl_test_server",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2242,8 +2004,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2256,8 +2016,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2272,8 +2030,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2288,8 +2044,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2304,8 +2058,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2320,8 +2072,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2336,8 +2086,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2352,8 +2100,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2368,8 +2114,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2384,8 +2128,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2400,8 +2142,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2416,8 +2156,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2432,8 +2170,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2448,8 +2184,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2464,8 +2198,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2480,8 +2212,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2496,8 +2226,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2512,8 +2240,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2528,8 +2254,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2544,8 +2268,6 @@
"deps": [
"end2end_certs",
"end2end_tests",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -2559,8 +2281,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2574,8 +2294,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2589,8 +2307,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2604,8 +2320,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2619,8 +2333,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2634,8 +2346,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2649,8 +2359,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2664,8 +2372,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2679,8 +2385,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2694,8 +2398,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2709,8 +2411,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2724,8 +2424,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2739,8 +2437,6 @@
{
"deps": [
"end2end_nosec_tests",
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -2754,6 +2450,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",
@@ -2774,6 +2476,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",
@@ -2802,147 +2505,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/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/context.h",
"src/core/census/grpc_filter.h",
@@ -3020,6 +2582,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",
@@ -3031,6 +2594,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",
@@ -3083,7 +2655,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/context.h",
@@ -3092,6 +2712,7 @@
"src/core/census/grpc_filter.h",
"src/core/census/initialize.c",
"src/core/census/operation.c",
+ "src/core/census/placeholders.c",
"src/core/census/rpc_metric_id.h",
"src/core/census/tag_set.c",
"src/core/census/tracing.c",
@@ -3245,6 +2866,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",
@@ -3271,6 +2895,57 @@
"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",
"src/core/surface/byte_buffer.c",
@@ -3370,8 +3045,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc"
],
"headers": [
@@ -3383,7 +3056,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",
@@ -3408,13 +3082,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": [
@@ -3424,7 +3098,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",
@@ -3443,20 +3118,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/context.h",
"src/core/census/grpc_filter.h",
@@ -3534,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",
@@ -3582,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/context.h",
@@ -3591,6 +3372,7 @@
"src/core/census/grpc_filter.h",
"src/core/census/initialize.c",
"src/core/census/operation.c",
+ "src/core/census/placeholders.c",
"src/core/census/rpc_metric_id.h",
"src/core/census/tag_set.c",
"src/core/census/tracing.c",
@@ -3743,8 +3525,62 @@
"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",
"src/core/surface/byte_buffer.c",
@@ -3835,7 +3671,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [
@@ -3852,8 +3687,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util",
"test_tcp_server"
@@ -3870,8 +3703,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -3887,7 +3718,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [
@@ -4142,7 +3972,6 @@
},
{
"deps": [
- "gpr",
"grpc_unsecure"
],
"headers": [
@@ -4483,7 +4312,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc++_test_util",
@@ -4503,8 +4331,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4531,7 +4357,6 @@
},
{
"deps": [
- "gpr",
"grpc",
"grpc++",
"grpc_test_util"
@@ -4548,8 +4373,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc++",
"grpc++_test_config",
@@ -4594,6 +4417,7 @@
"test/cpp/qps/driver.h",
"test/cpp/qps/histogram.h",
"test/cpp/qps/interarrival.h",
+ "test/cpp/qps/limit_cores.h",
"test/cpp/qps/perf_db_client.h",
"test/cpp/qps/qps_worker.h",
"test/cpp/qps/report.h",
@@ -4612,6 +4436,8 @@
"test/cpp/qps/driver.h",
"test/cpp/qps/histogram.h",
"test/cpp/qps/interarrival.h",
+ "test/cpp/qps/limit_cores.cc",
+ "test/cpp/qps/limit_cores.h",
"test/cpp/qps/perf_db_client.cc",
"test/cpp/qps/perf_db_client.h",
"test/cpp/qps/qps_worker.cc",
@@ -4630,7 +4456,6 @@
},
{
"deps": [
- "gpr",
"grpc"
],
"headers": [],
@@ -4642,8 +4467,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc_test_util_unsecure",
"grpc_unsecure"
],
@@ -4659,8 +4482,6 @@
},
{
"deps": [
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4677,8 +4498,6 @@
{
"deps": [
"end2end_certs",
- "gpr",
- "gpr_test_util",
"grpc",
"grpc_test_util"
],
@@ -4732,8 +4551,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 39b15cc8b2..b42aa17cbb 100644..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.
#
@@ -37,10 +37,12 @@ import multiprocessing
import sys
import artifact_targets
+import distribtest_targets
import package_targets
_TARGETS = []
_TARGETS += artifact_targets.targets()
+_TARGETS += distribtest_targets.targets()
_TARGETS += package_targets.targets()
def _create_build_map():
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index fdfdc1b271..a23a340b6c 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -13,6 +13,26 @@
"exclude_configs": [],
"flaky": false,
"language": "c",
+ "name": "alarm_test",
+ "platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ]
+ },
+ {
+ "args": [],
+ "ci_platforms": [
+ "linux",
+ "mac",
+ "posix",
+ "windows"
+ ],
+ "cpu_cost": 1.0,
+ "exclude_configs": [],
+ "flaky": false,
+ "language": "c",
"name": "algorithm_test",
"platforms": [
"linux",