polyphony 0.39 → 0.40

Sign up to get free protection for your applications and to get access to all the features.
@@ -106,7 +106,7 @@ class MoveOnAfterTest < MiniTest::Test
106
106
  end
107
107
  t1 = Time.now
108
108
 
109
- assert_in_range 0..0.03, t1 - t0
109
+ assert t1 - t0 < 0.03
110
110
  assert_nil v
111
111
  end
112
112
 
@@ -118,7 +118,7 @@ class MoveOnAfterTest < MiniTest::Test
118
118
  end
119
119
  t1 = Time.now
120
120
 
121
- assert_in_range 0..0.02, t1 - t0
121
+ assert t1 - t0 < 0.02
122
122
  assert_equal :bar, v
123
123
  end
124
124
 
@@ -129,7 +129,7 @@ class MoveOnAfterTest < MiniTest::Test
129
129
  assert_equal Fiber.current, f.parent
130
130
  v = sleep 1
131
131
  t1 = Time.now
132
- assert_in_range 0..0.02, t1 - t0
132
+ assert t1 - t0 < 0.02
133
133
  assert_equal 'foo', v
134
134
  end
135
135
  end
@@ -145,7 +145,7 @@ class CancelAfterTest < MiniTest::Test
145
145
  end
146
146
  end
147
147
  t1 = Time.now
148
- assert_in_range 0..0.02, t1 - t0
148
+ assert t1 - t0 < 0.02
149
149
  end
150
150
 
151
151
  def test_cancel_after_without_block
@@ -157,7 +157,7 @@ class CancelAfterTest < MiniTest::Test
157
157
  sleep 1
158
158
  end
159
159
  t1 = Time.now
160
- assert_in_range 0..0.02, t1 - t0
160
+ assert t1 - t0 < 0.02
161
161
  end
162
162
  end
163
163
 
@@ -204,7 +204,7 @@ class SpinLoopTest < MiniTest::Test
204
204
  f = spin_loop(rate: 50) { buffer << (counter += 1) }
205
205
  sleep 0.1
206
206
  f.stop
207
- assert_in_range 5..6, counter
207
+ assert counter >= 5 && counter <= 6
208
208
  end
209
209
  end
210
210
 
@@ -217,7 +217,7 @@ class ThrottledLoopTest < MiniTest::Test
217
217
  end
218
218
  sleep 0.1
219
219
  f.stop
220
- assert_in_range 5..6, counter
220
+ assert counter >= 5 && counter <= 6
221
221
  end
222
222
 
223
223
  def test_throttled_loop_with_count
@@ -248,14 +248,14 @@ class GlobalAPIEtcTest < MiniTest::Test
248
248
  end
249
249
  sleep 0.05
250
250
  f.stop
251
- assert_in_range 4..5, buffer.size
251
+ assert (4..5).include?(buffer.size)
252
252
  end
253
253
 
254
254
  def test_sleep
255
255
  t0 = Time.now
256
256
  sleep 0.05
257
257
  elapsed = Time.now - t0
258
- assert_in_range 0.045..0.08, elapsed
258
+ assert (0.045..0.08).include? elapsed
259
259
 
260
260
  f = spin { sleep }
261
261
  snooze
data/test/test_io.rb CHANGED
@@ -61,13 +61,6 @@ class IOTest < MiniTest::Test
61
61
  @o.close
62
62
  assert_equal 'foobarbaz', @i.read
63
63
  end
64
-
65
- def test_big_write
66
- chunk = '*' * 60000
67
- @o << chunk
68
- @o.close
69
- assert_equal chunk, @i.read
70
- end
71
64
  end
72
65
 
73
66
  class IOClassMethodsTest < MiniTest::Test
data/test/test_thread.rb CHANGED
@@ -38,7 +38,7 @@ class ThreadTest < MiniTest::Test
38
38
  t0 = Time.now
39
39
  r = t.join(0.01)
