polyphony 0.51.0 → 0.52.0

Sign up to get free protection for your applications and to get access to all the features.
data/test/helper.rb CHANGED
@@ -52,7 +52,7 @@ class MiniTest::Test
52
52
  Fiber.current.instance_variable_set(:@auto_watcher, nil)
53
53
  Thread.current.backend.finalize
54
54
  Thread.current.backend = Polyphony::Backend.new
55
- sleep 0
55
+ sleep 0.001
56
56
  end
57
57
 
58
58
  def teardown
data/test/stress.rb CHANGED
@@ -8,6 +8,8 @@ def run_test(count)
8
8
  puts "#{count}: running tests..."
9
9
  # sleep 1
10
10
  system(TEST_CMD)
11
+ puts
12
+
11
13
  return if $?.exitstatus == 0
12
14
 
13
15
  puts "Failure after #{count} tests"
data/test/test_backend.rb CHANGED
@@ -125,12 +125,15 @@ class BackendTest < MiniTest::Test
125
125
  assert_equal [:ready, 'foo', 'bar'], buf
126
126
  end
127
127
 
128
- def test_accept_loop
129
- server = TCPServer.new('127.0.0.1', 1234)
128
+ Net = Polyphony::Net
129
+
130
+ def test_accept
131
+ server = Net.listening_socket_from_options('127.0.0.1', 1234, reuse_addr: true)
130
132
 
131
133
  clients = []
132
- server_fiber = spin do
133
- @backend.accept_loop(server, TCPSocket) { |c| clients << c }
134
+ server_fiber = spin_loop do
135
+ c = @backend.accept(server, TCPSocket)
136
+ clients << c
134
137
  end
135
138
 
136
139
  c1 = TCPSocket.new('127.0.0.1', 1234)
@@ -146,7 +149,32 @@ class BackendTest < MiniTest::Test
146
149
  ensure
147
150
  c1&.close
148
151
  c2&.close
149
- server_fiber.stop
152
+ server_fiber&.stop
153
+ snooze
154
+ server&.close
155
+ end
156
+
157
+ def test_accept_loop
158
+ server = Net.listening_socket_from_options('127.0.0.1', 1235, reuse_addr: true)
159
+
160
+ clients = []
161
+ server_fiber = spin do
162
+ @backend.accept_loop(server, TCPSocket) { |c| clients << c }
163
+ end
164
+
165
+ c1 = TCPSocket.new('127.0.0.1', 1235)
166
+ sleep 0.01
167
+
168
+ assert_equal 1, clients.size
169
+
170
+ c2 = TCPSocket.new('127.0.0.1', 1235)
171
+ sleep 0.01
172
+
173
+ assert_equal 2, clients.size
174
+ ensure
175
+ c1&.close
176
+ c2&.close
177
+ server_fiber&.stop
150
178
  snooze
151
179
  server&.close
152
180
  end
@@ -160,10 +160,10 @@ class MoveOnAfterTest < MiniTest::Test
160
160
  end
161
161
  t1 = Time.now
162
162
  assert_equal 1, o
163
- assert_in_range 0.008..0.013, t1 - t0
163
+ assert_in_range 0.008..0.015, t1 - t0
164
164
 
165
165
  t0 = Time.now
166
- o = move_on_after(0.02, with_value: 1) do
166
+ o = move_on_after(0.05, with_value: 1) do
167
167
  move_on_after(0.01, with_value: 2) do
168
168
  sleep 1
169
169
  end
data/test/test_io.rb CHANGED
@@ -195,7 +195,7 @@ class IOTest < MiniTest::Test
195
195
  assert_equal ['foo', 'bar', 'baz'], buffer
196
196
  end
197
197
 
198
- class Receiver
198
+ class Receiver1
199
199
  attr_reader :buffer
200
200
 
201
201
  def initialize
@@ -209,7 +209,7 @@ class IOTest < MiniTest::Test
209
209
 
210
210
  def test_feed_loop_without_block
211
211
  i, o = IO.pipe
212
- receiver = Receiver.new
212
+ receiver = Receiver1.new
213
213
  reader = spin do
214
214
  i.feed_loop(receiver, :recv)
215
215
  end
@@ -225,6 +225,37 @@ class IOTest < MiniTest::Test
225
225
  sleep 0.01
226
226
  assert_equal ['foo', 'bar', 'baz'], receiver.buffer
227
227
  end
228
+
229
+ class Receiver2
230
+ attr_reader :buffer
231
+
232
+ def initialize
233
+ @buffer = []
234
+ end
235
+
236
+ def call(obj)
237
+ @buffer << obj
238
+ end
239
+ end
240
+
241
+ def test_feed_loop_without_method
242
+ i, o = IO.pipe
243
+ receiver = Receiver2.new
244
+ reader = spin do
245
+ i.feed_loop(receiver)
246
+ end
247
+ o << 'foo'
248
+ sleep 0.01
249
+ assert_equal ['foo'], receiver.buffer
250
+
251
+ o << 'bar'
252
+ sleep 0.01
253
+ assert_equal ['foo', 'bar'], receiver.buffer
254
+
255
+ o << 'baz'
256
+ sleep 0.01
257
+ assert_equal ['foo', 'bar', 'baz'], receiver.buffer
258
+ end
228
259
  end
