protobuf 3.7.0.pre2 → 3.7.0.pre3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +6 -1
- data/.rubocop_todo.yml +7 -1
- data/.travis.yml +8 -1
- data/CHANGES.md +25 -1
- data/bin/protoc-gen-ruby +2 -2
- data/lib/protobuf/cli.rb +29 -17
- data/lib/protobuf/code_generator.rb +49 -1
- data/lib/protobuf/descriptors/google/protobuf/compiler/plugin.pb.rb +9 -1
- data/lib/protobuf/descriptors/google/protobuf/descriptor.pb.rb +14 -1
- data/lib/protobuf/encoder.rb +2 -2
- data/lib/protobuf/enum.rb +3 -3
- data/lib/protobuf/field/base_field.rb +27 -19
- data/lib/protobuf/field/bool_field.rb +10 -8
- data/lib/protobuf/field/bytes_field.rb +14 -6
- data/lib/protobuf/field/float_field.rb +2 -0
- data/lib/protobuf/field/string_field.rb +10 -0
- data/lib/protobuf/field/varint_field.rb +12 -2
- data/lib/protobuf/generators/base.rb +29 -14
- data/lib/protobuf/generators/enum_generator.rb +4 -7
- data/lib/protobuf/generators/field_generator.rb +17 -4
- data/lib/protobuf/generators/file_generator.rb +121 -10
- data/lib/protobuf/generators/group_generator.rb +9 -3
- data/lib/protobuf/generators/message_generator.rb +8 -2
- data/lib/protobuf/generators/option_generator.rb +17 -0
- data/lib/protobuf/generators/printable.rb +2 -2
- data/lib/protobuf/generators/service_generator.rb +27 -3
- data/lib/protobuf/lifecycle.rb +1 -1
- data/lib/protobuf/message/fields.rb +13 -15
- data/lib/protobuf/message/serialization.rb +9 -9
- data/lib/protobuf/message.rb +23 -29
- data/lib/protobuf/optionable.rb +10 -10
- data/lib/protobuf/rpc/buffer.rb +7 -6
- data/lib/protobuf/rpc/client.rb +2 -30
- data/lib/protobuf/rpc/connectors/base.rb +168 -6
- data/lib/protobuf/rpc/connectors/ping.rb +2 -2
- data/lib/protobuf/rpc/connectors/socket.rb +6 -1
- data/lib/protobuf/rpc/connectors/zmq.rb +1 -2
- data/lib/protobuf/rpc/dynamic_discovery.pb.rb +2 -1
- data/lib/protobuf/rpc/error.rb +2 -2
- data/lib/protobuf/rpc/middleware/exception_handler.rb +4 -0
- data/lib/protobuf/rpc/middleware/logger.rb +4 -0
- data/lib/protobuf/rpc/middleware/request_decoder.rb +11 -16
- data/lib/protobuf/rpc/middleware/response_encoder.rb +18 -23
- data/lib/protobuf/rpc/rpc.pb.rb +2 -1
- data/lib/protobuf/rpc/rpc_method.rb +16 -0
- data/lib/protobuf/rpc/servers/socket/server.rb +4 -4
- data/lib/protobuf/rpc/servers/socket_runner.rb +8 -0
- data/lib/protobuf/rpc/servers/zmq/broker.rb +7 -6
- data/lib/protobuf/rpc/servers/zmq/server.rb +8 -7
- data/lib/protobuf/rpc/servers/zmq/util.rb +6 -6
- data/lib/protobuf/rpc/servers/zmq/worker.rb +7 -6
- data/lib/protobuf/rpc/servers/zmq_runner.rb +8 -0
- data/lib/protobuf/rpc/service.rb +6 -15
- data/lib/protobuf/rpc/service_directory.rb +1 -1
- data/lib/protobuf/rpc/service_dispatcher.rb +5 -6
- data/lib/protobuf/rpc/service_filters.rb +8 -30
- data/lib/protobuf/socket.rb +2 -2
- data/lib/protobuf/version.rb +1 -1
- data/lib/protobuf/zmq.rb +2 -2
- data/lib/protobuf.rb +12 -27
- data/protobuf.gemspec +5 -3
- data/spec/benchmark/tasks.rb +1 -0
- data/spec/functional/code_generator_spec.rb +38 -0
- data/spec/lib/protobuf/cli_spec.rb +19 -10
- data/spec/lib/protobuf/code_generator_spec.rb +28 -0
- data/spec/lib/protobuf/enum_spec.rb +6 -2
- data/spec/lib/protobuf/field/bool_field_spec.rb +4 -0
- data/spec/lib/protobuf/field/double_field_spec.rb +9 -0
- data/spec/lib/protobuf/field/fixed32_field_spec.rb +7 -0
- data/spec/lib/protobuf/field/fixed64_field_spec.rb +7 -0
- data/spec/lib/protobuf/field/float_field_spec.rb +5 -1
- data/spec/lib/protobuf/field/int64_field_spec.rb +7 -0
- data/spec/lib/protobuf/field/message_field_spec.rb +53 -0
- data/spec/lib/protobuf/field/sfixed32_field_spec.rb +9 -0
- data/spec/lib/protobuf/field/sfixed64_field_spec.rb +9 -0
- data/spec/lib/protobuf/field/sint32_field_spec.rb +9 -0
- data/spec/lib/protobuf/field/sint64_field_spec.rb +9 -0
- data/spec/lib/protobuf/field/uint32_field_spec.rb +7 -0
- data/spec/lib/protobuf/field/uint64_field_spec.rb +7 -0
- data/spec/lib/protobuf/generators/base_spec.rb +69 -1
- data/spec/lib/protobuf/generators/enum_generator_spec.rb +1 -1
- data/spec/lib/protobuf/generators/field_generator_spec.rb +58 -0
- data/spec/lib/protobuf/generators/file_generator_spec.rb +47 -0
- data/spec/lib/protobuf/generators/service_generator_spec.rb +58 -14
- data/spec/lib/protobuf/message_spec.rb +2 -2
- data/spec/lib/protobuf/optionable_spec.rb +96 -0
- data/spec/lib/protobuf/rpc/connectors/base_spec.rb +151 -0
- data/spec/lib/protobuf/rpc/connectors/ping_spec.rb +3 -3
- data/spec/lib/protobuf/rpc/connectors/socket_spec.rb +0 -2
- data/spec/lib/protobuf/rpc/middleware/logger_spec.rb +2 -2
- data/spec/lib/protobuf/rpc/middleware/request_decoder_spec.rb +4 -4
- data/spec/lib/protobuf/rpc/middleware/response_encoder_spec.rb +2 -2
- data/spec/lib/protobuf/rpc/service_dispatcher_spec.rb +1 -18
- data/spec/lib/protobuf/rpc/service_filters_spec.rb +2 -2
- data/spec/lib/protobuf/varint_spec.rb +1 -1
- data/spec/lib/protobuf_spec.rb +13 -16
- data/spec/support/packed_field.rb +3 -2
- data/spec/support/protos/enum.pb.rb +2 -1
- data/spec/support/protos/enum.proto +1 -0
- data/spec/support/protos/google_unittest.pb.rb +69 -58
- data/spec/support/protos/google_unittest_custom_options.bin +0 -0
- data/spec/support/protos/google_unittest_custom_options.pb.rb +361 -0
- data/spec/support/protos/google_unittest_custom_options.proto +424 -0
- data/spec/support/protos/google_unittest_import.pb.rb +8 -0
- data/spec/support/protos/google_unittest_import_public.pb.rb +6 -0
- data/spec/support/protos/resource.pb.rb +54 -2
- data/spec/support/protos/resource.proto +42 -2
- data/spec/support/server.rb +1 -1
- metadata +39 -16
- data/lib/protobuf/rpc/connector.rb +0 -19
- data/lib/protobuf/rpc/connectors/common.rb +0 -176
- data/spec/lib/protobuf/rpc/connector_spec.rb +0 -26
- data/spec/lib/protobuf/rpc/connectors/common_spec.rb +0 -170
@@ -8,6 +8,47 @@ RSpec.describe Protobuf::Rpc::Connectors::Base do
|
|
8
8
|
|
9
9
|
subject { Protobuf::Rpc::Connectors::Base.new(options) }
|
10
10
|
|
11
|
+
context "API" do
|
12
|
+
specify { expect(subject.respond_to?(:any_callbacks?)).to be true }
|
13
|
+
specify { expect(subject.respond_to?(:request_caller)).to be true }
|
14
|
+
specify { expect(subject.respond_to?(:data_callback)).to be true }
|
15
|
+
specify { expect(subject.respond_to?(:error)).to be true }
|
16
|
+
specify { expect(subject.respond_to?(:failure)).to be true }
|
17
|
+
specify { expect(subject.respond_to?(:complete)).to be true }
|
18
|
+
specify { expect(subject.respond_to?(:parse_response)).to be true }
|
19
|
+
specify { expect(subject.respond_to?(:verify_options!)).to be true }
|
20
|
+
specify { expect(subject.respond_to?(:verify_callbacks)).to be true }
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#any_callbacks?" do
|
24
|
+
[:@complete_cb, :@success_cb, :@failure_cb].each do |cb|
|
25
|
+
it "returns true if #{cb} is provided" do
|
26
|
+
subject.instance_variable_set(cb, "something")
|
27
|
+
expect(subject.any_callbacks?).to be true
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
it "returns false when all callbacks are not provided" do
|
32
|
+
subject.instance_variable_set(:@complete_cb, nil)
|
33
|
+
subject.instance_variable_set(:@success_cb, nil)
|
34
|
+
subject.instance_variable_set(:@failure_cb, nil)
|
35
|
+
|
36
|
+
expect(subject.any_callbacks?).to be false
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
describe "#data_callback" do
|
41
|
+
it "changes state to use the data callback" do
|
42
|
+
subject.data_callback("data")
|
43
|
+
expect(subject.instance_variable_get(:@used_data_callback)).to be true
|
44
|
+
end
|
45
|
+
|
46
|
+
it "sets the data var when using the data_callback" do
|
47
|
+
subject.data_callback("data")
|
48
|
+
expect(subject.instance_variable_get(:@data)).to eq("data")
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
11
52
|
describe "#send_request" do
|
12
53
|
it "raising an error when 'send_request' is not overridden" do
|
13
54
|
expect { subject.send_request }.to raise_error(RuntimeError, /inherit a Connector/)
|
@@ -47,4 +88,114 @@ RSpec.describe Protobuf::Rpc::Connectors::Base do
|
|
47
88
|
end
|
48
89
|
end
|
49
90
|
|
91
|
+
describe '#request_bytes' do
|
92
|
+
let(:service) { Test::ResourceService }
|
93
|
+
let(:method) { :find }
|
94
|
+
let(:request) { '' }
|
95
|
+
let(:client_host) { 'myhost.myservice.com' }
|
96
|
+
let(:options) do
|
97
|
+
{
|
98
|
+
:service => service,
|
99
|
+
:method => method,
|
100
|
+
:request => request,
|
101
|
+
:client_host => client_host,
|
102
|
+
:timeout => 60,
|
103
|
+
}
|
104
|
+
end
|
105
|
+
|
106
|
+
let(:expected) do
|
107
|
+
::Protobuf::Socketrpc::Request.new(
|
108
|
+
:service_name => service.name,
|
109
|
+
:method_name => 'find',
|
110
|
+
:request_proto => '',
|
111
|
+
:caller => client_host,
|
112
|
+
)
|
113
|
+
end
|
114
|
+
|
115
|
+
before { allow(subject).to receive(:validate_request_type!).and_return(true) }
|
116
|
+
before { expect(subject).not_to receive(:failure) }
|
117
|
+
|
118
|
+
specify { expect(subject.request_bytes).to eq expected.encode }
|
119
|
+
end
|
120
|
+
|
121
|
+
describe '#request_caller' do
|
122
|
+
specify { expect(subject.request_caller).to eq ::Protobuf.client_host }
|
123
|
+
|
124
|
+
context 'when "client_host" option is given to initializer' do
|
125
|
+
let(:hostname) { 'myhost.myserver.com' }
|
126
|
+
let(:options) { { :client_host => hostname, :timeout => 60 } }
|
127
|
+
|
128
|
+
specify { expect(subject.request_caller).to_not eq ::Protobuf.client_host }
|
129
|
+
specify { expect(subject.request_caller).to eq hostname }
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
describe "#verify_callbacks" do
|
134
|
+
it "sets @failure_cb to #data_callback when no callbacks are defined" do
|
135
|
+
subject.verify_callbacks
|
136
|
+
expect(subject.instance_variable_get(:@failure_cb)).to eq(subject.method(:data_callback))
|
137
|
+
end
|
138
|
+
|
139
|
+
it "sets @success_cb to #data_callback when no callbacks are defined" do
|
140
|
+
subject.verify_callbacks
|
141
|
+
expect(subject.instance_variable_get(:@success_cb)).to eq(subject.method(:data_callback))
|
142
|
+
end
|
143
|
+
|
144
|
+
it "doesn't set @failure_cb when already defined" do
|
145
|
+
set_cb = -> { true }
|
146
|
+
subject.instance_variable_set(:@failure_cb, set_cb)
|
147
|
+
subject.verify_callbacks
|
148
|
+
expect(subject.instance_variable_get(:@failure_cb)).to eq(set_cb)
|
149
|
+
expect(subject.instance_variable_get(:@failure_cb)).to_not eq(subject.method(:data_callback))
|
150
|
+
end
|
151
|
+
|
152
|
+
it "doesn't set @success_cb when already defined" do
|
153
|
+
set_cb = -> { true }
|
154
|
+
subject.instance_variable_set(:@success_cb, set_cb)
|
155
|
+
subject.verify_callbacks
|
156
|
+
expect(subject.instance_variable_get(:@success_cb)).to eq(set_cb)
|
157
|
+
expect(subject.instance_variable_get(:@success_cb)).to_not eq(subject.method(:data_callback))
|
158
|
+
end
|
159
|
+
|
160
|
+
end
|
161
|
+
|
162
|
+
shared_examples "a ConnectorDisposition" do |meth, cb, *args|
|
163
|
+
|
164
|
+
it "calls #complete before exit" do
|
165
|
+
subject.stats = double("Object", :stop => true)
|
166
|
+
|
167
|
+
expect(subject).to receive(:complete)
|
168
|
+
subject.method(meth).call(*args)
|
169
|
+
end
|
170
|
+
|
171
|
+
it "calls the #{cb} callback when provided" do
|
172
|
+
stats = double("Object")
|
173
|
+
allow(stats).to receive(:stop).and_return(true)
|
174
|
+
subject.stats = stats
|
175
|
+
some_cb = double("Object")
|
176
|
+
|
177
|
+
subject.instance_variable_set("@#{cb}", some_cb)
|
178
|
+
expect(some_cb).to receive(:call).and_return(true)
|
179
|
+
subject.method(meth).call(*args)
|
180
|
+
end
|
181
|
+
|
182
|
+
it "calls the complete callback when provided" do
|
183
|
+
stats = double("Object")
|
184
|
+
allow(stats).to receive(:stop).and_return(true)
|
185
|
+
subject.stats = stats
|
186
|
+
comp_cb = double("Object")
|
187
|
+
|
188
|
+
subject.instance_variable_set(:@complete_cb, comp_cb)
|
189
|
+
expect(comp_cb).to receive(:call).and_return(true)
|
190
|
+
subject.method(meth).call(*args)
|
191
|
+
end
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
it_behaves_like("a ConnectorDisposition", :failure, "failure_cb", "code", "message")
|
196
|
+
it_behaves_like("a ConnectorDisposition", :failure, "complete_cb", "code", "message")
|
197
|
+
it_behaves_like("a ConnectorDisposition", :succeed, "complete_cb", "response")
|
198
|
+
it_behaves_like("a ConnectorDisposition", :succeed, "success_cb", "response")
|
199
|
+
it_behaves_like("a ConnectorDisposition", :complete, "complete_cb")
|
200
|
+
|
50
201
|
end
|
@@ -55,14 +55,14 @@ require "protobuf/zmq"
|
|
55
55
|
|
56
56
|
describe "#timeout" do
|
57
57
|
it "uses the default value" do
|
58
|
-
expect(subject.timeout).to eq(
|
58
|
+
expect(subject.timeout).to eq(0.2)
|
59
59
|
end
|
60
60
|
|
61
61
|
context "when environment variable is set" do
|
62
|
-
before { ::ENV["PB_RPC_PING_PORT_TIMEOUT"] = "
|
62
|
+
before { ::ENV["PB_RPC_PING_PORT_TIMEOUT"] = "100" }
|
63
63
|
|
64
64
|
it "uses the environmet variable" do
|
65
|
-
expect(subject.timeout).to eq(1)
|
65
|
+
expect(subject.timeout).to eq(0.1)
|
66
66
|
end
|
67
67
|
end
|
68
68
|
end
|
@@ -21,13 +21,13 @@ RSpec.describe Protobuf::Rpc::Middleware::Logger do
|
|
21
21
|
let(:request) { request_type.new(:name => 'required') }
|
22
22
|
let(:request_type) { rpc_method.request_type }
|
23
23
|
let(:request_wrapper) do
|
24
|
-
Protobuf::Socketrpc::Request.new(
|
24
|
+
::Protobuf::Socketrpc::Request.new(
|
25
25
|
:service_name => service_name,
|
26
26
|
:method_name => method_name.to_s,
|
27
27
|
:request_proto => request,
|
28
28
|
)
|
29
29
|
end
|
30
|
-
let(:response_wrapper) { Protobuf::Socketrpc::Response.new(:response_proto => response) }
|
30
|
+
let(:response_wrapper) { ::Protobuf::Socketrpc::Response.new(:response_proto => response) }
|
31
31
|
let(:response) { rpc_method.response_type.new(:name => 'required') }
|
32
32
|
let(:rpc_method) { service_class.rpcs[method_name] }
|
33
33
|
let(:rpc_service) { service_class.new(env) }
|
@@ -14,7 +14,7 @@ RSpec.describe Protobuf::Rpc::Middleware::RequestDecoder do
|
|
14
14
|
let(:request) { request_type.new(:name => 'required') }
|
15
15
|
let(:request_type) { rpc_method.request_type }
|
16
16
|
let(:request_wrapper) do
|
17
|
-
Protobuf::Socketrpc::Request.new(
|
17
|
+
::Protobuf::Socketrpc::Request.new(
|
18
18
|
:caller => client_host,
|
19
19
|
:service_name => service_name,
|
20
20
|
:method_name => method_name.to_s,
|
@@ -75,7 +75,7 @@ RSpec.describe Protobuf::Rpc::Middleware::RequestDecoder do
|
|
75
75
|
end
|
76
76
|
|
77
77
|
context "when decoding fails" do
|
78
|
-
before { allow(Protobuf::Socketrpc::Request).to receive(:decode).and_raise(RuntimeError) }
|
78
|
+
before { allow(::Protobuf::Socketrpc::Request).to receive(:decode).and_raise(RuntimeError) }
|
79
79
|
|
80
80
|
it "raises a bad request data exception" do
|
81
81
|
expect { subject.call(env) }.to raise_exception(Protobuf::Rpc::BadRequestData)
|
@@ -84,7 +84,7 @@ RSpec.describe Protobuf::Rpc::Middleware::RequestDecoder do
|
|
84
84
|
|
85
85
|
context "when the RPC service is not defined" do
|
86
86
|
let(:request_wrapper) do
|
87
|
-
Protobuf::Socketrpc::Request.new(
|
87
|
+
::Protobuf::Socketrpc::Request.new(
|
88
88
|
:caller => client_host,
|
89
89
|
:service_name => 'Foo',
|
90
90
|
:method_name => method_name.to_s,
|
@@ -99,7 +99,7 @@ RSpec.describe Protobuf::Rpc::Middleware::RequestDecoder do
|
|
99
99
|
|
100
100
|
context "when RPC method is not defined" do
|
101
101
|
let(:request_wrapper) do
|
102
|
-
Protobuf::Socketrpc::Request.new(
|
102
|
+
::Protobuf::Socketrpc::Request.new(
|
103
103
|
:caller => client_host,
|
104
104
|
:service_name => service_name,
|
105
105
|
:method_name => 'foo',
|
@@ -10,7 +10,7 @@ RSpec.describe Protobuf::Rpc::Middleware::ResponseEncoder do
|
|
10
10
|
end
|
11
11
|
let(:encoded_response) { response_wrapper.encode }
|
12
12
|
let(:response) { Test::Resource.new(:name => 'required') }
|
13
|
-
let(:response_wrapper) { Protobuf::Socketrpc::Response.new(:response_proto => response) }
|
13
|
+
let(:response_wrapper) { ::Protobuf::Socketrpc::Response.new(:response_proto => response) }
|
14
14
|
|
15
15
|
subject { described_class.new(app) }
|
16
16
|
|
@@ -65,7 +65,7 @@ RSpec.describe Protobuf::Rpc::Middleware::ResponseEncoder do
|
|
65
65
|
end
|
66
66
|
|
67
67
|
context "when encoding fails" do
|
68
|
-
before { allow_any_instance_of(Protobuf::Socketrpc::Response).to receive(:encode).and_raise(RuntimeError) }
|
68
|
+
before { allow_any_instance_of(::Protobuf::Socketrpc::Response).to receive(:encode).and_raise(RuntimeError) }
|
69
69
|
|
70
70
|
it "raises a bad request data exception" do
|
71
71
|
expect { subject.call(env) }.to raise_exception(Protobuf::Rpc::PbError)
|
@@ -16,7 +16,6 @@ RSpec.describe Protobuf::Rpc::ServiceDispatcher do
|
|
16
16
|
let(:request_type) { service_class.rpcs[method_name].request_type }
|
17
17
|
let(:response) { response_type.new(:name => 'required') }
|
18
18
|
let(:response_type) { service_class.rpcs[method_name].response_type }
|
19
|
-
|
20
19
|
let(:rpc_service) { service_class.new(env) }
|
21
20
|
let(:service_class) { Test::ResourceService }
|
22
21
|
let(:service_name) { service_class.to_s }
|
@@ -29,24 +28,8 @@ RSpec.describe Protobuf::Rpc::ServiceDispatcher do
|
|
29
28
|
before { allow(rpc_service).to receive(:response).and_return(response) }
|
30
29
|
|
31
30
|
it "dispatches the request" do
|
32
|
-
stack_env = subject.
|
31
|
+
stack_env = subject._call(env)
|
33
32
|
expect(stack_env.response).to eq response
|
34
33
|
end
|
35
|
-
|
36
|
-
context "when the given RPC method is not implemented" do
|
37
|
-
let(:method_name) { :find_not_implemented }
|
38
|
-
|
39
|
-
it "raises a method not found exception" do
|
40
|
-
expect { subject.call(env) }.to raise_exception(Protobuf::Rpc::MethodNotFound)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
context "when the given RPC method is implemented and a NoMethodError is raised" do
|
45
|
-
before { allow(rpc_service).to receive(:callable_rpc_method).and_return(-> { rpc_service.__send__(:foo) }) }
|
46
|
-
|
47
|
-
it "raises the exeception" do
|
48
|
-
expect { subject.call(env) }.to raise_exception(NoMethodError)
|
49
|
-
end
|
50
|
-
end
|
51
34
|
end
|
52
35
|
end
|
@@ -362,7 +362,7 @@ RSpec.describe Protobuf::Rpc::ServiceFilters do
|
|
362
362
|
:endpoint,
|
363
363
|
:inner_around_bottom,
|
364
364
|
:outer_around_bottom,
|
365
|
-
]
|
365
|
+
],
|
366
366
|
)
|
367
367
|
end
|
368
368
|
|
@@ -390,7 +390,7 @@ RSpec.describe Protobuf::Rpc::ServiceFilters do
|
|
390
390
|
:outer_around_top,
|
391
391
|
:inner_around,
|
392
392
|
:outer_around_bottom,
|
393
|
-
]
|
393
|
+
],
|
394
394
|
)
|
395
395
|
end
|
396
396
|
|
@@ -11,7 +11,7 @@ RSpec.describe Protobuf::Varint do
|
|
11
11
|
913_389 => "7d83",
|
12
12
|
516_192_829_912_693 => "9eyMkpivdQ==",
|
13
13
|
9_999_999_999_999_999_999 => "//+fz8jgyOOKAQ==",
|
14
|
-
}
|
14
|
+
}.freeze
|
15
15
|
|
16
16
|
[defined?(::Varint) ? ::Varint : nil, Protobuf::VarintPure].compact.each do |klass|
|
17
17
|
context "with #{klass}" do
|
data/spec/lib/protobuf_spec.rb
CHANGED
@@ -19,26 +19,23 @@ RSpec.describe ::Protobuf do
|
|
19
19
|
end
|
20
20
|
end
|
21
21
|
|
22
|
-
describe '.
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
expect(described_class.connector_type).to eq :socket
|
22
|
+
describe '.connector_type_class' do
|
23
|
+
it "defaults to Socket" do
|
24
|
+
described_class.connector_type_class = nil
|
25
|
+
expect(described_class.connector_type_class).to eq(::Protobuf::Rpc::Connectors::Socket)
|
27
26
|
end
|
28
27
|
|
29
|
-
it '
|
30
|
-
[
|
31
|
-
|
32
|
-
|
33
|
-
end
|
28
|
+
it 'fails if fails to load the PB_CLIENT_TYPE' do
|
29
|
+
ENV['PB_CLIENT_TYPE'] = "something_to_autoload"
|
30
|
+
expect { load 'protobuf.rb' }.to raise_error(LoadError, /something_to_autoload/)
|
31
|
+
ENV.delete('PB_CLIENT_TYPE')
|
34
32
|
end
|
35
33
|
|
36
|
-
it '
|
37
|
-
[
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
end
|
34
|
+
it 'loads the connector type class from PB_CLIENT_TYPE' do
|
35
|
+
ENV['PB_CLIENT_TYPE'] = "protobuf/rpc/connectors/zmq"
|
36
|
+
load 'protobuf.rb'
|
37
|
+
expect(::Protobuf.connector_type_class).to eq(::Protobuf::Rpc::Connectors::Zmq)
|
38
|
+
ENV.delete('PB_CLIENT_TYPE')
|
42
39
|
end
|
43
40
|
end
|
44
41
|
|
@@ -12,11 +12,12 @@ if defined?(RSpec)
|
|
12
12
|
end
|
13
13
|
|
14
14
|
let(:field_name) { "#{field_klass.name.split('::').last.underscore}_packed_field".to_sym }
|
15
|
-
let(:
|
15
|
+
let(:value) { [100, 200, 300] }
|
16
|
+
let(:message_instance) { PackableFieldTest.new(field_name => value) }
|
16
17
|
|
17
18
|
subject { PackableFieldTest.get_field(field_name) }
|
18
19
|
|
19
20
|
specify { expect(subject).to be_packed }
|
20
|
-
|
21
|
+
specify { expect(PackableFieldTest.decode(message_instance.encode).send(field_name)).to eq value }
|
21
22
|
end
|
22
23
|
end
|
@@ -18,12 +18,13 @@ module Test
|
|
18
18
|
# Enum Classes
|
19
19
|
#
|
20
20
|
class EnumTestType < ::Protobuf::Enum
|
21
|
+
define :ZERO, 0
|
21
22
|
define :ONE, 1
|
22
23
|
define :TWO, 2
|
23
24
|
end
|
24
25
|
|
25
26
|
class AliasedEnum < ::Protobuf::Enum
|
26
|
-
set_option :allow_alias
|
27
|
+
set_option :allow_alias, true
|
27
28
|
|
28
29
|
define :THREE, 3
|
29
30
|
define :TRES, 3
|
@@ -25,7 +25,7 @@ module Protobuf_unittest
|
|
25
25
|
end
|
26
26
|
|
27
27
|
class TestEnumWithDupValue < ::Protobuf::Enum
|
28
|
-
set_option :allow_alias
|
28
|
+
set_option :allow_alias, true
|
29
29
|
|
30
30
|
define :FOO1, 1
|
31
31
|
define :BAR1, 2
|
@@ -175,6 +175,17 @@ module Protobuf_unittest
|
|
175
175
|
class BarResponse < ::Protobuf::Message; end
|
176
176
|
|
177
177
|
|
178
|
+
##
|
179
|
+
# File Options
|
180
|
+
#
|
181
|
+
set_option :java_outer_classname, "UnittestProto"
|
182
|
+
set_option :optimize_for, ::Google::Protobuf::FileOptions::OptimizeMode::SPEED
|
183
|
+
set_option :cc_generic_services, true
|
184
|
+
set_option :java_generic_services, true
|
185
|
+
set_option :py_generic_services, true
|
186
|
+
set_option :cc_enable_arenas, true
|
187
|
+
|
188
|
+
|
178
189
|
##
|
179
190
|
# Message Fields
|
180
191
|
#
|
@@ -213,10 +224,10 @@ module Protobuf_unittest
|
|
213
224
|
optional ::Protobuf_unittest::TestAllTypes::NestedEnum, :optional_nested_enum, 21
|
214
225
|
optional ::Protobuf_unittest::ForeignEnum, :optional_foreign_enum, 22
|
215
226
|
optional ::Protobuf_unittest_import::ImportEnum, :optional_import_enum, 23
|
216
|
-
optional :string, :optional_string_piece, 24
|
217
|
-
optional :string, :optional_cord, 25
|
227
|
+
optional :string, :optional_string_piece, 24, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
228
|
+
optional :string, :optional_cord, 25, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
218
229
|
optional ::Protobuf_unittest_import::PublicImportMessage, :optional_public_import_message, 26
|
219
|
-
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :optional_lazy_message, 27
|
230
|
+
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :optional_lazy_message, 27, :lazy => true
|
220
231
|
repeated :int32, :repeated_int32, 31
|
221
232
|
repeated :int64, :repeated_int64, 32
|
222
233
|
repeated :uint32, :repeated_uint32, 33
|
@@ -239,9 +250,9 @@ module Protobuf_unittest
|
|
239
250
|
repeated ::Protobuf_unittest::TestAllTypes::NestedEnum, :repeated_nested_enum, 51
|
240
251
|
repeated ::Protobuf_unittest::ForeignEnum, :repeated_foreign_enum, 52
|
241
252
|
repeated ::Protobuf_unittest_import::ImportEnum, :repeated_import_enum, 53
|
242
|
-
repeated :string, :repeated_string_piece, 54
|
243
|
-
repeated :string, :repeated_cord, 55
|
244
|
-
repeated ::Protobuf_unittest::TestAllTypes::NestedMessage, :repeated_lazy_message, 57
|
253
|
+
repeated :string, :repeated_string_piece, 54, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
254
|
+
repeated :string, :repeated_cord, 55, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
255
|
+
repeated ::Protobuf_unittest::TestAllTypes::NestedMessage, :repeated_lazy_message, 57, :lazy => true
|
245
256
|
optional :int32, :default_int32, 61, :default => 41
|
246
257
|
optional :int64, :default_int64, 62, :default => 42
|
247
258
|
optional :uint32, :default_uint32, 63, :default => 43
|
@@ -260,8 +271,8 @@ module Protobuf_unittest
|
|
260
271
|
optional ::Protobuf_unittest::TestAllTypes::NestedEnum, :default_nested_enum, 81, :default => ::Protobuf_unittest::TestAllTypes::NestedEnum::BAR
|
261
272
|
optional ::Protobuf_unittest::ForeignEnum, :default_foreign_enum, 82, :default => ::Protobuf_unittest::ForeignEnum::FOREIGN_BAR
|
262
273
|
optional ::Protobuf_unittest_import::ImportEnum, :default_import_enum, 83, :default => ::Protobuf_unittest_import::ImportEnum::IMPORT_BAR
|
263
|
-
optional :string, :default_string_piece, 84, :default => "abc"
|
264
|
-
optional :string, :default_cord, 85, :default => "123"
|
274
|
+
optional :string, :default_string_piece, 84, :default => "abc", :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
275
|
+
optional :string, :default_cord, 85, :default => "123", :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
265
276
|
optional :uint32, :oneof_uint32, 111
|
266
277
|
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :oneof_nested_message, 112
|
267
278
|
optional :string, :oneof_string, 113
|
@@ -307,10 +318,10 @@ module Protobuf_unittest
|
|
307
318
|
optional ::Protobuf_unittest::TestAllTypes::NestedEnum, :".protobuf_unittest.optional_nested_enum_extension", 21, :extension => true
|
308
319
|
optional ::Protobuf_unittest::ForeignEnum, :".protobuf_unittest.optional_foreign_enum_extension", 22, :extension => true
|
309
320
|
optional ::Protobuf_unittest_import::ImportEnum, :".protobuf_unittest.optional_import_enum_extension", 23, :extension => true
|
310
|
-
optional :string, :".protobuf_unittest.optional_string_piece_extension", 24, :extension => true
|
311
|
-
optional :string, :".protobuf_unittest.optional_cord_extension", 25, :extension => true
|
321
|
+
optional :string, :".protobuf_unittest.optional_string_piece_extension", 24, :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
322
|
+
optional :string, :".protobuf_unittest.optional_cord_extension", 25, :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
312
323
|
optional ::Protobuf_unittest_import::PublicImportMessage, :".protobuf_unittest.optional_public_import_message_extension", 26, :extension => true
|
313
|
-
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :".protobuf_unittest.optional_lazy_message_extension", 27, :extension => true
|
324
|
+
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :".protobuf_unittest.optional_lazy_message_extension", 27, :extension => true, :lazy => true
|
314
325
|
repeated :int32, :".protobuf_unittest.repeated_int32_extension", 31, :extension => true
|
315
326
|
repeated :int64, :".protobuf_unittest.repeated_int64_extension", 32, :extension => true
|
316
327
|
repeated :uint32, :".protobuf_unittest.repeated_uint32_extension", 33, :extension => true
|
@@ -333,9 +344,9 @@ module Protobuf_unittest
|
|
333
344
|
repeated ::Protobuf_unittest::TestAllTypes::NestedEnum, :".protobuf_unittest.repeated_nested_enum_extension", 51, :extension => true
|
334
345
|
repeated ::Protobuf_unittest::ForeignEnum, :".protobuf_unittest.repeated_foreign_enum_extension", 52, :extension => true
|
335
346
|
repeated ::Protobuf_unittest_import::ImportEnum, :".protobuf_unittest.repeated_import_enum_extension", 53, :extension => true
|
336
|
-
repeated :string, :".protobuf_unittest.repeated_string_piece_extension", 54, :extension => true
|
337
|
-
repeated :string, :".protobuf_unittest.repeated_cord_extension", 55, :extension => true
|
338
|
-
repeated ::Protobuf_unittest::TestAllTypes::NestedMessage, :".protobuf_unittest.repeated_lazy_message_extension", 57, :extension => true
|
347
|
+
repeated :string, :".protobuf_unittest.repeated_string_piece_extension", 54, :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
348
|
+
repeated :string, :".protobuf_unittest.repeated_cord_extension", 55, :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
349
|
+
repeated ::Protobuf_unittest::TestAllTypes::NestedMessage, :".protobuf_unittest.repeated_lazy_message_extension", 57, :extension => true, :lazy => true
|
339
350
|
optional :int32, :".protobuf_unittest.default_int32_extension", 61, :default => 41, :extension => true
|
340
351
|
optional :int64, :".protobuf_unittest.default_int64_extension", 62, :default => 42, :extension => true
|
341
352
|
optional :uint32, :".protobuf_unittest.default_uint32_extension", 63, :default => 43, :extension => true
|
@@ -354,8 +365,8 @@ module Protobuf_unittest
|
|
354
365
|
optional ::Protobuf_unittest::TestAllTypes::NestedEnum, :".protobuf_unittest.default_nested_enum_extension", 81, :default => ::Protobuf_unittest::TestAllTypes::NestedEnum::BAR, :extension => true
|
355
366
|
optional ::Protobuf_unittest::ForeignEnum, :".protobuf_unittest.default_foreign_enum_extension", 82, :default => ::Protobuf_unittest::ForeignEnum::FOREIGN_BAR, :extension => true
|
356
367
|
optional ::Protobuf_unittest_import::ImportEnum, :".protobuf_unittest.default_import_enum_extension", 83, :default => ::Protobuf_unittest_import::ImportEnum::IMPORT_BAR, :extension => true
|
357
|
-
optional :string, :".protobuf_unittest.default_string_piece_extension", 84, :default => "abc", :extension => true
|
358
|
-
optional :string, :".protobuf_unittest.default_cord_extension", 85, :default => "123", :extension => true
|
368
|
+
optional :string, :".protobuf_unittest.default_string_piece_extension", 84, :default => "abc", :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
369
|
+
optional :string, :".protobuf_unittest.default_cord_extension", 85, :default => "123", :extension => true, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
359
370
|
optional :uint32, :".protobuf_unittest.oneof_uint32_extension", 111, :extension => true
|
360
371
|
optional ::Protobuf_unittest::TestAllTypes::NestedMessage, :".protobuf_unittest.oneof_nested_message_extension", 112, :extension => true
|
361
372
|
optional :string, :".protobuf_unittest.oneof_string_extension", 113, :extension => true
|
@@ -455,11 +466,11 @@ module Protobuf_unittest
|
|
455
466
|
end
|
456
467
|
|
457
468
|
class TestEagerMessage
|
458
|
-
optional ::Protobuf_unittest::TestAllTypes, :sub_message, 1
|
469
|
+
optional ::Protobuf_unittest::TestAllTypes, :sub_message, 1, :lazy => false
|
459
470
|
end
|
460
471
|
|
461
472
|
class TestLazyMessage
|
462
|
-
optional ::Protobuf_unittest::TestAllTypes, :sub_message, 1
|
473
|
+
optional ::Protobuf_unittest::TestAllTypes, :sub_message, 1, :lazy => true
|
463
474
|
end
|
464
475
|
|
465
476
|
class TestNestedMessageHasBits
|
@@ -476,14 +487,14 @@ module Protobuf_unittest
|
|
476
487
|
optional :string, :StringField, 2
|
477
488
|
optional ::Protobuf_unittest::ForeignEnum, :EnumField, 3
|
478
489
|
optional ::Protobuf_unittest::ForeignMessage, :MessageField, 4
|
479
|
-
optional :string, :StringPieceField, 5
|
480
|
-
optional :string, :CordField, 6
|
490
|
+
optional :string, :StringPieceField, 5, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
491
|
+
optional :string, :CordField, 6, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
481
492
|
repeated :int32, :RepeatedPrimitiveField, 7
|
482
493
|
repeated :string, :RepeatedStringField, 8
|
483
494
|
repeated ::Protobuf_unittest::ForeignEnum, :RepeatedEnumField, 9
|
484
495
|
repeated ::Protobuf_unittest::ForeignMessage, :RepeatedMessageField, 10
|
485
|
-
repeated :string, :RepeatedStringPieceField, 11
|
486
|
-
repeated :string, :RepeatedCordField, 12
|
496
|
+
repeated :string, :RepeatedStringPieceField, 11, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
497
|
+
repeated :string, :RepeatedCordField, 12, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
487
498
|
end
|
488
499
|
|
489
500
|
class TestFieldOrderings
|
@@ -528,8 +539,8 @@ module Protobuf_unittest
|
|
528
539
|
optional :string, :cpp_trigraph, 20, :default => "? ? ?? ?? ??? ??/ ??-"
|
529
540
|
optional :string, :string_with_zero, 23, :default => "hello"
|
530
541
|
optional :bytes, :bytes_with_zero, 24, :default => "wor\000ld"
|
531
|
-
optional :string, :string_piece_with_zero, 25, :default => "abc"
|
532
|
-
optional :string, :cord_with_zero, 26, :default => "123"
|
542
|
+
optional :string, :string_piece_with_zero, 25, :default => "abc", :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
543
|
+
optional :string, :cord_with_zero, 26, :default => "123", :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
533
544
|
optional :string, :replacement_string, 27, :default => "${unknown}"
|
534
545
|
end
|
535
546
|
|
@@ -610,17 +621,17 @@ module Protobuf_unittest
|
|
610
621
|
|
611
622
|
optional :int32, :foo_int, 1
|
612
623
|
optional :string, :foo_string, 2
|
613
|
-
optional :string, :foo_cord, 3
|
614
|
-
optional :string, :foo_string_piece, 4
|
624
|
+
optional :string, :foo_cord, 3, :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
625
|
+
optional :string, :foo_string_piece, 4, :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
615
626
|
optional :bytes, :foo_bytes, 5
|
616
627
|
optional ::Protobuf_unittest::TestOneof2::NestedEnum, :foo_enum, 6
|
617
628
|
optional ::Protobuf_unittest::TestOneof2::NestedMessage, :foo_message, 7
|
618
629
|
optional ::Protobuf_unittest::TestOneof2::FooGroup, :foogroup, 8
|
619
|
-
optional ::Protobuf_unittest::TestOneof2::NestedMessage, :foo_lazy_message, 11
|
630
|
+
optional ::Protobuf_unittest::TestOneof2::NestedMessage, :foo_lazy_message, 11, :lazy => true
|
620
631
|
optional :int32, :bar_int, 12, :default => 5
|
621
632
|
optional :string, :bar_string, 13, :default => "STRING"
|
622
|
-
optional :string, :bar_cord, 14, :default => "CORD"
|
623
|
-
optional :string, :bar_string_piece, 15, :default => "SPIECE"
|
633
|
+
optional :string, :bar_cord, 14, :default => "CORD", :ctype => ::Google::Protobuf::FieldOptions::CType::CORD
|
634
|
+
optional :string, :bar_string_piece, 15, :default => "SPIECE", :ctype => ::Google::Protobuf::FieldOptions::CType::STRING_PIECE
|
624
635
|
optional :bytes, :bar_bytes, 16, :default => "BYTES"
|
625
636
|
optional ::Protobuf_unittest::TestOneof2::NestedEnum, :bar_enum, 17, :default => ::Protobuf_unittest::TestOneof2::NestedEnum::BAR
|
626
637
|
optional :int32, :baz_int, 18
|
@@ -655,20 +666,20 @@ module Protobuf_unittest
|
|
655
666
|
end
|
656
667
|
|
657
668
|
class TestUnpackedTypes
|
658
|
-
repeated :int32, :unpacked_int32, 90
|
659
|
-
repeated :int64, :unpacked_int64, 91
|
660
|
-
repeated :uint32, :unpacked_uint32, 92
|
661
|
-
repeated :uint64, :unpacked_uint64, 93
|
662
|
-
repeated :sint32, :unpacked_sint32, 94
|
663
|
-
repeated :sint64, :unpacked_sint64, 95
|
664
|
-
repeated :fixed32, :unpacked_fixed32, 96
|
665
|
-
repeated :fixed64, :unpacked_fixed64, 97
|
666
|
-
repeated :sfixed32, :unpacked_sfixed32, 98
|
667
|
-
repeated :sfixed64, :unpacked_sfixed64, 99
|
668
|
-
repeated :float, :unpacked_float, 100
|
669
|
-
repeated :double, :unpacked_double, 101
|
670
|
-
repeated :bool, :unpacked_bool, 102
|
671
|
-
repeated ::Protobuf_unittest::ForeignEnum, :unpacked_enum, 103
|
669
|
+
repeated :int32, :unpacked_int32, 90, :packed => false
|
670
|
+
repeated :int64, :unpacked_int64, 91, :packed => false
|
671
|
+
repeated :uint32, :unpacked_uint32, 92, :packed => false
|
672
|
+
repeated :uint64, :unpacked_uint64, 93, :packed => false
|
673
|
+
repeated :sint32, :unpacked_sint32, 94, :packed => false
|
674
|
+
repeated :sint64, :unpacked_sint64, 95, :packed => false
|
675
|
+
repeated :fixed32, :unpacked_fixed32, 96, :packed => false
|
676
|
+
repeated :fixed64, :unpacked_fixed64, 97, :packed => false
|
677
|
+
repeated :sfixed32, :unpacked_sfixed32, 98, :packed => false
|
678
|
+
repeated :sfixed64, :unpacked_sfixed64, 99, :packed => false
|
679
|
+
repeated :float, :unpacked_float, 100, :packed => false
|
680
|
+
repeated :double, :unpacked_double, 101, :packed => false
|
681
|
+
repeated :bool, :unpacked_bool, 102, :packed => false
|
682
|
+
repeated ::Protobuf_unittest::ForeignEnum, :unpacked_enum, 103, :packed => false
|
672
683
|
end
|
673
684
|
|
674
685
|
class TestPackedExtensions
|
@@ -693,20 +704,20 @@ module Protobuf_unittest
|
|
693
704
|
class TestUnpackedExtensions
|
694
705
|
# Extension Fields
|
695
706
|
extensions 1...536870912
|
696
|
-
repeated :int32, :".protobuf_unittest.unpacked_int32_extension", 90, :extension => true
|
697
|
-
repeated :int64, :".protobuf_unittest.unpacked_int64_extension", 91, :extension => true
|
698
|
-
repeated :uint32, :".protobuf_unittest.unpacked_uint32_extension", 92, :extension => true
|
699
|
-
repeated :uint64, :".protobuf_unittest.unpacked_uint64_extension", 93, :extension => true
|
700
|
-
repeated :sint32, :".protobuf_unittest.unpacked_sint32_extension", 94, :extension => true
|
701
|
-
repeated :sint64, :".protobuf_unittest.unpacked_sint64_extension", 95, :extension => true
|
702
|
-
repeated :fixed32, :".protobuf_unittest.unpacked_fixed32_extension", 96, :extension => true
|
703
|
-
repeated :fixed64, :".protobuf_unittest.unpacked_fixed64_extension", 97, :extension => true
|
704
|
-
repeated :sfixed32, :".protobuf_unittest.unpacked_sfixed32_extension", 98, :extension => true
|
705
|
-
repeated :sfixed64, :".protobuf_unittest.unpacked_sfixed64_extension", 99, :extension => true
|
706
|
-
repeated :float, :".protobuf_unittest.unpacked_float_extension", 100, :extension => true
|
707
|
-
repeated :double, :".protobuf_unittest.unpacked_double_extension", 101, :extension => true
|
708
|
-
repeated :bool, :".protobuf_unittest.unpacked_bool_extension", 102, :extension => true
|
709
|
-
repeated ::Protobuf_unittest::ForeignEnum, :".protobuf_unittest.unpacked_enum_extension", 103, :extension => true
|
707
|
+
repeated :int32, :".protobuf_unittest.unpacked_int32_extension", 90, :extension => true, :packed => false
|
708
|
+
repeated :int64, :".protobuf_unittest.unpacked_int64_extension", 91, :extension => true, :packed => false
|
709
|
+
repeated :uint32, :".protobuf_unittest.unpacked_uint32_extension", 92, :extension => true, :packed => false
|
710
|
+
repeated :uint64, :".protobuf_unittest.unpacked_uint64_extension", 93, :extension => true, :packed => false
|
711
|
+
repeated :sint32, :".protobuf_unittest.unpacked_sint32_extension", 94, :extension => true, :packed => false
|
712
|
+
repeated :sint64, :".protobuf_unittest.unpacked_sint64_extension", 95, :extension => true, :packed => false
|
713
|
+
repeated :fixed32, :".protobuf_unittest.unpacked_fixed32_extension", 96, :extension => true, :packed => false
|
714
|
+
repeated :fixed64, :".protobuf_unittest.unpacked_fixed64_extension", 97, :extension => true, :packed => false
|
715
|
+
repeated :sfixed32, :".protobuf_unittest.unpacked_sfixed32_extension", 98, :extension => true, :packed => false
|
716
|
+
repeated :sfixed64, :".protobuf_unittest.unpacked_sfixed64_extension", 99, :extension => true, :packed => false
|
717
|
+
repeated :float, :".protobuf_unittest.unpacked_float_extension", 100, :extension => true, :packed => false
|
718
|
+
repeated :double, :".protobuf_unittest.unpacked_double_extension", 101, :extension => true, :packed => false
|
719
|
+
repeated :bool, :".protobuf_unittest.unpacked_bool_extension", 102, :extension => true, :packed => false
|
720
|
+
repeated ::Protobuf_unittest::ForeignEnum, :".protobuf_unittest.unpacked_enum_extension", 103, :extension => true, :packed => false
|
710
721
|
end
|
711
722
|
|
712
723
|
class TestDynamicExtensions
|
Binary file
|