Allow services with lite runtime when using rpc generator plugin.
This commit is contained in:
parent
b3f6a15806
commit
d09ab8538d
2 changed files with 17 additions and 3 deletions
|
@ -3720,10 +3720,14 @@ void DescriptorBuilder::ValidateEnumValueOptions(
|
|||
}
|
||||
void DescriptorBuilder::ValidateServiceOptions(ServiceDescriptor* service,
|
||||
const ServiceDescriptorProto& proto) {
|
||||
if (IsLite(service->file())) {
|
||||
if (IsLite(service->file()) &&
|
||||
(service->file()->options().cc_generic_services() ||
|
||||
service->file()->options().java_generic_services())) {
|
||||
AddError(service->full_name(), proto,
|
||||
DescriptorPool::ErrorCollector::NAME,
|
||||
"Files with optimize_for = LITE_RUNTIME cannot define services.");
|
||||
"Files with optimize_for = LITE_RUNTIME cannot define services "
|
||||
"unless you set both options cc_generic_services and "
|
||||
"java_generic_sevices to false.");
|
||||
}
|
||||
|
||||
VALIDATE_OPTIONS_FROM_ARRAY(service, method, Method);
|
||||
|
|
|
@ -3487,7 +3487,17 @@ TEST_F(ValidationErrorTest, NoLiteServices) {
|
|||
"service { name: \"Foo\" }",
|
||||
|
||||
"foo.proto: Foo: NAME: Files with optimize_for = LITE_RUNTIME cannot "
|
||||
"define services.\n");
|
||||
"define services unless you set both options cc_generic_services and "
|
||||
"java_generic_sevices to false.\n");
|
||||
|
||||
BuildFile(
|
||||
"name: \"bar.proto\" "
|
||||
"options {"
|
||||
" optimize_for: LITE_RUNTIME"
|
||||
" cc_generic_services: false"
|
||||
" java_generic_services: false"
|
||||
"} "
|
||||
"service { name: \"Foo\" }");
|
||||
}
|
||||
|
||||
TEST_F(ValidationErrorTest, RollbackAfterError) {
|
||||
|
|
Loading…
Add table
Reference in a new issue