From 14809f5b0e73a21b216ef73a22a451851ffdb0bd Mon Sep 17 00:00:00 2001 From: zhangskz <89936743+zhangskz@users.noreply.github.com> Date: Wed, 22 Sep 2021 09:16:09 -0700 Subject: [PATCH] Update ruby_generator.cc to allow proto2 imports in proto3 (#9003) * Update ruby_generator.cc to allow proto2 imports in proto3, with updated unit tests * Update Makefile.am with new ruby_generated_code_proto2_import.proto * Fix ruby_generator unit test to use temporary test directory for imported protos * Add test for imported proto2 to ruby/tests * Fix proto_path, restore to ../src/protoc, and fix/cleanup unit test. * Rename Proto2TestMessage to TestImportedMessage for consistency, for ruby compiler tests --- google/protobuf/compiler/ruby/ruby_generated_code.proto | 3 +++ .../protobuf/compiler/ruby/ruby_generated_code_proto2.proto | 3 +++ .../compiler/ruby/ruby_generated_code_proto2_import.proto | 5 +++++ 3 files changed, 11 insertions(+) create mode 100644 google/protobuf/compiler/ruby/ruby_generated_code_proto2_import.proto diff --git a/google/protobuf/compiler/ruby/ruby_generated_code.proto b/google/protobuf/compiler/ruby/ruby_generated_code.proto index 42d82a6bac7e..70ec9f17a0fc 100644 --- a/google/protobuf/compiler/ruby/ruby_generated_code.proto +++ b/google/protobuf/compiler/ruby/ruby_generated_code.proto @@ -2,6 +2,8 @@ syntax = "proto3"; package A.B.C; +import "ruby_generated_code_proto2_import.proto"; + message TestMessage { int32 optional_int32 = 1; int64 optional_int64 = 2; @@ -14,6 +16,7 @@ message TestMessage { bytes optional_bytes = 9; TestEnum optional_enum = 10; TestMessage optional_msg = 11; + TestImportedMessage optional_proto2_submessage = 12; repeated int32 repeated_int32 = 21; repeated int64 repeated_int64 = 22; diff --git a/google/protobuf/compiler/ruby/ruby_generated_code_proto2.proto b/google/protobuf/compiler/ruby/ruby_generated_code_proto2.proto index 8d3cc13e03d2..ea7f78363447 100644 --- a/google/protobuf/compiler/ruby/ruby_generated_code_proto2.proto +++ b/google/protobuf/compiler/ruby/ruby_generated_code_proto2.proto @@ -2,6 +2,8 @@ syntax = "proto2"; package A.B.C; +import "ruby_generated_code_proto2_import.proto"; + message TestMessage { optional int32 optional_int32 = 1 [default = 1]; optional int64 optional_int64 = 2 [default = 2]; @@ -14,6 +16,7 @@ message TestMessage { optional bytes optional_bytes = 9 [default = "\0\1\2\100fubar"]; optional TestEnum optional_enum = 10 [default = A]; optional TestMessage optional_msg = 11; + optional TestImportedMessage optional_proto2_submessage = 12; repeated int32 repeated_int32 = 21; repeated int64 repeated_int64 = 22; diff --git a/google/protobuf/compiler/ruby/ruby_generated_code_proto2_import.proto b/google/protobuf/compiler/ruby/ruby_generated_code_proto2_import.proto new file mode 100644 index 000000000000..9ec07381be54 --- /dev/null +++ b/google/protobuf/compiler/ruby/ruby_generated_code_proto2_import.proto @@ -0,0 +1,5 @@ +syntax = "proto2"; + +package A.B.C; + +message TestImportedMessage {}