229
260
 
230
261
  class IOClassMethodsTest < MiniTest::Test
data/test/test_kernel.rb CHANGED
@@ -21,7 +21,7 @@ class KernelTest < MiniTest::Test
21
21
 
22
22
  def test_Kernel_system_singleton_method
23
23
  assert_equal true, Kernel.system("which ruby > /dev/null 2>&1")
24
- assert_equal false, Kernel.system("which rruubbyy > /dev/null 2>&1")
24
+ assert_equal false, Kernel.system("azertyuiop > /dev/null 2>&1")
25
25
  end
26
26
 
27
27
  def patch_open3
data/test/test_signal.rb CHANGED
@@ -23,7 +23,7 @@ class SignalTrapTest < Minitest::Test
23
23
  ensure
24
24
  o.close
25
25
  end
26
- sleep 0.01
26
+ sleep 0.1
27
27
  o.close
28
28
  Process.kill('INT', pid)
29
29
  Thread.current.backend.waitpid(pid)
data/test/test_socket.rb CHANGED
@@ -34,6 +34,33 @@ class SocketTest < MiniTest::Test
34
34
  server&.close
35
35
  end
36
36
 
37
+ # sending multiple strings at once
38
+ def test_sendv
39
+ port = rand(1234..5678)
40
+ server = TCPServer.new('127.0.0.1', port)
41
+
42
+ server_fiber = spin do
43
+ while (socket = server.accept)
44
+ spin do
45
+ while (data = socket.gets(8192))
46
+ socket.write("you said ", data)
47
+ end
48
+ end
49
+ end
50
+ end
51
+
52
+ snooze
53
+ client = TCPSocket.new('127.0.0.1', port)
54
+ client.write("1234\n")
55
+ assert_equal "you said 1234\n", client.recv(8192)
56
+ client.close
57
+ ensure
58
+ server_fiber&.stop
59
+ server_fiber&.await
60
+ server&.close
61
+ end
62
+
63
+
37
64
  def test_feed_loop
38
65
  port = rand(1234..5678)
39
66
  server = TCPServer.new('127.0.0.1', port)
data/test/test_timer.rb CHANGED
@@ -82,7 +82,7 @@ class TimerCancelAfterTest < MiniTest::Test
82
82
  sleep 0.007
83
83
  end
84
84
  t1 = Time.now
85
- assert_in_range 0.013..0.024, t1 - t0
85
+ assert_in_range 0.012..0.024, t1 - t0
86
86
  end
87
87
 
88
88
  class CustomException < Exception
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: polyphony
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.51.0
4
+ version: 0.52.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-02 00:00:00.000000000 Z
11
+ date: 2021-02-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake-compiler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - '='
32
32
  - !ruby/object:Gem::Version
33
- version: 5.13.0
33
+ version: 5.14.4
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - '='
39
39
  - !ruby/object:Gem::Version
40
- version: 5.13.0
40
+ version: 5.14.4
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest-reporters
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -226,62 +226,6 @@ dependencies:
226
226
  - - '='
227
227
  - !ruby/object:Gem::Version
228
228
  version: 0.17.1
229
- - !ruby/object:Gem::Dependency
230
- name: jekyll
231
- requirement: !ruby/object:Gem::Requirement
232
- requirements:
233
- - - "~>"
234
- - !ruby/object:Gem::Version
235
- version: 3.8.6
236
- type: :development
237
- prerelease: false
238
- version_requirements: !ruby/object:Gem::Requirement
239
- requirements:
240
- - - "~>"
241
- - !ruby/object:Gem::Version
242
- version: 3.8.6
243
- - !ruby/object:Gem::Dependency
244
- name: jekyll-remote-theme
245
- requirement: !ruby/object:Gem::Requirement
246
- requirements:
247
- - - "~>"
248
- - !ruby/object:Gem::Version
249
- version: 0.4.1
250
- type: :development
251
- prerelease: false
252
- version_requirements: !ruby/object:Gem::Requirement
253
- requirements:
254
- - - "~>"
255
- - !ruby/object:Gem::Version
256
- version: 0.4.1
257
- - !ruby/object:Gem::Dependency
258
- name: jekyll-seo-tag
259
- requirement: !ruby/object:Gem::Requirement
260
- requirements:
261
- - - "~>"
262
- - !ruby/object:Gem::Version
263
- version: 2.6.1
264
- type: :development
265
- prerelease: false
266
- version_requirements: !ruby/object:Gem::Requirement
267
- requirements:
268
- - - "~>"
269
- - !ruby/object:Gem::Version
270
- version: 2.6.1
271
- - !ruby/object:Gem::Dependency
272
- name: just-the-docs
273
- requirement: !ruby/object:Gem::Requirement
274
- requirements:
275
- - - "~>"
276
- - !ruby/object:Gem::Version
277
- version: 0.3.0
278
- type: :development
279
- prerelease: false
280
- version_requirements: !ruby/object:Gem::Requirement
281
- requirements:
282
- - - "~>"
283
- - !ruby/object:Gem::Version
284
- version: 0.3.0
285
229
  description:
286
230
  email: sharon@noteflakes.com
287
231
  executables: []