protobuf 3.0.4 → 3.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/lib/protobuf/field/base_field.rb +5 -1
- data/lib/protobuf/field/float_field.rb +4 -0
- data/lib/protobuf/rpc/connectors/zmq.rb +31 -20
- data/lib/protobuf/rpc/servers/zmq/broker.rb +1 -1
- data/lib/protobuf/version.rb +1 -1
- data/protobuf.gemspec +1 -1
- data/spec/encoding/all_types_spec.rb +1 -1
- data/spec/encoding/extreme_values_spec.rb +0 -0
- data/spec/functional/socket_server_spec.rb +5 -4
- data/spec/functional/zmq_server_spec.rb +7 -7
- data/spec/lib/protobuf/cli_spec.rb +39 -39
- data/spec/lib/protobuf/code_generator_spec.rb +4 -4
- data/spec/lib/protobuf/enum_spec.rb +23 -23
- data/spec/lib/protobuf/field/float_field_spec.rb +55 -0
- data/spec/lib/protobuf/field/string_field_spec.rb +4 -4
- data/spec/lib/protobuf/generators/base_spec.rb +4 -7
- data/spec/lib/protobuf/generators/enum_generator_spec.rb +3 -3
- data/spec/lib/protobuf/generators/extension_generator_spec.rb +4 -4
- data/spec/lib/protobuf/generators/field_generator_spec.rb +11 -11
- data/spec/lib/protobuf/generators/file_generator_spec.rb +3 -3
- data/spec/lib/protobuf/generators/service_generator_spec.rb +2 -2
- data/spec/lib/protobuf/lifecycle_spec.rb +16 -16
- data/spec/lib/protobuf/logger_spec.rb +27 -27
- data/spec/lib/protobuf/message_spec.rb +42 -42
- data/spec/lib/protobuf/optionable_spec.rb +1 -1
- data/spec/lib/protobuf/rpc/client_spec.rb +13 -13
- data/spec/lib/protobuf/rpc/connector_spec.rb +4 -4
- data/spec/lib/protobuf/rpc/connectors/base_spec.rb +7 -7
- data/spec/lib/protobuf/rpc/connectors/common_spec.rb +31 -33
- data/spec/lib/protobuf/rpc/connectors/socket_spec.rb +8 -8
- data/spec/lib/protobuf/rpc/connectors/zmq_spec.rb +24 -35
- data/spec/lib/protobuf/rpc/middleware/exception_handler_spec.rb +8 -8
- data/spec/lib/protobuf/rpc/middleware/logger_spec.rb +2 -2
- data/spec/lib/protobuf/rpc/middleware/request_decoder_spec.rb +10 -10
- data/spec/lib/protobuf/rpc/middleware/response_encoder_spec.rb +6 -6
- data/spec/lib/protobuf/rpc/servers/socket_server_spec.rb +3 -3
- data/spec/lib/protobuf/rpc/servers/zmq/server_spec.rb +3 -3
- data/spec/lib/protobuf/rpc/servers/zmq/util_spec.rb +2 -2
- data/spec/lib/protobuf/rpc/servers/zmq/worker_spec.rb +5 -5
- data/spec/lib/protobuf/rpc/service_directory_spec.rb +26 -27
- data/spec/lib/protobuf/rpc/service_dispatcher_spec.rb +4 -4
- data/spec/lib/protobuf/rpc/service_filters_spec.rb +39 -39
- data/spec/lib/protobuf/rpc/service_spec.rb +27 -27
- data/spec/lib/protobuf/rpc/stat_spec.rb +4 -4
- data/spec/lib/protobuf_spec.rb +7 -7
- data/spec/spec_helper.rb +1 -0
- data/spec/support/packed_field.rb +1 -1
- metadata +6 -76
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0081c6fc0146c8bd5d61a987d0f5b374a950d13b
|
4
|
+
data.tar.gz: cccc8f0d7acb314e3725816fe3e7081d06e1e346
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 19e94efb5c58ed704afac0ff0a2023589dbd9ec2aef35bd376cbba7dc4ec3c6feb7fb01363b123ee01913d3ecdfead89d4e3a79526536d4a78859450a67595b5
|
7
|
+
data.tar.gz: f9fc9d6001dae54bb777a4112db945abb04a34ceb80e63a500d1f13bb1583a62481d366c293c7a7d0bde334e71b7d5b683001b88501141db878de38b83a466c3
|
data/.travis.yml
CHANGED
@@ -63,6 +63,10 @@ module Protobuf
|
|
63
63
|
true
|
64
64
|
end
|
65
65
|
|
66
|
+
def coerce!(value)
|
67
|
+
value
|
68
|
+
end
|
69
|
+
|
66
70
|
def enum?
|
67
71
|
false
|
68
72
|
end
|
@@ -226,7 +230,7 @@ module Protobuf
|
|
226
230
|
if val.nil? || (val.respond_to?(:empty?) && val.empty?)
|
227
231
|
@values.delete(field.name)
|
228
232
|
elsif field.acceptable?(val)
|
229
|
-
@values[field.name] = val
|
233
|
+
@values[field.name] = field.coerce!(val)
|
230
234
|
else
|
231
235
|
raise TypeError, "Unacceptable value #{val} for field #{field.name} of type #{field.type_class}"
|
232
236
|
end
|
@@ -5,20 +5,18 @@ module Protobuf
|
|
5
5
|
module Rpc
|
6
6
|
module Connectors
|
7
7
|
class Zmq < Base
|
8
|
-
|
9
8
|
RequestTimeout = Class.new(RuntimeError)
|
9
|
+
ZmqRecoverableError = Class.new(RuntimeError)
|
10
10
|
|
11
11
|
##
|
12
12
|
# Included Modules
|
13
13
|
#
|
14
|
-
|
15
14
|
include Protobuf::Rpc::Connectors::Common
|
16
15
|
include Protobuf::Logger::LogMethods
|
17
16
|
|
18
17
|
##
|
19
18
|
# Class Constants
|
20
19
|
#
|
21
|
-
|
22
20
|
CLIENT_RETRIES = (ENV['PB_CLIENT_RETRIES'] || 3)
|
23
21
|
|
24
22
|
##
|
@@ -68,21 +66,27 @@ module Protobuf
|
|
68
66
|
|
69
67
|
begin
|
70
68
|
server_uri = lookup_server_uri
|
71
|
-
|
72
69
|
socket = zmq_context.socket(::ZMQ::REQ)
|
73
|
-
socket.setsockopt(::ZMQ::LINGER, 0)
|
74
70
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
71
|
+
if socket # Make sure the context builds the socket
|
72
|
+
socket.setsockopt(::ZMQ::LINGER, 0)
|
73
|
+
|
74
|
+
log_debug { sign_message("Establishing connection: #{server_uri}") }
|
75
|
+
zmq_error_check(socket.connect(server_uri), :socket_connect)
|
76
|
+
log_debug { sign_message("Connection established to #{server_uri}") }
|
77
|
+
|
78
|
+
if first_alive_load_balance?
|
79
|
+
begin
|
80
|
+
check_available_response = ""
|
81
|
+
zmq_recoverable_error_check(socket.send_string(::Protobuf::Rpc::Zmq::CHECK_AVAILABLE_MESSAGE), :socket_send_string)
|
82
|
+
zmq_recoverable_error_check(socket.recv_string(check_available_response), :socket_recv_string)
|
83
|
+
|
84
|
+
if check_available_response == ::Protobuf::Rpc::Zmq::NO_WORKERS_AVAILABLE
|
85
|
+
zmq_recoverable_error_check(socket.close, :socket_close)
|
86
|
+
end
|
87
|
+
rescue ZmqRecoverableError
|
88
|
+
socket = nil # couldn't make a connection and need to try again
|
89
|
+
end
|
86
90
|
end
|
87
91
|
end
|
88
92
|
end while socket.try(:socket).nil?
|
@@ -101,7 +105,7 @@ module Protobuf
|
|
101
105
|
# to the host and port in the options
|
102
106
|
#
|
103
107
|
def lookup_server_uri
|
104
|
-
|
108
|
+
5.times do
|
105
109
|
service_directory.all_listings_for(service).each do |listing|
|
106
110
|
host = listing.try(:address)
|
107
111
|
port = listing.try(:port)
|
@@ -111,8 +115,6 @@ module Protobuf
|
|
111
115
|
host = options[:host]
|
112
116
|
port = options[:port]
|
113
117
|
return "tcp://#{host}:#{port}" if host_alive?(host)
|
114
|
-
|
115
|
-
sleep(1.0/10.0) # not sure why sleeping at all, but should be way less than 1 second
|
116
118
|
end
|
117
119
|
|
118
120
|
raise "Host not found for service #{service}"
|
@@ -120,7 +122,6 @@ module Protobuf
|
|
120
122
|
|
121
123
|
def host_alive?(host)
|
122
124
|
return true unless ping_port_enabled?
|
123
|
-
|
124
125
|
socket = TCPSocket.new(host, ping_port.to_i)
|
125
126
|
|
126
127
|
true
|
@@ -199,6 +200,16 @@ module Protobuf
|
|
199
200
|
ERROR
|
200
201
|
end
|
201
202
|
end
|
203
|
+
|
204
|
+
def zmq_recoverable_error_check(return_code, source)
|
205
|
+
unless ::ZMQ::Util.resultcode_ok?(return_code || -1)
|
206
|
+
raise ZmqRecoverableError, <<-ERROR
|
207
|
+
Last ZMQ API call to #{source} failed with "#{::ZMQ::Util.error_string}".
|
208
|
+
|
209
|
+
#{caller(1).join($/)}
|
210
|
+
ERROR
|
211
|
+
end
|
212
|
+
end
|
202
213
|
end
|
203
214
|
end
|
204
215
|
end
|
@@ -102,7 +102,7 @@ module Protobuf
|
|
102
102
|
address, _, message, *frames = read_from_frontend
|
103
103
|
|
104
104
|
if message == ::Protobuf::Rpc::Zmq::CHECK_AVAILABLE_MESSAGE
|
105
|
-
if @idle_workers.any? || local_queue.
|
105
|
+
if @idle_workers.any? || local_queue.size < 5 # Should make queue a SizedQueue and allow users to configure queue size
|
106
106
|
write_to_frontend([address, "", ::Protobuf::Rpc::Zmq::WORKERS_AVAILABLE])
|
107
107
|
else
|
108
108
|
write_to_frontend([address, "", ::Protobuf::Rpc::Zmq::NO_WORKERS_AVAILABLE])
|
data/lib/protobuf/version.rb
CHANGED
data/protobuf.gemspec
CHANGED
@@ -27,7 +27,7 @@ require "protobuf/version"
|
|
27
27
|
s.add_development_dependency 'ffi-rzmq'
|
28
28
|
s.add_development_dependency 'pry-nav'
|
29
29
|
s.add_development_dependency 'rake'
|
30
|
-
s.add_development_dependency 'rspec'
|
30
|
+
s.add_development_dependency 'rspec', '>= 3.0'
|
31
31
|
s.add_development_dependency 'simplecov'
|
32
32
|
s.add_development_dependency 'yard'
|
33
33
|
s.add_development_dependency 'timecop'
|
Binary file
|
@@ -21,8 +21,8 @@ describe 'Functional Socket Client' do
|
|
21
21
|
|
22
22
|
client.find(:name => 'Test Name', :active => true) do |c|
|
23
23
|
c.on_success do |succ|
|
24
|
-
succ.name.
|
25
|
-
succ.status.
|
24
|
+
expect(succ.name).to eq("Test Name")
|
25
|
+
expect(succ.status).to eq(::Test::StatusType::ENABLED)
|
26
26
|
end
|
27
27
|
|
28
28
|
c.on_failure do |err|
|
@@ -41,7 +41,8 @@ describe 'Functional Socket Client' do
|
|
41
41
|
c.on_success { raise "shouldn't pass"}
|
42
42
|
c.on_failure {|e| error = e}
|
43
43
|
end
|
44
|
-
|
44
|
+
|
45
|
+
expect(error.message).to match(/name.*required/)
|
45
46
|
end
|
46
47
|
|
47
48
|
it 'calls the on_failure callback when the request type is wrong' do
|
@@ -53,7 +54,7 @@ describe 'Functional Socket Client' do
|
|
53
54
|
c.on_success { raise "shouldn't pass"}
|
54
55
|
c.on_failure {|e| error = e}
|
55
56
|
end
|
56
|
-
error.message.
|
57
|
+
expect(error.message).to match(/expected request.*ResourceFindRequest.*Resource instead/i)
|
57
58
|
end
|
58
59
|
end
|
59
60
|
|
@@ -27,8 +27,8 @@ describe 'Functional ZMQ Client' do
|
|
27
27
|
|
28
28
|
client.find(:name => 'Test Name', :active => true) do |c|
|
29
29
|
c.on_success do |succ|
|
30
|
-
succ.name.
|
31
|
-
succ.status.
|
30
|
+
expect(succ.name).to eq("Test Name")
|
31
|
+
expect(succ.status).to eq(::Test::StatusType::ENABLED)
|
32
32
|
end
|
33
33
|
|
34
34
|
c.on_failure do |err|
|
@@ -46,8 +46,8 @@ describe 'Functional ZMQ Client' do
|
|
46
46
|
|
47
47
|
client.find(:name => 'Test Name', :active => true) do |c|
|
48
48
|
c.on_success do |succ|
|
49
|
-
succ.name.
|
50
|
-
succ.status.
|
49
|
+
expect(succ.name).to eq("Test Name")
|
50
|
+
expect(succ.status).to eq(::Test::StatusType::ENABLED)
|
51
51
|
end
|
52
52
|
|
53
53
|
c.on_failure do |err|
|
@@ -69,7 +69,7 @@ describe 'Functional ZMQ Client' do
|
|
69
69
|
c.on_success { raise "shouldn't pass" }
|
70
70
|
c.on_failure {|e| error = e }
|
71
71
|
end
|
72
|
-
error.message.
|
72
|
+
expect(error.message).to match(/name.*required/)
|
73
73
|
end
|
74
74
|
end
|
75
75
|
|
@@ -83,7 +83,7 @@ describe 'Functional ZMQ Client' do
|
|
83
83
|
c.on_success { raise "shouldn't pass" }
|
84
84
|
c.on_failure {|e| error = e}
|
85
85
|
end
|
86
|
-
error.message.
|
86
|
+
expect(error.message).to match(/expected request.*ResourceFindRequest.*Resource instead/i)
|
87
87
|
end
|
88
88
|
end
|
89
89
|
|
@@ -96,7 +96,7 @@ describe 'Functional ZMQ Client' do
|
|
96
96
|
c.on_success { raise "shouldn't pass" }
|
97
97
|
c.on_failure { |e| error = e }
|
98
98
|
end
|
99
|
-
error.message.
|
99
|
+
expect(error.message).to match(/The server repeatedly failed to respond/)
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
@@ -9,19 +9,19 @@ describe ::Protobuf::CLI do
|
|
9
9
|
|
10
10
|
let(:sock_runner) {
|
11
11
|
runner = double("SocketRunner", :register_signals => nil)
|
12
|
-
runner.
|
12
|
+
allow(runner).to receive(:run).and_return(::ActiveSupport::Notifications.publish("after_server_bind"))
|
13
13
|
runner
|
14
14
|
}
|
15
15
|
|
16
16
|
let(:zmq_runner) {
|
17
17
|
runner = double "ZmqRunner", register_signals: nil
|
18
|
-
runner.
|
18
|
+
allow(runner).to receive(:run).and_return(::ActiveSupport::Notifications.publish("after_server_bind"))
|
19
19
|
runner
|
20
20
|
}
|
21
21
|
|
22
22
|
before(:each) do
|
23
|
-
::Protobuf::Rpc::SocketRunner.
|
24
|
-
::Protobuf::Rpc::ZmqRunner.
|
23
|
+
allow(::Protobuf::Rpc::SocketRunner).to receive(:new).and_return(sock_runner)
|
24
|
+
allow(::Protobuf::Rpc::ZmqRunner).to receive(:new).and_return(zmq_runner)
|
25
25
|
end
|
26
26
|
|
27
27
|
describe '#start' do
|
@@ -33,8 +33,8 @@ describe ::Protobuf::CLI do
|
|
33
33
|
let(:test_args) { [ '--host=123.123.123.123' ] }
|
34
34
|
|
35
35
|
it 'sends the host option to the runner' do
|
36
|
-
::Protobuf::Rpc::SocketRunner.
|
37
|
-
options[:host].
|
36
|
+
expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
|
37
|
+
expect(options[:host]).to eq '123.123.123.123'
|
38
38
|
end.and_return(sock_runner)
|
39
39
|
described_class.start(args)
|
40
40
|
end
|
@@ -44,8 +44,8 @@ describe ::Protobuf::CLI do
|
|
44
44
|
let(:test_args) { [ '--port=12345' ] }
|
45
45
|
|
46
46
|
it 'sends the port option to the runner' do
|
47
|
-
::Protobuf::Rpc::SocketRunner.
|
48
|
-
options[:port].
|
47
|
+
expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
|
48
|
+
expect(options[:port]).to eq 12345
|
49
49
|
end.and_return(sock_runner)
|
50
50
|
described_class.start(args)
|
51
51
|
end
|
@@ -55,8 +55,8 @@ describe ::Protobuf::CLI do
|
|
55
55
|
let(:test_args) { [ '--threads=500' ] }
|
56
56
|
|
57
57
|
it 'sends the threads option to the runner' do
|
58
|
-
::Protobuf::Rpc::SocketRunner.
|
59
|
-
options[:threads].
|
58
|
+
expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
|
59
|
+
expect(options[:threads]).to eq 500
|
60
60
|
end.and_return(sock_runner)
|
61
61
|
described_class.start(args)
|
62
62
|
end
|
@@ -66,8 +66,8 @@ describe ::Protobuf::CLI do
|
|
66
66
|
let(:test_args) { [ '--backlog=500' ] }
|
67
67
|
|
68
68
|
it 'sends the backlog option to the runner' do
|
69
|
-
::Protobuf::Rpc::SocketRunner.
|
70
|
-
options[:backlog].
|
69
|
+
expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
|
70
|
+
expect(options[:backlog]).to eq 500
|
71
71
|
end.and_return(sock_runner)
|
72
72
|
described_class.start(args)
|
73
73
|
end
|
@@ -77,8 +77,8 @@ describe ::Protobuf::CLI do
|
|
77
77
|
let(:test_args) { [ '--threshold=500' ] }
|
78
78
|
|
79
79
|
it 'sends the backlog option to the runner' do
|
80
|
-
::Protobuf::Rpc::SocketRunner.
|
81
|
-
options[:threshold].
|
80
|
+
expect(::Protobuf::Rpc::SocketRunner).to receive(:new) do |options|
|
81
|
+
expect(options[:threshold]).to eq 500
|
82
82
|
end.and_return(sock_runner)
|
83
83
|
described_class.start(args)
|
84
84
|
end
|
@@ -88,9 +88,9 @@ describe ::Protobuf::CLI do
|
|
88
88
|
let(:test_args) { [ '--log=mylog.log', '--level=0' ] }
|
89
89
|
|
90
90
|
it 'sends the log file and level options to the runner' do
|
91
|
-
::Protobuf::Logger.
|
92
|
-
options[:file].
|
93
|
-
options[:level].
|
91
|
+
expect(::Protobuf::Logger).to receive(:configure) do |options|
|
92
|
+
expect(options[:file]).to eq 'mylog.log'
|
93
|
+
expect(options[:level]).to eq 0
|
94
94
|
end
|
95
95
|
described_class.start(args)
|
96
96
|
end
|
@@ -103,7 +103,7 @@ describe ::Protobuf::CLI do
|
|
103
103
|
|
104
104
|
it 'sets both request and serialization pausing to false' do
|
105
105
|
described_class.start(args)
|
106
|
-
::Protobuf.
|
106
|
+
expect(::Protobuf).to_not be_gc_pause_server_request
|
107
107
|
end
|
108
108
|
end
|
109
109
|
|
@@ -113,7 +113,7 @@ describe ::Protobuf::CLI do
|
|
113
113
|
|
114
114
|
it 'sets the configuration option to GC pause server request' do
|
115
115
|
described_class.start(args)
|
116
|
-
::Protobuf.
|
116
|
+
expect(::Protobuf).to be_gc_pause_server_request
|
117
117
|
end
|
118
118
|
end
|
119
119
|
end
|
@@ -128,7 +128,7 @@ describe ::Protobuf::CLI do
|
|
128
128
|
|
129
129
|
it 'sets the deprecation warning flag to true' do
|
130
130
|
described_class.start(args)
|
131
|
-
::Protobuf.print_deprecation_warnings
|
131
|
+
expect(::Protobuf.print_deprecation_warnings?).to be_truthy
|
132
132
|
end
|
133
133
|
end
|
134
134
|
|
@@ -138,7 +138,7 @@ describe ::Protobuf::CLI do
|
|
138
138
|
|
139
139
|
it 'sets the deprecation warning flag to false ' do
|
140
140
|
described_class.start(args)
|
141
|
-
::Protobuf.print_deprecation_warnings
|
141
|
+
expect(::Protobuf.print_deprecation_warnings?).to be_falsey
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
@@ -148,7 +148,7 @@ describe ::Protobuf::CLI do
|
|
148
148
|
|
149
149
|
it 'sets the deprecation warning flag to true' do
|
150
150
|
described_class.start(args)
|
151
|
-
::Protobuf.print_deprecation_warnings
|
151
|
+
expect(::Protobuf.print_deprecation_warnings?).to be_truthy
|
152
152
|
end
|
153
153
|
end
|
154
154
|
|
@@ -157,7 +157,7 @@ describe ::Protobuf::CLI do
|
|
157
157
|
|
158
158
|
it 'sets the deprecation warning flag to false' do
|
159
159
|
described_class.start(args)
|
160
|
-
::Protobuf.print_deprecation_warnings
|
160
|
+
expect(::Protobuf.print_deprecation_warnings?).to be_falsey
|
161
161
|
end
|
162
162
|
end
|
163
163
|
end
|
@@ -169,24 +169,24 @@ describe ::Protobuf::CLI do
|
|
169
169
|
let(:runner) { ::Protobuf::Rpc::SocketRunner }
|
170
170
|
|
171
171
|
before do
|
172
|
-
::Protobuf::Rpc::ZmqRunner.
|
172
|
+
expect(::Protobuf::Rpc::ZmqRunner).not_to receive(:new)
|
173
173
|
end
|
174
174
|
|
175
175
|
it 'is activated by the --socket switch' do
|
176
|
-
runner.
|
176
|
+
expect(runner).to receive(:new)
|
177
177
|
described_class.start(args)
|
178
178
|
end
|
179
179
|
|
180
180
|
it 'is activated by PB_SERVER_TYPE=Socket ENV variable' do
|
181
181
|
ENV['PB_SERVER_TYPE'] = "Socket"
|
182
|
-
runner.
|
182
|
+
expect(runner).to receive(:new).and_return(sock_runner)
|
183
183
|
described_class.start(args)
|
184
184
|
ENV.delete('PB_SERVER_TYPE')
|
185
185
|
end
|
186
186
|
|
187
187
|
it 'configures the connector type to be socket' do
|
188
188
|
load "protobuf/socket.rb"
|
189
|
-
::Protobuf.connector_type.
|
189
|
+
expect(::Protobuf.connector_type).to eq(:socket)
|
190
190
|
end
|
191
191
|
end
|
192
192
|
|
@@ -195,12 +195,12 @@ describe ::Protobuf::CLI do
|
|
195
195
|
let(:runner) { ::Protobuf::Rpc::ZmqRunner }
|
196
196
|
|
197
197
|
before do
|
198
|
-
::Protobuf::Rpc::SocketRunner.
|
198
|
+
expect(::Protobuf::Rpc::SocketRunner).not_to receive(:new)
|
199
199
|
end
|
200
200
|
|
201
201
|
it 'is activated by the --workers_only switch' do
|
202
|
-
runner.
|
203
|
-
options[:workers_only].
|
202
|
+
expect(runner).to receive(:new) do |options|
|
203
|
+
expect(options[:workers_only]).to be_truthy
|
204
204
|
end.and_return(zmq_runner)
|
205
205
|
|
206
206
|
described_class.start(args)
|
@@ -208,8 +208,8 @@ describe ::Protobuf::CLI do
|
|
208
208
|
|
209
209
|
it 'is activated by PB_WORKERS_ONLY=1 ENV variable' do
|
210
210
|
ENV['PB_WORKERS_ONLY'] = "1"
|
211
|
-
runner.
|
212
|
-
options[:workers_only].
|
211
|
+
expect(runner).to receive(:new) do |options|
|
212
|
+
expect(options[:workers_only]).to be_truthy
|
213
213
|
end.and_return(zmq_runner)
|
214
214
|
|
215
215
|
described_class.start(args)
|
@@ -222,12 +222,12 @@ describe ::Protobuf::CLI do
|
|
222
222
|
let(:runner) { ::Protobuf::Rpc::ZmqRunner }
|
223
223
|
|
224
224
|
before do
|
225
|
-
::Protobuf::Rpc::SocketRunner.
|
225
|
+
expect(::Protobuf::Rpc::SocketRunner).not_to receive(:new)
|
226
226
|
end
|
227
227
|
|
228
228
|
it 'is activated by the --worker_port switch' do
|
229
|
-
runner.
|
230
|
-
options[:worker_port].
|
229
|
+
expect(runner).to receive(:new) do |options|
|
230
|
+
expect(options[:worker_port]).to eq(1234)
|
231
231
|
end.and_return(zmq_runner)
|
232
232
|
|
233
233
|
described_class.start(args)
|
@@ -239,24 +239,24 @@ describe ::Protobuf::CLI do
|
|
239
239
|
let(:runner) { ::Protobuf::Rpc::ZmqRunner }
|
240
240
|
|
241
241
|
before do
|
242
|
-
::Protobuf::Rpc::SocketRunner.
|
242
|
+
expect(::Protobuf::Rpc::SocketRunner).not_to receive(:new)
|
243
243
|
end
|
244
244
|
|
245
245
|
it 'is activated by the --zmq switch' do
|
246
|
-
runner.
|
246
|
+
expect(runner).to receive(:new)
|
247
247
|
described_class.start(args)
|
248
248
|
end
|
249
249
|
|
250
250
|
it 'is activated by PB_SERVER_TYPE=Zmq ENV variable' do
|
251
251
|
ENV['PB_SERVER_TYPE'] = "Zmq"
|
252
|
-
runner.
|
252
|
+
expect(runner).to receive(:new)
|
253
253
|
described_class.start(args)
|
254
254
|
ENV.delete('PB_SERVER_TYPE')
|
255
255
|
end
|
256
256
|
|
257
257
|
it 'configures the connector type to be zmq' do
|
258
258
|
load "protobuf/zmq.rb"
|
259
|
-
::Protobuf.connector_type.
|
259
|
+
expect(::Protobuf.connector_type).to eq(:zmq)
|
260
260
|
end
|
261
261
|
end
|
262
262
|
|