aboutsummaryrefslogtreecommitdiffhomepage
path: root/templates
diff options
context:
space:
mode:
Diffstat (limited to 'templates')
-rw-r--r--templates/BUILD.template32
-rw-r--r--templates/Makefile.template7
-rw-r--r--templates/binding.gyp.template2
-rw-r--r--templates/composer.json.template27
-rw-r--r--templates/grpc.gemspec.template5
-rw-r--r--templates/package.json.template48
-rw-r--r--templates/package.xml.template27
-rw-r--r--templates/src/core/lib/surface/version.c.template (renamed from templates/src/core/surface/version.c.template)2
-rw-r--r--templates/src/core/plugin_registry.template52
-rw-r--r--templates/src/csharp/Grpc.Core/VersionInfo.cs.template13
-rw-r--r--templates/src/csharp/build_packages.bat.template13
-rw-r--r--templates/src/node/tools/package.json.template40
-rw-r--r--templates/src/python/grpcio/grpc_core_dependencies.py.template2
-rw-r--r--templates/src/python/grpcio/grpc_version.py.template2
-rw-r--r--templates/src/ruby/lib/grpc/version.rb.template2
-rw-r--r--templates/test/core/end2end/end2end_defs.include20
-rw-r--r--templates/tools/dockerfile/apt_get_basic.include3
-rw-r--r--templates/tools/dockerfile/clang_update.include32
-rw-r--r--templates/tools/dockerfile/gcp_api_libraries.include4
-rw-r--r--templates/tools/dockerfile/go_path.include2
-rw-r--r--templates/tools/dockerfile/java_deps.include17
-rw-r--r--templates/tools/dockerfile/run_tests_addons.include3
-rw-r--r--templates/tools/dockerfile/stress_test/grpc_interop_stress_cxx/Dockerfile.template40
-rw-r--r--templates/tools/dockerfile/stress_test/grpc_interop_stress_go/Dockerfile.template37
-rw-r--r--templates/tools/dockerfile/stress_test/grpc_interop_stress_java/Dockerfile.template40
-rw-r--r--templates/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile.template39
-rw-r--r--templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template4
-rw-r--r--templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/cxx_wheezy_x64/Dockerfile.template (renamed from templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template)17
-rw-r--r--templates/tools/dockerfile/test/cxx_wheezy_x64/post-git-setup.sh.template (renamed from templates/tools/dockerfile/test/cxx_squeeze_x64/post-git-setup.sh.template)0
-rw-r--r--templates/tools/dockerfile/test/fuzzer/Dockerfile.template43
-rw-r--r--templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template2
-rw-r--r--templates/tools/dockerfile/test/sanity/Dockerfile.template11
-rw-r--r--templates/tools/fuzzer/runners.template54
-rw-r--r--templates/tools/openssl/use_openssl.sh.template2
-rw-r--r--templates/tools/run_tests/sources_and_headers.json.template22
-rw-r--r--templates/vsprojects/buildtests_c.sln.template2
-rw-r--r--templates/vsprojects/grpc.sln.template2
-rw-r--r--templates/vsprojects/vcxproj.template2
45 files changed, 596 insertions, 90 deletions
diff --git a/templates/BUILD.template b/templates/BUILD.template
index 54dc697125..23a656c360 100644
--- a/templates/BUILD.template
+++ b/templates/BUILD.template
@@ -49,7 +49,9 @@
]
if target_dict.get('build', None) == 'protoc':
deps.append("//external:protobuf_compiler")
- if target_dict['name'] == 'grpc++_unsecure' or target_dict['name'] == 'grpc++':
+ if (target_dict['name'] == 'grpc++_unsecure' or
+ target_dict['name'] == 'grpc++' or
+ target_dict['name'] == 'grpc++_codegen_lib'):
deps.append("//external:protobuf_clib")
elif target_dict['name'] == 'grpc':
deps.append("//external:zlib")
@@ -60,7 +62,7 @@
deps.append(':%s' % (d))
return deps
%>
-
+
% for lib in libs:
% if lib.build in ("all", "protoc"):
${cc_library(lib)}
@@ -80,13 +82,19 @@
% endfor
<%def name="cc_library(lib)">
+ <%
+ lib_hdrs = lib.get("headers", [])
+ hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
+ srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
+ uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
+ %>
cc_library(
name = "${lib.name}",
srcs = [
- % for hdr in lib.get("headers", []):
+ % for hdr in hdrs:
"${hdr}",
% endfor
- % for src in lib.src:
+ % for src in srcs:
"${src}",
% endfor
],
@@ -103,6 +111,9 @@
% for dep in get_deps(lib):
"${dep}",
% endfor
+ % if uses_nanopb:
+ "//external:nanopb",
+ % endif
],
% if lib.name in ("grpc", "grpc_unsecure"):
copts = [
@@ -113,10 +124,16 @@
</%def>
<%def name="objc_library(lib)">
+ <%
+ lib_hdrs = lib.get("headers", [])
+ hdrs = [h for h in lib_hdrs if not h.startswith('third_party/nanopb')]
+ srcs = [s for s in lib.src if not s.startswith('third_party/nanopb')]
+ uses_nanopb = len(lib_hdrs) != len(hdrs) or len(srcs) != len(lib.src)
+ %>
objc_library(
name = "${lib.name}_objc",
srcs = [
- % for src in lib.src:
+ % for src in srcs:
"${src}",
% endfor
],
@@ -124,7 +141,7 @@
% for hdr in lib.get("public_headers", []):
"${hdr}",
% endfor
- % for hdr in lib.get("headers", []):
+ % for hdr in hdrs:
"${hdr}",
% endfor
],
@@ -139,6 +156,9 @@
% if lib.get('secure', False):
"//external:libssl_objc",
% endif
+ % if uses_nanopb:
+ "//external:nanopb",
+ % endif
],
% if lib.get("baselib", false):
sdk_dylibs = ["libz"],
diff --git a/templates/Makefile.template b/templates/Makefile.template
index c54c146620..e84ceebf22 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -7,7 +7,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -1737,7 +1737,7 @@
$(LIBDIR)/$(CONFIG)/lib${dep}.a\
% endfor
- % if tgt.language == "c++" or tgt.boringssl:
+ % if tgt.language == "c++" or tgt.boringssl or tgt.build == 'fuzzer':
## C++ targets specificies.
% if tgt.build == 'protoc':
$(E) "[HOSTLD] Linking $@"
@@ -1791,6 +1791,9 @@
% elif tgt.language == 'c++' and tgt.build == 'benchmark':
$(GTEST_LIB)\
% endif
+ % if tgt.build == 'fuzzer':
+ -lFuzzer\
+ % endif
-o $(BINDIR)/$(CONFIG)/${tgt.name}
% if tgt.build == 'protoc' or tgt.language == 'c++':
diff --git a/templates/binding.gyp.template b/templates/binding.gyp.template
index 3ffbc06643..40d430f792 100644
--- a/templates/binding.gyp.template
+++ b/templates/binding.gyp.template
@@ -7,7 +7,7 @@
# This file can be regenerated from the template by running
# tools/buildgen/generate_projects.sh
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/composer.json.template b/templates/composer.json.template
new file mode 100644
index 0000000000..275b4655ce
--- /dev/null
+++ b/templates/composer.json.template
@@ -0,0 +1,27 @@
+%YAML 1.2
+--- |
+ {
+ "name": "grpc/grpc",
+ "type": "library",
+ "description": "gRPC library for PHP",
+ "version": "${settings.php_version.php()}",
+ "keywords": ["rpc"],
+ "homepage": "http://grpc.io",
+ "license": "BSD-3-Clause",
+ "repositories": [
+ {
+ "type": "vcs",
+ "url": "https://github.com/stanley-cheung/Protobuf-PHP"
+ }
+ ],
+ "require": {
+ "php": ">=5.5.0",
+ "datto/protobuf-php": "dev-master",
+ "google/auth": "v0.7"
+ },
+ "autoload": {
+ "psr-4": {
+ "Grpc\\": "src/php/lib/Grpc/"
+ }
+ }
+ }
diff --git a/templates/grpc.gemspec.template b/templates/grpc.gemspec.template
index 701e1c7485..ce775ffb90 100644
--- a/templates/grpc.gemspec.template
+++ b/templates/grpc.gemspec.template
@@ -26,10 +26,6 @@
s.files += Dir.glob('include/grpc/**/*')
s.test_files = Dir.glob('src/ruby/spec/**/*')
s.bindir = 'src/ruby/bin'
- ${'%'}w(math noproto).each do |b|
- s.executables += ["#{b}_client.rb", "#{b}_server.rb"]
- end
- s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server)
s.require_paths = %w( src/ruby/bin src/ruby/lib src/ruby/pb )
s.platform = Gem::Platform::RUBY
@@ -37,6 +33,7 @@
s.add_dependency 'googleauth', '~> 0.5.1'
s.add_development_dependency 'bundler', '~> 1.9'
+ s.add_development_dependency 'facter', '~> 2.4'
s.add_development_dependency 'logging', '~> 2.0'
s.add_development_dependency 'simplecov', '~> 0.9'
s.add_development_dependency 'rake', '~> 10.4'
diff --git a/templates/package.json.template b/templates/package.json.template
index 99e8287b35..11718b1ccb 100644
--- a/templates/package.json.template
+++ b/templates/package.json.template
@@ -21,7 +21,7 @@
"lib": "src/node/src"
},
"scripts": {
- "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js",
+ "lint": "node ./node_modules/jshint/bin/jshint src/node/src src/node/test src/node/interop src/node/index.js --exclude-path=src/node/.jshintignore",
"test": "./node_modules/.bin/mocha src/node/test && npm run-script lint",
"gen_docs": "./node_modules/.bin/jsdoc -c src/node/jsdoc_conf.json",
"coverage": "./node_modules/.bin/istanbul cover ./node_modules/.bin/_mocha src/node/test",
@@ -29,6 +29,7 @@
},
"bundledDependencies": ["node-pre-gyp"],
"dependencies": {
+ "arguejs": "^0.2.3",
"lodash": "^3.9.3",
"nan": "^2.0.0",
"protobufjs": "^4.0.0"
@@ -36,6 +37,7 @@
"devDependencies": {
"async": "^1.5.0",
"google-auth-library": "^0.9.2",
+ "google-protobuf": "^3.0.0-alpha.5",
"istanbul": "^0.3.21",
"jsdoc": "^3.3.2",
"jshint": "^2.5.0",
@@ -62,22 +64,36 @@
"src/node/health_check",
"src/proto",
"etc",
- % for module in node_modules:
- % for file in module.headers + module.src + module.js:
- "${file}",
- % endfor
- % for dep in module.transitive_deps:
- % for lib in libs:
- % if lib.name == dep:
- % for file in lib.get('public_headers', []) + lib.headers + lib.src:
- "${file}",
- % endfor
- % endif
- % endfor
- % endfor
- % endfor
+ "src/node/index.js",
+ "src/node/src",
+ "src/node/ext",
+ "include/grpc",
+ "src/core",
+ "third_party/nanopb",
+ "third_party/zlib",
+ "third_party/boringssl",
"binding.gyp"
],
"main": "src/node/index.js",
- "license": "BSD-3-Clause"
+ "license": "BSD-3-Clause",
+ "jshintConfig" : {
+ "bitwise": true,
+ "curly": true,
+ "eqeqeq": true,
+ "esnext": true,
+ "freeze": true,
+ "immed": true,
+ "indent": 2,
+ "latedef": "nofunc",
+ "maxlen": 80,
+ "mocha": true,
+ "newcap": true,
+ "node": true,
+ "noarg": true,
+ "quotmark": "single",
+ "strict": true,
+ "trailing": true,
+ "undef": true,
+ "unused": "vars"
+ }
}
diff --git a/templates/package.xml.template b/templates/package.xml.template
index 8f757401e4..63132dac94 100644
--- a/templates/package.xml.template
+++ b/templates/package.xml.template
@@ -12,11 +12,11 @@
<email>grpc-packages@google.com</email>
<active>yes</active>
</lead>
- <date>2016-03-01</date>
+ <date>2016-04-19</date>
<time>16:06:07</time>
<version>
- <release>0.14.0</release>
- <api>0.14.0</api>
+ <release>${settings.php_version.php()}</release>
+ <api>${settings.php_version.php()}</api>
</version>
<stability>
<release>beta</release>
@@ -24,7 +24,7 @@
</stability>
<license>BSD</license>
<notes>
- - Increase unit test code coverage #5225
+ - destroy grpc_byte_buffer after startBatch #6096
</notes>
<contents>
<dir baseinstalldir="/" name="/">
@@ -157,8 +157,8 @@
</release>
<release>
<version>
- <release>0.14.0</release>
- <api>0.14.0</api>
+ <release>0.8.1</release>
+ <api>0.8.1</api>
</version>
<stability>
<release>beta</release>
@@ -170,5 +170,20 @@
- Increase unit test code coverage #5225
</notes>
</release>
+ <release>
+ <version>
+ <release>${settings.php_version.php()}</release>
+ <api>${settings.php_version.php()}</api>
+ </version>
+ <stability>
+ <release>beta</release>
+ <api>beta</api>
+ </stability>
+ <date>2016-04-19</date>
+ <license>BSD</license>
+ <notes>
+ - destroy grpc_byte_buffer after startBatch #6096
+ </notes>
+ </release>
</changelog>
</package>
diff --git a/templates/src/core/surface/version.c.template b/templates/src/core/lib/surface/version.c.template
index f2b3cfdc58..5f0273e49d 100644
--- a/templates/src/core/surface/version.c.template
+++ b/templates/src/core/lib/surface/version.c.template
@@ -2,7 +2,7 @@
--- |
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/core/plugin_registry.template b/templates/src/core/plugin_registry.template
new file mode 100644
index 0000000000..352682c3f0
--- /dev/null
+++ b/templates/src/core/plugin_registry.template
@@ -0,0 +1,52 @@
+%YAML 1.2
+---
+foreach: libs
+cond: selected.get('generate_plugin_registry', False)
+output_name: ${selected.name}_plugin_registry.c
+template: |
+ /*
+ *
+ * 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.
+ *
+ */
+
+ #include <grpc/grpc.h>
+
+ %for plugin in selected.plugins:
+ extern void ${plugin}_init(void);
+ extern void ${plugin}_shutdown(void);
+ %endfor
+
+ void grpc_register_built_in_plugins(void) {
+ %for plugin in selected.plugins:
+ grpc_register_plugin(${plugin}_init,
+ ${plugin}_shutdown);
+ %endfor
+ }
diff --git a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
index 59864fa058..96cf2ee17f 100644
--- a/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
+++ b/templates/src/csharp/Grpc.Core/VersionInfo.cs.template
@@ -2,7 +2,7 @@
--- |
#region Copyright notice and license
- // Copyright 2015-2016, Google Inc.
+ // Copyright 2015, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -37,13 +37,20 @@
{
/// <summary>
/// Provides info about current version of gRPC.
+ /// See https://codingforsmarties.wordpress.com/2016/01/21/how-to-version-assemblies-destined-for-nuget/
+ /// for rationale about assembly versioning.
/// </summary>
public static class VersionInfo
{
/// <summary>
- /// Current version of gRPC C# assemblies
+ /// Current <c>AssemblyVersion</c> attribute of gRPC C# assemblies
/// </summary>
- public const string CurrentAssemblyVersion = "${settings.version.major}.${settings.version.minor}.${settings.version.patch}.0";
+ public const string CurrentAssemblyVersion = "1.0.0.0";
+
+ /// <summary>
+ /// Current <c>AssemblyFileVersion</c> of gRPC C# assemblies
+ /// </summary>
+ public const string CurrentAssemblyFileVersion = "${settings.version.major}.${settings.version.minor}.${settings.version.patch}.0";
/// <summary>
/// Current version of gRPC C#
diff --git a/templates/src/csharp/build_packages.bat.template b/templates/src/csharp/build_packages.bat.template
index 32455683be..3b445a8ac9 100644
--- a/templates/src/csharp/build_packages.bat.template
+++ b/templates/src/csharp/build_packages.bat.template
@@ -14,12 +14,12 @@
@rem Collect the artifacts built by the previous build step if running on Jenkins
@rem TODO(jtattermusch): is there a better way to do this?
- xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=windows\artifacts\* grpc.native.csharp\windows_x86${"\\"}
- xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=windows\artifacts\* grpc.native.csharp\windows_x64${"\\"}
- xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=linux\artifacts\* grpc.native.csharp\linux_x86${"\\"}
- xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=linux\artifacts\* grpc.native.csharp\linux_x64${"\\"}
- xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=macos\artifacts\* grpc.native.csharp\macosx_x86${"\\"}
- xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=macos\artifacts\* grpc.native.csharp\macosx_x64${"\\"}
+ xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=windows\artifacts\* Grpc.Core\windows_x86${"\\"}
+ xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=windows\artifacts\* Grpc.Core\windows_x64${"\\"}
+ xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=linux\artifacts\* Grpc.Core\linux_x86${"\\"}
+ xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=linux\artifacts\* Grpc.Core\linux_x64${"\\"}
+ xcopy /Y /I ..\..\architecture=x86,language=csharp,platform=macos\artifacts\* Grpc.Core\macosx_x86${"\\"}
+ xcopy /Y /I ..\..\architecture=x64,language=csharp,platform=macos\artifacts\* Grpc.Core\macosx_x64${"\\"}
@rem Collect protoc artifacts built by the previous build step
xcopy /Y /I ..\..\architecture=x86,language=protoc,platform=windows\artifacts\* protoc_plugins\windows_x86${"\\"}
@@ -44,7 +44,6 @@
endlocal
- %%NUGET% pack grpc.native.csharp\grpc.native.csharp.nuspec -Version %VERSION% || goto :error
%%NUGET% pack Grpc.Auth\Grpc.Auth.nuspec -Symbols -Version %VERSION% || goto :error
%%NUGET% pack Grpc.Core\Grpc.Core.nuspec -Symbols -Version %VERSION% || goto :error
%%NUGET% pack Grpc.HealthCheck\Grpc.HealthCheck.nuspec -Symbols -Version %VERSION_WITH_BETA% -Properties ProtobufVersion=%PROTOBUF_VERSION% || goto :error
diff --git a/templates/src/node/tools/package.json.template b/templates/src/node/tools/package.json.template
new file mode 100644
index 0000000000..c69de7c989
--- /dev/null
+++ b/templates/src/node/tools/package.json.template
@@ -0,0 +1,40 @@
+%YAML 1.2
+--- |
+ {
+ "name": "grpc-tools",
+ "version": "${settings.node_version}",
+ "author": "Google Inc.",
+ "description": "Tools for developing with gRPC on Node.js",
+ "homepage": "http://www.grpc.io/",
+ "repository": {
+ "type": "git",
+ "url": "https://github.com/grpc/grpc.git"
+ },
+ "bugs": "https://github.com/grpc/grpc/issues",
+ "contributors": [
+ {
+ "name": "Michael Lumish",
+ "email": "mlumish@google.com"
+ }
+ ],
+ "bin": {
+ "grpc-tools-protoc": "./bin/protoc.js"
+ },
+ "scripts": {
+ "install": "./node_modules/.bin/node-pre-gyp install"
+ },
+ "bundledDependencies": ["node-pre-gyp"],
+ "binary": {
+ "module_name": "grpc_tools",
+ "host": "https://storage.googleapis.com/",
+ "remote_path": "grpc-precompiled-binaries/node/{name}/v{version}",
+ "package_name": "{platform}-{arch}.tar.gz",
+ "module_path": "bin"
+ },
+ "files": [
+ "index.js",
+ "bin/protoc.js",
+ "LICENSE"
+ ],
+ "main": "index.js"
+ }
diff --git a/templates/src/python/grpcio/grpc_core_dependencies.py.template b/templates/src/python/grpcio/grpc_core_dependencies.py.template
index 2fc7a03f18..01770a9e91 100644
--- a/templates/src/python/grpcio/grpc_core_dependencies.py.template
+++ b/templates/src/python/grpcio/grpc_core_dependencies.py.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/python/grpcio/grpc_version.py.template b/templates/src/python/grpcio/grpc_version.py.template
index aaacab1a50..39a6932ebb 100644
--- a/templates/src/python/grpcio/grpc_version.py.template
+++ b/templates/src/python/grpcio/grpc_version.py.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/src/ruby/lib/grpc/version.rb.template b/templates/src/ruby/lib/grpc/version.rb.template
index 6488614aed..9c7bc13f6c 100644
--- a/templates/src/ruby/lib/grpc/version.rb.template
+++ b/templates/src/ruby/lib/grpc/version.rb.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/test/core/end2end/end2end_defs.include b/templates/test/core/end2end/end2end_defs.include
index 929827e145..b828f84f1c 100644
--- a/templates/test/core/end2end/end2end_defs.include
+++ b/templates/test/core/end2end/end2end_defs.include
@@ -1,7 +1,7 @@
<%def name="end2end_selector(tests)">
/*
*
- * Copyright 2015-2016, Google Inc.
+ * Copyright 2015, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -36,17 +36,33 @@
/* This file is auto-generated */
#include "test/core/end2end/end2end_tests.h"
+
+#include <stdbool.h>
#include <string.h>
+
#include <grpc/support/log.h>
+static bool g_pre_init_called = false;
+
% for test in tests:
extern void ${test}(grpc_end2end_test_config config);
+extern void ${test}_pre_init(void);
% endfor
+void grpc_end2end_tests_pre_init(void) {
+ GPR_ASSERT(!g_pre_init_called);
+ g_pre_init_called = true;
+% for test in tests:
+ ${test}_pre_init();
+% endfor
+}
+
void grpc_end2end_tests(int argc, char **argv,
grpc_end2end_test_config config) {
int i;
+ GPR_ASSERT(g_pre_init_called);
+
if (argc <= 1) {
% for test in tests:
${test}(config);
@@ -64,4 +80,4 @@ void grpc_end2end_tests(int argc, char **argv,
gpr_log(GPR_DEBUG, "not a test: '%s'", argv[i]);
abort();
}
-}</%def> \ No newline at end of file
+}</%def>
diff --git a/templates/tools/dockerfile/apt_get_basic.include b/templates/tools/dockerfile/apt_get_basic.include
index 547ce01a30..9237e7dace 100644
--- a/templates/tools/dockerfile/apt_get_basic.include
+++ b/templates/tools/dockerfile/apt_get_basic.include
@@ -1,4 +1,3 @@
-<%page args="skip_golang=False"/>\
# Install Git and basic packages.
RUN apt-get update && apt-get install -y ${'\\'}
autoconf ${'\\'}
@@ -10,9 +9,7 @@ RUN apt-get update && apt-get install -y ${'\\'}
gcc ${'\\'}
gcc-multilib ${'\\'}
git ${'\\'}
-% if not skip_golang:
golang ${'\\'}
-% endif
gyp ${'\\'}
lcov ${'\\'}
libc6 ${'\\'}
diff --git a/templates/tools/dockerfile/clang_update.include b/templates/tools/dockerfile/clang_update.include
new file mode 100644
index 0000000000..4f827c8dc2
--- /dev/null
+++ b/templates/tools/dockerfile/clang_update.include
@@ -0,0 +1,32 @@
+#=================
+# Update clang to a version with improved tsan and fuzzing capabilities
+
+RUN apt-get update && apt-get -y install python cmake && apt-get clean
+
+RUN git clone -n -b release_38 http://llvm.org/git/llvm.git && ${'\\'}
+ cd llvm && git checkout ad57503 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/clang.git && ${'\\'}
+ cd clang && git checkout ad2c56e && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/compiler-rt.git && ${'\\'}
+ cd compiler-rt && git checkout 3176922 && cd ..
+RUN git clone -n -b release_38 ${'\\'}
+ http://llvm.org/git/clang-tools-extra.git && cd clang-tools-extra && ${'\\'}
+ git checkout c288525 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxx.git && ${'\\'}
+ cd libcxx && git checkout fda3549 && cd ..
+RUN git clone -n -b release_38 http://llvm.org/git/libcxxabi.git && ${'\\'}
+ cd libcxxabi && git checkout 8d4e51d && cd ..
+
+RUN mv clang llvm/tools
+RUN mv compiler-rt llvm/projects
+RUN mv clang-tools-extra llvm/tools/clang/tools
+RUN mv libcxx llvm/projects
+RUN mv libcxxabi llvm/projects
+
+RUN mkdir llvm-build
+RUN cd llvm-build && cmake ${'\\'}
+ -DCMAKE_BUILD_TYPE:STRING=Release ${'\\'}
+ -DCMAKE_INSTALL_PREFIX:STRING=/usr ${'\\'}
+ -DLLVM_TARGETS_TO_BUILD:STRING=X86 ${'\\'}
+ ../llvm
+RUN make -C llvm-build -j 12 && make -C llvm-build install && rm -rf llvm-build
diff --git a/templates/tools/dockerfile/gcp_api_libraries.include b/templates/tools/dockerfile/gcp_api_libraries.include
new file mode 100644
index 0000000000..669b0f887c
--- /dev/null
+++ b/templates/tools/dockerfile/gcp_api_libraries.include
@@ -0,0 +1,4 @@
+# Google Cloud platform API libraries
+RUN apt-get update && apt-get install -y python-pip && apt-get clean
+RUN pip install --upgrade google-api-python-client
+
diff --git a/templates/tools/dockerfile/go_path.include b/templates/tools/dockerfile/go_path.include
new file mode 100644
index 0000000000..a41cc49d38
--- /dev/null
+++ b/templates/tools/dockerfile/go_path.include
@@ -0,0 +1,2 @@
+# Using login shell removes Go from path, so we add it.
+RUN ln -s /usr/local/go/bin/go /usr/local/bin
diff --git a/templates/tools/dockerfile/java_deps.include b/templates/tools/dockerfile/java_deps.include
new file mode 100644
index 0000000000..40d70e06d1
--- /dev/null
+++ b/templates/tools/dockerfile/java_deps.include
@@ -0,0 +1,17 @@
+# Install JDK 8 and Git
+#
+RUN echo oracle-java8-installer shared/accepted-oracle-license-v1-1 select true | /usr/bin/debconf-set-selections && ${'\\'}
+ echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list && ${'\\'}
+ echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list && ${'\\'}
+ apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
+
+RUN apt-get update && apt-get -y install ${'\\'}
+ git ${'\\'}
+ libapr1 ${'\\'}
+ oracle-java8-installer ${'\\'}
+ && ${'\\'}
+ apt-get clean && rm -r /var/cache/oracle-jdk8-installer/
+
+ENV JAVA_HOME /usr/lib/jvm/java-8-oracle
+ENV PATH $PATH:$JAVA_HOME/bin
+
diff --git a/templates/tools/dockerfile/run_tests_addons.include b/templates/tools/dockerfile/run_tests_addons.include
index 30d22be298..27ac67f5d8 100644
--- a/templates/tools/dockerfile/run_tests_addons.include
+++ b/templates/tools/dockerfile/run_tests_addons.include
@@ -1,10 +1,7 @@
-<%page args="skip_zookeeper=False"/>\
<%include file="ccache_setup.include"/>
-% if not skip_zookeeper:
#======================
# Zookeeper dependencies
# TODO(jtattermusch): is zookeeper still needed?
RUN apt-get install -y libzookeeper-mt-dev
-% endif
RUN mkdir /var/local/jenkins
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_cxx/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_cxx/Dockerfile.template
new file mode 100644
index 0000000000..ac087c5da7
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_cxx/Dockerfile.template
@@ -0,0 +1,40 @@
+%YAML 1.2
+--- |
+ # 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
+
+ <%include file="../../apt_get_basic.include"/>
+ <%include file="../../ccache_setup.include"/>
+ <%include file="../../cxx_deps.include"/>
+ <%include file="../../gcp_api_libraries.include"/>
+ <%include file="../../clang_update.include"/>
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_go/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_go/Dockerfile.template
new file mode 100644
index 0000000000..3ed3d6556f
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_go/Dockerfile.template
@@ -0,0 +1,37 @@
+%YAML 1.2
+--- |
+ # Copyright 2016, Google Inc.
+ # All rights reserved.
+ #
+ # Redistribution and use in source and binary forms, with or without
+ # modification, are permitted provided that the following conditions are
+ # met:
+ #
+ # * Redistributions of source code must retain the above copyright
+ # notice, this list of conditions and the following disclaimer.
+ # * Redistributions in binary form must reproduce the above
+ # copyright notice, this list of conditions and the following disclaimer
+ # in the documentation and/or other materials provided with the
+ # distribution.
+ # * Neither the name of Google Inc. nor the names of its
+ # contributors may be used to endorse or promote products derived from
+ # this software without specific prior written permission.
+ #
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ FROM golang:1.5
+
+ <%include file="../../gcp_api_libraries.include"/>
+ <%include file="../../go_path.include"/>
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_java/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_java/Dockerfile.template
new file mode 100644
index 0000000000..17ed99fd2e
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_java/Dockerfile.template
@@ -0,0 +1,40 @@
+%YAML 1.2
+--- |
+ # Copyright 2016, Google Inc.
+ # All rights reserved.
+ #
+ # Redistribution and use in source and binary forms, with or without
+ # modification, are permitted provided that the following conditions are
+ # met:
+ #
+ # * Redistributions of source code must retain the above copyright
+ # notice, this list of conditions and the following disclaimer.
+ # * Redistributions in binary form must reproduce the above
+ # copyright notice, this list of conditions and the following disclaimer
+ # in the documentation and/or other materials provided with the
+ # distribution.
+ # * Neither the name of Google Inc. nor the names of its
+ # contributors may be used to endorse or promote products derived from
+ # this software without specific prior written permission.
+ #
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ FROM debian:jessie
+
+ <%include file="../../apt_get_basic.include"/>
+ <%include file="../../ccache_setup.include"/>
+ <%include file="../../cxx_deps.include"/>
+ <%include file="../../gcp_api_libraries.include"/>
+ <%include file="../../java_deps.include"/>
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile.template b/templates/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile.template
new file mode 100644
index 0000000000..c50d38d1ec
--- /dev/null
+++ b/templates/tools/dockerfile/stress_test/grpc_interop_stress_node/Dockerfile.template
@@ -0,0 +1,39 @@
+%YAML 1.2
+--- |
+ # Copyright 2016, Google Inc.
+ # All rights reserved.
+ #
+ # Redistribution and use in source and binary forms, with or without
+ # modification, are permitted provided that the following conditions are
+ # met:
+ #
+ # * Redistributions of source code must retain the above copyright
+ # notice, this list of conditions and the following disclaimer.
+ # * Redistributions in binary form must reproduce the above
+ # copyright notice, this list of conditions and the following disclaimer
+ # in the documentation and/or other materials provided with the
+ # distribution.
+ # * Neither the name of Google Inc. nor the names of its
+ # contributors may be used to endorse or promote products derived from
+ # this software without specific prior written permission.
+ #
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+ FROM debian:jessie
+
+ <%include file="../../apt_get_basic.include"/>
+ <%include file="../../node_deps.include"/>
+ <%include file="../../gcp_api_libraries.include"/>
+ <%include file="../../run_tests_addons.include"/>
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
index 1c01deac3d..4cb8d3b088 100644
--- a/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/csharp_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
index 842c534805..04abf9f741 100644
--- a/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -33,7 +33,7 @@
<%include file="../../apt_get_basic.include"/>
<%include file="../../cxx_deps.include"/>
+ <%include file="../../clang_update.include"/>
<%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]
- \ No newline at end of file
diff --git a/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template b/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
index 4e95cdd65e..7f43e759fc 100644
--- a/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_jessie_x86/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
index d824220afe..fbed53930b 100644
--- a/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_ubuntu1404_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
index 6b30274892..c11cefd283 100644
--- a/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_ubuntu1604_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template b/templates/tools/dockerfile/test/cxx_wheezy_x64/Dockerfile.template
index 49371aaa3b..7956798781 100644
--- a/templates/tools/dockerfile/test/cxx_squeeze_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/cxx_wheezy_x64/Dockerfile.template
@@ -29,20 +29,19 @@
# (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:squeeze
+ FROM debian:wheezy
- <%include file="../../apt_get_basic.include" args="skip_golang=True"/>
+ <%include file="../../apt_get_basic.include"/>
+ <%include file="../../cxx_deps.include"/>
- # libgflags-dev is not available on squeezy
- RUN apt-get update && apt-get -y install libgtest-dev libc++-dev clang && apt-get clean
-
- RUN apt-get update && apt-get -y install python-pip && apt-get clean
- RUN pip install argparse
+ RUN apt-get update && apt-get install -y ${'\\'}
+ gcc-4.4 ${'\\'}
+ gcc-4.4-multilib
RUN wget ${openssl_fallback.base_uri + openssl_fallback.tarball}
- ENV POST_GIT_STEP tools/dockerfile/test/cxx_squeeze_x64/post-git-setup.sh
+ ENV POST_GIT_STEP tools/dockerfile/test/cxx_wheezy_x64/post-git-setup.sh
- <%include file="../../run_tests_addons.include" args="skip_zookeeper=True"/>
+ <%include file="../../run_tests_addons.include"/>
# Define the default command.
CMD ["bash"]
diff --git a/templates/tools/dockerfile/test/cxx_squeeze_x64/post-git-setup.sh.template b/templates/tools/dockerfile/test/cxx_wheezy_x64/post-git-setup.sh.template
index b885101748..b885101748 100644
--- a/templates/tools/dockerfile/test/cxx_squeeze_x64/post-git-setup.sh.template
+++ b/templates/tools/dockerfile/test/cxx_wheezy_x64/post-git-setup.sh.template
diff --git a/templates/tools/dockerfile/test/fuzzer/Dockerfile.template b/templates/tools/dockerfile/test/fuzzer/Dockerfile.template
new file mode 100644
index 0000000000..33df275908
--- /dev/null
+++ b/templates/tools/dockerfile/test/fuzzer/Dockerfile.template
@@ -0,0 +1,43 @@
+%YAML 1.2
+--- |
+ # Copyright 2015, 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
+
+ <%include file="../../apt_get_basic.include"/>
+ <%include file="../../cxx_deps.include"/>
+ <%include file="../../clang_update.include"/>
+ <%include file="../../run_tests_addons.include"/>
+ RUN clang++ -c -g -O2 -std=c++11 llvm/lib/Fuzzer/*.cpp -IFuzzer
+ RUN ar ruv libFuzzer.a Fuzzer*.o
+ RUN mv libFuzzer.a /usr/lib
+ RUN rm -f Fuzzer*.o
+ # Define the default command.
+ CMD ["bash"]
diff --git a/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
index 10551a574e..5a6233343e 100644
--- a/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/node_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
index d7172398a9..fffac89efc 100644
--- a/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/php_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
index 9e68b3ef91..46fb84ba83 100644
--- a/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/python_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template b/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
index db777bebb4..70baddffbf 100644
--- a/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
+++ b/templates/tools/dockerfile/test/ruby_jessie_x64/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/dockerfile/test/sanity/Dockerfile.template b/templates/tools/dockerfile/test/sanity/Dockerfile.template
index ad1d92e7cb..8d6f52db54 100644
--- a/templates/tools/dockerfile/test/sanity/Dockerfile.template
+++ b/templates/tools/dockerfile/test/sanity/Dockerfile.template
@@ -1,6 +1,6 @@
%YAML 1.2
--- |
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
@@ -34,7 +34,14 @@
<%include file="../../apt_get_basic.include"/>
#========================
# Sanity test dependencies
- RUN apt-get update && apt-get install -y python-pip
+ RUN apt-get update && apt-get install -y ${"\\"}
+ python-pip ${"\\"}
+ autoconf ${"\\"}
+ automake ${"\\"}
+ libtool ${"\\"}
+ curl ${"\\"}
+ python-virtualenv ${"\\"}
+ python-lxml
RUN pip install simplejson mako
#===================
diff --git a/templates/tools/fuzzer/runners.template b/templates/tools/fuzzer/runners.template
new file mode 100644
index 0000000000..e84a89a180
--- /dev/null
+++ b/templates/tools/fuzzer/runners.template
@@ -0,0 +1,54 @@
+%YAML 1.2
+---
+foreach: targets
+cond: selected.build == 'fuzzer'
+output_name: ${selected.name}.sh
+template: |
+ #!/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.
+ #
+
+ flags="-max_total_time=$runtime -artifact_prefix=fuzzer_output/ -max_len=${selected.maxlen} -timeout=120"
+
+ %if selected.get('dict'):
+ flags="$flags -dict=${selected.dict}"
+ %endif
+
+ if [ "$jobs" != "1" ]
+ then
+ flags="-jobs=$jobs -workers=$jobs $flags"
+ fi
+
+ if [ "$config" == "asan-trace-cmp" ]
+ then
+ flags="-use_traces=1 $flags"
+ fi
+
+ bins/$config/${selected.name} $flags fuzzer_output ${' '.join(selected.corpus_dirs)}
diff --git a/templates/tools/openssl/use_openssl.sh.template b/templates/tools/openssl/use_openssl.sh.template
index 5fb377154a..237a92b02f 100644
--- a/templates/tools/openssl/use_openssl.sh.template
+++ b/templates/tools/openssl/use_openssl.sh.template
@@ -2,7 +2,7 @@
--- |
#!/bin/bash
- # Copyright 2015-2016, Google Inc.
+ # Copyright 2015, Google Inc.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
diff --git a/templates/tools/run_tests/sources_and_headers.json.template b/templates/tools/run_tests/sources_and_headers.json.template
index 18b9bc2654..07559828dc 100644
--- a/templates/tools/run_tests/sources_and_headers.json.template
+++ b/templates/tools/run_tests/sources_and_headers.json.template
@@ -12,11 +12,13 @@
out.extend(fmt % name for fmt in ['%s.grpc.pb.h', '%s.pb.h'])
return out
- def all_targets(targets, libs):
+ def all_targets(targets, libs, filegroups):
for tgt in targets:
yield ('target', tgt)
for tgt in libs:
yield ('lib', tgt)
+ for tgt in filegroups:
+ yield ('filegroup', tgt)
def no_protos_filter(src):
return os.path.splitext(src)[1] != '.proto'
@@ -38,13 +40,15 @@
"language": tgt.language,
"third_party": tgt.boringssl or tgt.zlib,
"src": sorted(
- filter_srcs(tgt.src, (no_protos_filter, no_third_party_filter)) +
- filter_srcs(tgt.get('public_headers', []), (no_protos_filter, no_third_party_filter)) +
- filter_srcs(tgt.get('headers', []), (no_third_party_filter,))),
+ filter_srcs(tgt.own_src, (no_protos_filter, no_third_party_filter)) +
+ filter_srcs(tgt.own_public_headers, (no_protos_filter, no_third_party_filter)) +
+ filter_srcs(tgt.own_headers, (no_third_party_filter,))),
"headers": sorted(
- tgt.get('public_headers', []) +
- tgt.get('headers', []) +
- proto_headers(tgt.src)),
- "deps": sorted(tgt.get('deps', []))}
- for typ, tgt in all_targets(targets, libs)],
+ tgt.own_public_headers +
+ tgt.own_headers +
+ proto_headers(tgt.own_src)),
+ "deps": sorted(tgt.get('deps', []) +
+ tgt.get('uses', []) +
+ tgt.get('filegroups', []))}
+ for typ, tgt in all_targets(targets, libs, filegroups)],
sort_keys=True, indent=2)}
diff --git a/templates/vsprojects/buildtests_c.sln.template b/templates/vsprojects/buildtests_c.sln.template
index a985fea64d..21312ab79a 100644
--- a/templates/vsprojects/buildtests_c.sln.template
+++ b/templates/vsprojects/buildtests_c.sln.template
@@ -2,6 +2,6 @@
--- |
<%namespace file="sln_defs.include" import="gen_solution"/>\
<%
- solution_projects = [p for p in vsprojects if p.build != 'protoc' and p.language == 'c' and not p.boringssl and not p.zlib]
+ solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'fuzzer'] and p.language == 'c' and not p.boringssl and not p.zlib]
%>\
${gen_solution(solution_projects, use_dlls='yes')}
diff --git a/templates/vsprojects/grpc.sln.template b/templates/vsprojects/grpc.sln.template
index dbbb2c2ad1..ded98383da 100644
--- a/templates/vsprojects/grpc.sln.template
+++ b/templates/vsprojects/grpc.sln.template
@@ -2,6 +2,6 @@
--- |
<%namespace file="sln_defs.include" import="gen_solution"/>\
<%
- solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')]
+ solution_projects = [p for p in vsprojects if p.build not in ['protoc', 'test', 'fuzzer'] and p.language in ['c', 'c++'] and p.vs_proj_dir == '.' and not (p.build == 'private' and p.language == 'c++')]
%>\
${gen_solution(solution_projects, use_dlls='yes')}
diff --git a/templates/vsprojects/vcxproj.template b/templates/vsprojects/vcxproj.template
index ecf113b4a8..0bb208f443 100644
--- a/templates/vsprojects/vcxproj.template
+++ b/templates/vsprojects/vcxproj.template
@@ -2,12 +2,14 @@
---
foreach: vsprojects
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj
+cond: selected.build not in ['fuzzer']
template: |
<%namespace file="vcxproj_defs.include" import="gen_project"/>\
${gen_project(selected.name, vsprojects)}
---
foreach: vsprojects
output_name: ${selected.vs_proj_dir}/${selected.name}/${selected.name}.vcxproj.filters
+cond: selected.build not in ['fuzzer']
template: |
<%namespace file="vcxproj.filters_defs.include" import="gen_filters"/>\
${gen_filters(selected.name, vsprojects)}