aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/python_generator.cc265
-rw-r--r--src/compiler/python_generator.h3
-rw-r--r--src/compiler/python_plugin.cc3
-rw-r--r--src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs4
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCall.cs4
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallBase.cs4
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCallServer.cs4
-rw-r--r--src/csharp/Grpc.Core/Internal/AsyncCompletion.cs4
-rw-r--r--src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Internal/CallSafeHandle.cs2
-rw-r--r--src/csharp/Grpc.Core/Properties/AssemblyInfo.cs2
-rw-r--r--src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs4
-rw-r--r--src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs2
-rw-r--r--src/node/test/echo_service.proto4
-rw-r--r--src/node/test/test_messages.proto4
-rw-r--r--src/node/test/test_service.proto4
-rwxr-xr-xsrc/php/ext/grpc/config.m466
-rw-r--r--src/php/ext/grpc/package.xml11
-rw-r--r--src/php/ext/grpc/tests/grpc-basic.phpt10
-rw-r--r--src/proto/grpc/health/v1alpha/health.proto4
20 files changed, 111 insertions, 295 deletions
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 83133f2b6e..c754ae299b 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -148,91 +148,6 @@ class IndentScope {
// END FORMATTING BOILERPLATE //
////////////////////////////////
-bool PrintAlphaServicer(const ServiceDescriptor* service,
- Printer* out) {
- grpc::string doc = "<fill me in later!>";
- map<grpc::string, grpc::string> dict = ListToDict({
- "Service", service->name(),
- "Documentation", doc,
- });
- out->Print(dict, "class EarlyAdopter$Service$Servicer(object):\n");
- {
- IndentScope raii_class_indent(out);
- out->Print(dict, "\"\"\"$Documentation$\"\"\"\n");
- out->Print("__metaclass__ = abc.ABCMeta\n");
- for (int i = 0; i < service->method_count(); ++i) {
- auto meth = service->method(i);
- grpc::string arg_name = meth->client_streaming() ?
- "request_iterator" : "request";
- out->Print("@abc.abstractmethod\n");
- out->Print("def $Method$(self, $ArgName$, context):\n",
- "Method", meth->name(), "ArgName", arg_name);
- {
- IndentScope raii_method_indent(out);
- out->Print("raise NotImplementedError()\n");
- }
- }
- }
- return true;
-}
-
-bool PrintAlphaServer(const ServiceDescriptor* service, Printer* out) {
- grpc::string doc = "<fill me in later!>";
- map<grpc::string, grpc::string> dict = ListToDict({
- "Service", service->name(),
- "Documentation", doc,
- });
- out->Print(dict, "class EarlyAdopter$Service$Server(object):\n");
- {
- IndentScope raii_class_indent(out);
- out->Print(dict, "\"\"\"$Documentation$\"\"\"\n");
- out->Print("__metaclass__ = abc.ABCMeta\n");
- out->Print("@abc.abstractmethod\n");
- out->Print("def start(self):\n");
- {
- IndentScope raii_method_indent(out);
- out->Print("raise NotImplementedError()\n");
- }
-
- out->Print("@abc.abstractmethod\n");
- out->Print("def stop(self):\n");
- {
- IndentScope raii_method_indent(out);
- out->Print("raise NotImplementedError()\n");
- }
- }
- return true;
-}
-
-bool PrintAlphaStub(const ServiceDescriptor* service,
- Printer* out) {
- grpc::string doc = "<fill me in later!>";
- map<grpc::string, grpc::string> dict = ListToDict({
- "Service", service->name(),
- "Documentation", doc,
- });
- out->Print(dict, "class EarlyAdopter$Service$Stub(object):\n");
- {
- IndentScope raii_class_indent(out);
- out->Print(dict, "\"\"\"$Documentation$\"\"\"\n");
- out->Print("__metaclass__ = abc.ABCMeta\n");
- for (int i = 0; i < service->method_count(); ++i) {
- const MethodDescriptor* meth = service->method(i);
- grpc::string arg_name = meth->client_streaming() ?
- "request_iterator" : "request";
- auto methdict = ListToDict({"Method", meth->name(), "ArgName", arg_name});
- out->Print("@abc.abstractmethod\n");
- out->Print(methdict, "def $Method$(self, $ArgName$):\n");
- {
- IndentScope raii_method_indent(out);
- out->Print("raise NotImplementedError()\n");
- }
- out->Print(methdict, "$Method$.async = None\n");
- }
- }
- return true;
-}
-
// TODO(protobuf team): Export `ModuleName` from protobuf's
// `src/google/protobuf/compiler/python/python_generator.cc` file.
grpc::string ModuleName(const grpc::string& filename) {
@@ -268,172 +183,6 @@ bool GetModuleAndMessagePath(const Descriptor* type,
return true;
}
-bool PrintAlphaServerFactory(const grpc::string& package_qualified_service_name,
- const ServiceDescriptor* service, Printer* out) {
- out->Print("def early_adopter_create_$Service$_server(servicer, port, "
- "private_key=None, certificate_chain=None):\n",
- "Service", service->name());
- {
- IndentScope raii_create_server_indent(out);
- map<grpc::string, grpc::string> method_description_constructors;
- map<grpc::string, pair<grpc::string, grpc::string>>
- input_message_modules_and_classes;
- map<grpc::string, pair<grpc::string, grpc::string>>
- output_message_modules_and_classes;
- for (int i = 0; i < service->method_count(); ++i) {
- const MethodDescriptor* method = service->method(i);
- const grpc::string method_description_constructor =
- grpc::string(method->client_streaming() ? "stream_" : "unary_") +
- grpc::string(method->server_streaming() ? "stream_" : "unary_") +
- "service_description";
- pair<grpc::string, grpc::string> input_message_module_and_class;
- if (!GetModuleAndMessagePath(method->input_type(),
- &input_message_module_and_class)) {
- return false;
- }
- pair<grpc::string, grpc::string> output_message_module_and_class;
- if (!GetModuleAndMessagePath(method->output_type(),
- &output_message_module_and_class)) {
- return false;
- }
- // Import the modules that define the messages used in RPCs.
- out->Print("import $Module$\n", "Module",
- input_message_module_and_class.first);
- out->Print("import $Module$\n", "Module",
- output_message_module_and_class.first);
- method_description_constructors.insert(
- make_pair(method->name(), method_description_constructor));
- input_message_modules_and_classes.insert(
- make_pair(method->name(), input_message_module_and_class));
- output_message_modules_and_classes.insert(
- make_pair(method->name(), output_message_module_and_class));
- }
- out->Print("method_service_descriptions = {\n");
- for (auto name_and_description_constructor =
- method_description_constructors.begin();
- name_and_description_constructor !=
- method_description_constructors.end();
- name_and_description_constructor++) {
- IndentScope raii_descriptions_indent(out);
- const grpc::string method_name = name_and_description_constructor->first;
- auto input_message_module_and_class =
- input_message_modules_and_classes.find(method_name);
- auto output_message_module_and_class =
- output_message_modules_and_classes.find(method_name);
- out->Print("\"$Method$\": alpha_utilities.$Constructor$(\n", "Method",
- method_name, "Constructor",
- name_and_description_constructor->second);
- {
- IndentScope raii_description_arguments_indent(out);
- out->Print("servicer.$Method$,\n", "Method", method_name);
- out->Print(
- "$InputTypeModule$.$InputTypeClass$.FromString,\n",
- "InputTypeModule", input_message_module_and_class->second.first,
- "InputTypeClass", input_message_module_and_class->second.second);
- out->Print(
- "$OutputTypeModule$.$OutputTypeClass$.SerializeToString,\n",
- "OutputTypeModule", output_message_module_and_class->second.first,
- "OutputTypeClass", output_message_module_and_class->second.second);
- }
- out->Print("),\n");
- }
- out->Print("}\n");
- out->Print(
- "return early_adopter_implementations.server("
- "\"$PackageQualifiedServiceName$\","
- " method_service_descriptions, port, private_key=private_key,"
- " certificate_chain=certificate_chain)\n",
- "PackageQualifiedServiceName", package_qualified_service_name);
- }
- return true;
-}
-
-bool PrintAlphaStubFactory(const grpc::string& package_qualified_service_name,
- const ServiceDescriptor* service, Printer* out) {
- map<grpc::string, grpc::string> dict = ListToDict({
- "Service", service->name(),
- });
- out->Print(dict, "def early_adopter_create_$Service$_stub(host, port,"
- " metadata_transformer=None,"
- " secure=False, root_certificates=None, private_key=None,"
- " certificate_chain=None, server_host_override=None):\n");
- {
- IndentScope raii_create_server_indent(out);
- map<grpc::string, grpc::string> method_description_constructors;
- map<grpc::string, pair<grpc::string, grpc::string>>
- input_message_modules_and_classes;
- map<grpc::string, pair<grpc::string, grpc::string>>
- output_message_modules_and_classes;
- for (int i = 0; i < service->method_count(); ++i) {
- const MethodDescriptor* method = service->method(i);
- const grpc::string method_description_constructor =
- grpc::string(method->client_streaming() ? "stream_" : "unary_") +
- grpc::string(method->server_streaming() ? "stream_" : "unary_") +
- "invocation_description";
- pair<grpc::string, grpc::string> input_message_module_and_class;
- if (!GetModuleAndMessagePath(method->input_type(),
- &input_message_module_and_class)) {
- return false;
- }
- pair<grpc::string, grpc::string> output_message_module_and_class;
- if (!GetModuleAndMessagePath(method->output_type(),
- &output_message_module_and_class)) {
- return false;
- }
- // Import the modules that define the messages used in RPCs.
- out->Print("import $Module$\n", "Module",
- input_message_module_and_class.first);
- out->Print("import $Module$\n", "Module",
- output_message_module_and_class.first);
- method_description_constructors.insert(
- make_pair(method->name(), method_description_constructor));
- input_message_modules_and_classes.insert(
- make_pair(method->name(), input_message_module_and_class));
- output_message_modules_and_classes.insert(
- make_pair(method->name(), output_message_module_and_class));
- }
- out->Print("method_invocation_descriptions = {\n");
- for (auto name_and_description_constructor =
- method_description_constructors.begin();
- name_and_description_constructor !=
- method_description_constructors.end();
- name_and_description_constructor++) {
- IndentScope raii_descriptions_indent(out);
- const grpc::string method_name = name_and_description_constructor->first;
- auto input_message_module_and_class =
- input_message_modules_and_classes.find(method_name);
- auto output_message_module_and_class =
- output_message_modules_and_classes.find(method_name);
- out->Print("\"$Method$\": alpha_utilities.$Constructor$(\n", "Method",
- method_name, "Constructor",
- name_and_description_constructor->second);
- {
- IndentScope raii_description_arguments_indent(out);
- out->Print(
- "$InputTypeModule$.$InputTypeClass$.SerializeToString,\n",
- "InputTypeModule", input_message_module_and_class->second.first,
- "InputTypeClass", input_message_module_and_class->second.second);
- out->Print(
- "$OutputTypeModule$.$OutputTypeClass$.FromString,\n",
- "OutputTypeModule", output_message_module_and_class->second.first,
- "OutputTypeClass", output_message_module_and_class->second.second);
- }
- out->Print("),\n");
- }
- out->Print("}\n");
- out->Print(
- "return early_adopter_implementations.stub("
- "\"$PackageQualifiedServiceName$\","
- " method_invocation_descriptions, host, port,"
- " metadata_transformer=metadata_transformer, secure=secure,"
- " root_certificates=root_certificates, private_key=private_key,"
- " certificate_chain=certificate_chain,"
- " server_host_override=server_host_override)\n",
- "PackageQualifiedServiceName", package_qualified_service_name);
- }
- return true;
-}
-
bool PrintBetaServicer(const ServiceDescriptor* service,
Printer* out) {
grpc::string doc = "<fill me in later!>";
@@ -703,9 +452,6 @@ bool PrintPreamble(const FileDescriptor* file,
out->Print("import abc\n");
out->Print("from $Package$ import implementations as beta_implementations\n",
"Package", config.beta_package_root);
- out->Print("from $Package$ import implementations as early_adopter_implementations\n",
- "Package", config.early_adopter_package_root);
- out->Print("from grpc.framework.alpha import utilities as alpha_utilities\n");
out->Print("from grpc.framework.common import cardinality\n");
out->Print("from grpc.framework.interfaces.face import utilities as face_utilities\n");
return true;
@@ -714,7 +460,7 @@ bool PrintPreamble(const FileDescriptor* file,
} // namespace
pair<bool, grpc::string> GetServices(const FileDescriptor* file,
- const GeneratorConfiguration& config) {
+ const GeneratorConfiguration& config) {
grpc::string output;
{
// Scope the output stream so it closes and finalizes output to the string.
@@ -730,12 +476,7 @@ pair<bool, grpc::string> GetServices(const FileDescriptor* file,
for (int i = 0; i < file->service_count(); ++i) {
auto service = file->service(i);
auto package_qualified_service_name = package + service->name();
- if (!(PrintAlphaServicer(service, &out) &&
- PrintAlphaServer(service, &out) &&
- PrintAlphaStub(service, &out) &&
- PrintAlphaServerFactory(package_qualified_service_name, service, &out) &&
- PrintAlphaStubFactory(package_qualified_service_name, service, &out) &&
- PrintBetaServicer(service, &out) &&
+ if (!(PrintBetaServicer(service, &out) &&
PrintBetaStub(service, &out) &&
PrintBetaServerFactory(package_qualified_service_name, service, &out) &&
PrintBetaStubFactory(package_qualified_service_name, service, &out))) {
diff --git a/src/compiler/python_generator.h b/src/compiler/python_generator.h
index 44ed4b3f98..68da18f9ba 100644
--- a/src/compiler/python_generator.h
+++ b/src/compiler/python_generator.h
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -43,7 +43,6 @@ namespace grpc_python_generator {
// Data pertaining to configuration of the generator with respect to anything
// that may be used internally at Google.
struct GeneratorConfiguration {
- grpc::string early_adopter_package_root;
grpc::string beta_package_root;
};
diff --git a/src/compiler/python_plugin.cc b/src/compiler/python_plugin.cc
index c7cef54900..d781ddbee5 100644
--- a/src/compiler/python_plugin.cc
+++ b/src/compiler/python_plugin.cc
@@ -1,6 +1,6 @@
/*
*
- * Copyright 2015, Google Inc.
+ * Copyright 2015-2016, Google Inc.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -38,7 +38,6 @@
int main(int argc, char* argv[]) {
grpc_python_generator::GeneratorConfiguration config;
- config.early_adopter_package_root = "grpc.early_adopter";
config.beta_package_root = "grpc.beta";
grpc_python_generator::PythonGrpcGenerator generator(config);
return grpc::protobuf::compiler::PluginMain(argc, argv, &generator);
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
index 246072bff1..d5a1eeb0fb 100644
--- a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -219,4 +219,4 @@ namespace Grpc.Core.Internal.Tests
}
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index e3ecc47282..7dc4490281 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -456,4 +456,4 @@ namespace Grpc.Core.Internal
streamingCallFinishedTcs.SetResult(null);
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index 92f8d77e85..81a9a40fcc 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -356,4 +356,4 @@ namespace Grpc.Core.Internal
FireCompletion(origCompletionDelegate, msg, null);
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index 0c805097f9..6752d3fab3 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -215,4 +215,4 @@ namespace Grpc.Core.Internal
finishedServersideTcs.SetResult(null);
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
index c88cae98fe..d5bbf676ff 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCompletion.cs
@@ -1,6 +1,6 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -91,4 +91,4 @@ namespace Grpc.Core.Internal
tcs.SetException(error);
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
index 944563ea74..0e2108f0f2 100644
--- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
@@ -223,4 +223,4 @@ namespace Grpc.Core.Internal
}
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
index 607424ce0d..bc045b67b1 100644
--- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
@@ -214,4 +214,4 @@ namespace Grpc.Core.Internal
return buffered ? 0 : GRPC_WRITE_BUFFER_HINT;
}
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs
index 29db85d7aa..bde74945fb 100644
--- a/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs
+++ b/src/csharp/Grpc.Core/Properties/AssemblyInfo.cs
@@ -18,4 +18,4 @@ using System.Runtime.CompilerServices;
"71394ee9672dfe5b55ea0f95dfd5a7f77d22c962ccf51320d3")]
#else
[assembly: InternalsVisibleTo("Grpc.Core.Tests")]
-#endif \ No newline at end of file
+#endif
diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
index d90f21c2e1..a8a76c7492 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
+++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
@@ -1,5 +1,5 @@
#region Copyright notice and license
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -93,4 +93,4 @@ namespace Grpc.HealthCheck.Tests
// TODO(jtattermusch): add test with timeout once timeouts are supported
}
-} \ No newline at end of file
+}
diff --git a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs
index 41a54a98bc..4d7b33c669 100644
--- a/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs
+++ b/src/csharp/Grpc.HealthCheck/Properties/AssemblyInfo.cs
@@ -8,4 +8,4 @@ using System.Runtime.CompilerServices;
[assembly: AssemblyProduct("")]
[assembly: AssemblyCopyright("Google Inc. All rights reserved.")]
[assembly: AssemblyTrademark("")]
-[assembly: AssemblyCulture("")] \ No newline at end of file
+[assembly: AssemblyCulture("")]
diff --git a/src/node/test/echo_service.proto b/src/node/test/echo_service.proto
index b2c7e3dc23..11b4f18c35 100644
--- a/src/node/test/echo_service.proto
+++ b/src/node/test/echo_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -36,4 +36,4 @@ message EchoMessage {
service EchoService {
rpc Echo (EchoMessage) returns (EchoMessage);
-} \ No newline at end of file
+}
diff --git a/src/node/test/test_messages.proto b/src/node/test/test_messages.proto
index 685e9482bd..c77a937d3f 100644
--- a/src/node/test/test_messages.proto
+++ b/src/node/test/test_messages.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -35,4 +35,4 @@ message LongValues {
sint64 sint_64 = 3;
fixed64 fixed_64 = 4;
sfixed64 sfixed_64 = 5;
-} \ No newline at end of file
+}
diff --git a/src/node/test/test_service.proto b/src/node/test/test_service.proto
index 564169829c..0ac2ae79a7 100644
--- a/src/node/test/test_service.proto
+++ b/src/node/test/test_service.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -49,4 +49,4 @@ service TestService {
rpc BidiStream (stream Request) returns (stream Response) {
}
-} \ No newline at end of file
+}
diff --git a/src/php/ext/grpc/config.m4 b/src/php/ext/grpc/config.m4
index 7928687943..0fb843d51f 100755
--- a/src/php/ext/grpc/config.m4
+++ b/src/php/ext/grpc/config.m4
@@ -1,6 +1,9 @@
PHP_ARG_ENABLE(grpc, whether to enable grpc support,
[ --enable-grpc Enable grpc support])
+PHP_ARG_ENABLE(coverage, whether to include code coverage symbols,
+[ --enable-coverage Enable coverage support], no, no)
+
if test "$PHP_GRPC" != "no"; then
dnl Write more examples of tests here...
@@ -75,3 +78,66 @@ if test "$PHP_GRPC" != "no"; then
channel_credentials.c completion_queue.c timeval.c server.c \
server_credentials.c php_grpc.c, $ext_shared, , -Wall -Werror -std=c11)
fi
+
+if test "$PHP_COVERAGE" = "yes"; then
+
+ if test "$GCC" != "yes"; then
+ AC_MSG_ERROR([GCC is required for --enable-coverage])
+ fi
+
+ dnl Check if ccache is being used
+ case `$php_shtool path $CC` in
+ *ccache*[)] gcc_ccache=yes;;
+ *[)] gcc_ccache=no;;
+ esac
+
+ if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then
+ AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.])
+ fi
+
+ lcov_version_list="1.5 1.6 1.7 1.9 1.10 1.11"
+
+ AC_CHECK_PROG(LCOV, lcov, lcov)
+ AC_CHECK_PROG(GENHTML, genhtml, genhtml)
+ PHP_SUBST(LCOV)
+ PHP_SUBST(GENHTML)
+
+ if test "$LCOV"; then
+ AC_CACHE_CHECK([for lcov version], php_cv_lcov_version, [
+ php_cv_lcov_version=invalid
+ lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #'
+ for lcov_check_version in $lcov_version_list; do
+ if test "$lcov_version" = "$lcov_check_version"; then
+ php_cv_lcov_version="$lcov_check_version (ok)"
+ fi
+ done
+ ])
+ else
+ lcov_msg="To enable code coverage reporting you must have one of the following LCOV versions installed: $lcov_version_list"
+ AC_MSG_ERROR([$lcov_msg])
+ fi
+
+ case $php_cv_lcov_version in
+ ""|invalid[)]
+ lcov_msg="You must have one of the following versions of LCOV: $lcov_version_list (found: $lcov_version)."
+ AC_MSG_ERROR([$lcov_msg])
+ LCOV="exit 0;"
+ ;;
+ esac
+
+ if test -z "$GENHTML"; then
+ AC_MSG_ERROR([Could not find genhtml from the LCOV package])
+ fi
+
+ PHP_ADD_MAKEFILE_FRAGMENT
+
+ dnl Remove all optimization flags from CFLAGS
+ changequote({,})
+ CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'`
+ CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'`
+ changequote([,])
+
+ dnl Add the special gcc flags
+ CFLAGS="$CFLAGS -O0 -ggdb -fprofile-arcs -ftest-coverage"
+ CXXFLAGS="$CXXFLAGS -ggdb -O0 -fprofile-arcs -ftest-coverage"
+fi
diff --git a/src/php/ext/grpc/package.xml b/src/php/ext/grpc/package.xml
index 9c98f82540..daf2ee5a53 100644
--- a/src/php/ext/grpc/package.xml
+++ b/src/php/ext/grpc/package.xml
@@ -10,8 +10,8 @@
<email>grpc-packages@google.com</email>
<active>yes</active>
</lead>
- <date>2015-12-16</date>
- <time>12:56:11</time>
+ <date>2016-01-13</date>
+ <time>16:06:07</time>
<version>
<release>0.7.0</release>
<api>0.7.0</api>
@@ -29,6 +29,7 @@
</notes>
<contents>
<dir baseinstalldir="/" name="/">
+ <file baseinstalldir="/" md5sum="f201d644fdbd8228ffd1d4a69cc44f1f" name="tests/grpc-basic.phpt" role="test" />
<file baseinstalldir="/" md5sum="6f19828fb869b7b8a590cbb76b4f996d" name="byte_buffer.c" role="src" />
<file baseinstalldir="/" md5sum="c8de0f819499c48adfc8d7f472c0196b" name="byte_buffer.h" role="src" />
<file baseinstalldir="/" md5sum="ee7eb7757f9e6f0e36f8f616b6bd0af5" name="call.c" role="src" />
@@ -41,9 +42,9 @@
<file baseinstalldir="/" md5sum="a86250e03f610ce6c2c7595a84e08821" name="channel_credentials.h" role="src" />
<file baseinstalldir="/" md5sum="55ab7a42f9dd9bfc7e28a61cfc5fca63" name="completion_queue.c" role="src" />
<file baseinstalldir="/" md5sum="f10b5bb232d74a6878e829e2e76cdaa2" name="completion_queue.h" role="src" />
- <file baseinstalldir="/" md5sum="c7bba7f0f00d1b1483de457d55311382" name="config.m4" role="src" />
+ <file baseinstalldir="/" md5sum="cafed254127007ff2271dad7d56a06c8" name="config.m4" role="src" />
<file baseinstalldir="/" md5sum="38a1bc979d810c36ebc2a52d4b7b5319" name="CREDITS" role="doc" />
- <file baseinstalldir="/" md5sum="3f35b472bbdef5a788cd90617d7d0847" name="LICENSE" role="doc" />
+ <file baseinstalldir="/" md5sum="8847cf67b1b54c981d47ecbb0d139a0c" name="LICENSE" role="doc" />
<file baseinstalldir="/" md5sum="3131a8af38fe5918e5409016b89d6cdb" name="php_grpc.c" role="src" />
<file baseinstalldir="/" md5sum="673b07859d9f69232f8a754c56780686" name="php_grpc.h" role="src" />
<file baseinstalldir="/" md5sum="7533a6d3ea02c78cad23a9651de0825d" name="README.md" role="doc" />
@@ -142,7 +143,7 @@ Update to wrap gRPC C Core version 0.10.0
<release>beta</release>
<api>beta</api>
</stability>
- <date>2015-12-16</date>
+ <date>2016-01-13</date>
<license>BSD</license>
<notes>
- Breaking change to Credentials class (removed) #3765
diff --git a/src/php/ext/grpc/tests/grpc-basic.phpt b/src/php/ext/grpc/tests/grpc-basic.phpt
new file mode 100644
index 0000000000..523cc4a59f
--- /dev/null
+++ b/src/php/ext/grpc/tests/grpc-basic.phpt
@@ -0,0 +1,10 @@
+--TEST--
+Check for grpc presence
+--SKIPIF--
+<?php if (!extension_loaded("grpc")) print "skip"; ?>
+--FILE--
+<?php
+echo "grpc extension is available";
+?>
+--EXPECT--
+grpc extension is available \ No newline at end of file
diff --git a/src/proto/grpc/health/v1alpha/health.proto b/src/proto/grpc/health/v1alpha/health.proto
index 28786c4427..05f837dd99 100644
--- a/src/proto/grpc/health/v1alpha/health.proto
+++ b/src/proto/grpc/health/v1alpha/health.proto
@@ -1,4 +1,4 @@
-// Copyright 2015, Google Inc.
+// Copyright 2015-2016, Google Inc.
// All rights reserved.
//
// Redistribution and use in source and binary forms, with or without
@@ -48,4 +48,4 @@ message HealthCheckResponse {
service Health {
rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
-} \ No newline at end of file
+}