40
40
 
41
- assert_in_range 0..0.2, Time.now - t0
41
+ assert Time.now - t0 < 0.2
42
42
  assert_equal [1, 2, 3], buffer
43
43
  assert_nil r
44
44
  ensure
@@ -65,8 +65,8 @@ class ThreadPoolTest < MiniTest::Test
65
65
  end
66
66
  elapsed = Time.now - t0
67
67
 
68
- assert_in_range 0..0.007, elapsed
69
- assert_in_range 0..1, buffer.size
68
+ assert elapsed < 0.007
69
+ assert buffer.size < 2
70
70
 
71
71
  sleep 0.1 # allow time for threads to spawn
72
72
  assert_equal @pool.size, threads.uniq.size
@@ -10,7 +10,8 @@ class ThrottlerTest < MiniTest::Test
10
10
  sleep 0.02
11
11
  f.stop
12
12
  snooze
13
- assert_in_range 2..3, buffer.size
13
+ assert buffer.size >= 2
14
+ assert buffer.size <= 3
14
15
  ensure
15
16
  t.stop
16
17
  end
@@ -23,7 +24,7 @@ class ThrottlerTest < MiniTest::Test
23
24
  end
24
25
  sleep 0.25
25
26
  f.stop
26
- assert_in_range 2..6, buffer.size
27
+ assert (2..6).include?(buffer.size)
27
28
  ensure
28
29
  t.stop
29
30
  end
@@ -34,7 +35,8 @@ class ThrottlerTest < MiniTest::Test
34
35
  f = spin { loop { t.process { buffer << 1 } } }
35
36
  sleep 0.02
36
37
  f.stop
37
- assert_in_range 2..3, buffer.size
38
+ assert buffer.size >= 2
39
+ assert buffer.size <= 3
38
40
  ensure
39
41
  t.stop
40
42
  end
data/test/test_timer.rb CHANGED
@@ -29,4 +29,28 @@ class TimerTest < MiniTest::Test
29
29
  ensure
30
30
  t.stop
31
31
  end
32
+
33
+ def test_that_repeating_timer_compensates_for_drift
34
+ count = 0
35
+ t = Gyro::Timer.new(0.1, 0.1)
36
+ deltas = []
37
+ last = nil
38
+ spin {
39
+ last = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
40
+ loop {
41
+ t.await
42
+ now = ::Process.clock_gettime(::Process::CLOCK_MONOTONIC)
43
+ elapsed = (now - last)
44
+ deltas << elapsed
45
+ last = now
46
+ count += 1
47
+ sleep 0.05
48
+ break if count >= 3
49
+ }
50
+ }
51
+ suspend
52
+ assert_equal 0, deltas[1..-1].filter { |d| (d - 0.1).abs >= 0.05 }.size
53
+ ensure
54
+ t.stop
55
+ end
32
56
  end
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.39'
4
+ version: '0.40'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-14 00:00:00.000000000 Z
11
+ date: 2020-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -100,14 +100,14 @@ dependencies:
100
100
  requirements:
101
101
  - - '='
102
102
  - !ruby/object:Gem::Version
103
- version: 1.1.3
103
+ version: 1.1.4
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
108
  - - '='
109
109
  - !ruby/object:Gem::Version
110
- version: 1.1.3
110
+ version: 1.1.4
111
111
  - !ruby/object:Gem::Dependency
112
112
  name: rake-compiler
113
113
  requirement: !ruby/object:Gem::Requirement
@@ -335,6 +335,7 @@ files:
335
335
  - examples/core/xx-trace.rb
336
336
  - examples/core/xx-using-a-mutex.rb
337
337
  - examples/core/xx-worker-thread.rb
338
+ - examples/io/tunnel.rb
338
339
  - examples/io/xx-backticks.rb
339
340
  - examples/io/xx-echo_client.rb
340
341
  - examples/io/xx-echo_client_from_stdin.rb