ione 1.2.2 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -85,7 +85,7 @@ module Ione
85
85
  stopped_future.value
86
86
  restarted_future.value
87
87
  begin
88
- sequence.should == [:stopped, :restarted]
88
+ sequence.should eq([:stopped, :restarted])
89
89
  ensure
90
90
  reactor.stop
91
91
  barrier.push(nil) while reactor.running?
@@ -93,6 +93,7 @@ module Ione
93
93
  end
94
94
 
95
95
  it 'restarts the reactor even when restarted before a failed stop' do
96
+ pending 'This test is broken in JRuby' if RUBY_ENGINE == 'jruby'
96
97
  barrier = Queue.new
97
98
  selector.handler do
98
99
  if barrier.pop == :fail
@@ -135,8 +136,6 @@ module Ione
135
136
 
136
137
  context 'when already started' do
137
138
  it 'is not started again' do
138
- calls = 0
139
- lock = Mutex.new
140
139
  ticks = Queue.new
141
140
  barrier = Queue.new
142
141
  selector.handler do
@@ -171,12 +170,27 @@ module Ione
171
170
  reactor.stop.value.should equal(reactor)
172
171
  end
173
172
 
174
- it 'is not running after being stopped' do
173
+ it 'is not running after stop completed' do
175
174
  reactor.start.value
176
175
  reactor.stop.value
177
176
  reactor.should_not be_running
178
177
  end
179
178
 
179
+ it 'keeps running until stop completed' do
180
+ running_barrier = Queue.new
181
+ stop_barrier = Queue.new
182
+ selector.handler do
183
+ running_barrier.push(nil)
184
+ stop_barrier.pop
185
+ [[], [], []]
186
+ end
187
+ reactor.start.value
188
+ future = reactor.stop
189
+ running_barrier.pop
190
+ reactor.should be_running
191
+ stop_barrier.push(nil) until future.completed?
192
+ end
193
+
180
194
  it 'closes all sockets' do
181
195
  reactor.start.value
182
196
  connection = reactor.connect('example.com', 9999, 5).value
@@ -223,7 +237,7 @@ module Ione
223
237
  reactor.on_error { |e| error = e }
224
238
  reactor.start
225
239
  await { error }
226
- error.message.should == 'Blurgh'
240
+ error.message.should eq('Blurgh')
227
241
  end
228
242
 
229
243
  it 'calls the listener immediately when the reactor has already crashed' do
@@ -253,16 +267,16 @@ module Ione
253
267
  barrier.push(nil)
254
268
  await { !reactor.running? }
255
269
  reactor.on_error { calls << :pre_restarted }
256
- calls.should == [
270
+ calls.should eq([
257
271
  :pre_started,
258
272
  :post_started,
259
273
  :pre_restarted,
260
- ]
274
+ ])
261
275
  reactor.start
262
276
  reactor.on_error { calls << :post_restarted }
263
277
  barrier.push(nil)
264
278
  await { !reactor.running? }
265
- calls.should == [
279
+ calls.should eq([
266
280
  :pre_started,
267
281
  :post_started,
268
282
  :pre_restarted,
@@ -270,7 +284,7 @@ module Ione
270
284
  :post_started,
271
285
  :pre_restarted,
272
286
  :post_restarted,
273
- ]
287
+ ])
274
288
  end
275
289
  end
276
290
 
@@ -287,19 +301,19 @@ module Ione
287
301
  it 'returns a future that resolves to what the given block returns' do
288
302
  reactor.start.value
289
303
  x = reactor.connect('example.com', 9999, 5) { :foo }.value
290
- x.should == :foo
304
+ x.should eq(:foo)
291
305
  end
292
306
 
293
307
  it 'defaults to 5 as the connection timeout' do
294
308
  reactor.start.value
295
309
  connection = reactor.connect('example.com', 9999).value
296
- connection.connection_timeout.should == 5
310
+ connection.connection_timeout.should eq(5)
297
311
  end
298
312
 
299
313
  it 'takes the connection timeout from the :timeout option' do
300
314
  reactor.start.value
301
315
  connection = reactor.connect('example.com', 9999, timeout: 9).value
302
- connection.connection_timeout.should == 9
316
+ connection.connection_timeout.should eq(9)
303
317
  end
304
318
 
305
319
  it 'returns the connection when no block is given' do
@@ -363,19 +377,19 @@ module Ione
363
377
  it 'returns a future that resolves to what the given block returns' do
364
378
  reactor.start.value
365
379
  x = reactor.bind(ENV['SERVER_HOST'], port, 5) { |acceptor| :foo }.value
366
- x.should == :foo
380
+ x.should eq(:foo)
367
381
  end
368
382
 
369
383
  it 'defaults to a backlog of 5' do
370
384
  reactor.start.value
371
385
  acceptor = reactor.bind(ENV['SERVER_HOST'], port).value
372
- acceptor.backlog.should == 5
386
+ acceptor.backlog.should eq(5)
373
387
  end
374
388
 
375
389
  it 'takes the backlog from the :backlog option' do
376
390
  reactor.start.value
377
391
  acceptor = reactor.bind(ENV['SERVER_HOST'], port, backlog: 9).value
378
- acceptor.backlog.should == 9
392
+ acceptor.backlog.should eq(9)
379
393
  end
380
394
 
381
395
  it 'returns the acceptor when no block is given' do
@@ -428,10 +442,12 @@ module Ione
428
442
  end
429
443
 
430
444
  it 'returns a future that is resolved after the specified duration' do
445
+ start = Time.now
431
446
  clock.stub(:now).and_return(1)
432
- f = reactor.schedule_timer(0.1)
433
- clock.stub(:now).and_return(1.1)
447
+ f = reactor.schedule_timer(8)
448
+ clock.stub(:now).and_return(10.1)
434
449
  await { f.resolved? }
450
+ expect(Time.now - start).to be < 1
435
451
  end
436
452
  end
437
453
 
@@ -744,4 +760,4 @@ module IoReactorSpec
744
760
  @body.call(*args)
745
761
  end
746
762
  end
747
- end
763
+ end
@@ -7,7 +7,7 @@ module Ione
7
7
  module Io
8
8
  describe SslAcceptor do
9
9
  let :acceptor do
10
- described_class.new('example.com', 4321, backlog = 3, unblocker, reactor, ssl_context, socket_impl, ssl_socket_impl)
10
+ described_class.new('example.com', 4321, 3, unblocker, reactor, ssl_context, socket_impl, ssl_socket_impl)
11
11
  end
12
12
 
13
13
  let :unblocker do
@@ -80,8 +80,8 @@ module Ione
80
80
  acceptor.bind
81
81
  acceptor.read
82
82
  accepted_handlers.should have(1).item
83
- accepted_handlers.first.host.should == 'example.com'
84
- accepted_handlers.first.port.should == 3333
83
+ accepted_handlers.first.host.should eq('example.com')
84
+ accepted_handlers.first.port.should eq(3333)
85
85
  end
86
86
 
87
87
  it 'returns the raw socket from #to_io' do
@@ -124,7 +124,7 @@ module Ione
124
124
  end
125
125
  handler.connect
126
126
  handler.read
127
- read_sizes.drop(1).should == [read_sizes.first] * 3
127
+ read_sizes.drop(1).should eq([read_sizes.first] * 3)
128
128
  end
129
129
  else
130
130
  it 'reads and initial chunk of data' do
@@ -134,7 +134,7 @@ module Ione
134
134
  ssl_socket.stub(:read_nonblock).and_return('fooo')
135
135
  handler.connect
136
136
  handler.read
137
- data.should == ['fooo']
137
+ data.should eq(['fooo'])
138
138
  end
139
139
 
140
140
  it 'reads once, and then again with the value of #pending, until #pending returns zero' do
@@ -149,7 +149,7 @@ module Ione
149
149
  end
150
150
  handler.connect
151
151
  handler.read
152
- read_sizes.drop(1).should == [3, 2, 1]
152
+ read_sizes.drop(1).should eq([3, 2, 1])
153
153
  end
154
154
  end
155
155
 
data/spec/spec_helper.rb CHANGED
@@ -23,4 +23,8 @@ unless ENV['COVERAGE'] == 'no' || RUBY_ENGINE == 'rbx'
23
23
  end
24
24
  end
25
25
 
26
+ RSpec.configure do |config|
27
+ config.warnings = true
28
+ end
29
+
26
30
  require 'ione'
@@ -11,6 +11,7 @@ class FakeServer
11
11
  @disconnects = 0
12
12
  @connections = []
13
13
  @received_bytes = ''
14
+ @running = false
14
15
  end
15
16
 
16
17
  def start(options={})
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ione
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Theo Hultberg
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-10-21 00:00:00.000000000 Z
11
+ date: 2022-07-22 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Reactive programming framework for Ruby, painless evented IO, futures
14
14
  and an efficient byte buffer
@@ -69,26 +69,24 @@ required_rubygems_version: !ruby/object:Gem::Requirement
69
69
  - !ruby/object:Gem::Version
70
70
  version: '0'
71
71
  requirements: []
72
- rubyforge_project:
73
- rubygems_version: 2.2.2
72
+ rubygems_version: 3.0.3
74
73
  signing_key:
75
74
  specification_version: 4
76
75
  summary: Reactive programming framework for Ruby
77
76
  test_files:
78
- - spec/integration/io_spec.rb
79
- - spec/integration/ssl_spec.rb
80
- - spec/ione/byte_buffer_spec.rb
81
- - spec/ione/future_spec.rb
82
- - spec/ione/heap_spec.rb
77
+ - spec/spec_helper.rb
78
+ - spec/ione/io/ssl_acceptor_spec.rb
79
+ - spec/ione/io/server_connection_spec.rb
80
+ - spec/ione/io/ssl_server_connection_spec.rb
83
81
  - spec/ione/io/acceptor_spec.rb
84
- - spec/ione/io/connection_common.rb
85
82
  - spec/ione/io/connection_spec.rb
86
- - spec/ione/io/io_reactor_spec.rb
87
- - spec/ione/io/server_connection_spec.rb
88
- - spec/ione/io/ssl_acceptor_spec.rb
89
83
  - spec/ione/io/ssl_connection_spec.rb
90
- - spec/ione/io/ssl_server_connection_spec.rb
91
- - spec/spec_helper.rb
84
+ - spec/ione/io/io_reactor_spec.rb
85
+ - spec/ione/io/connection_common.rb
86
+ - spec/ione/heap_spec.rb
87
+ - spec/ione/byte_buffer_spec.rb
88
+ - spec/ione/future_spec.rb
89
+ - spec/integration/ssl_spec.rb
90
+ - spec/integration/io_spec.rb
92
91
  - spec/support/await_helper.rb
93
92
  - spec/support/fake_server.rb
94
- has_rdoc: