sensu-em 2.4.1 → 2.5.0.beta
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 +15 -5
- data/CHANGELOG.md +41 -1
- data/README.md +2 -3
- data/eventmachine.gemspec +2 -1
- data/ext/cmain.cpp +19 -3
- data/ext/ed.cpp +22 -8
- data/ext/em.cpp +123 -76
- data/ext/em.h +40 -6
- data/ext/eventmachine.h +2 -0
- data/ext/extconf.rb +16 -2
- data/ext/fastfilereader/extconf.rb +3 -0
- data/ext/fastfilereader/mapper.cpp +1 -1
- data/ext/project.h +11 -7
- data/ext/rubymain.cpp +38 -2
- data/ext/ssl.cpp +4 -1
- data/ext/ssl.h +4 -0
- data/java/src/com/rubyeventmachine/EventableChannel.java +8 -1
- data/lib/em/buftok.rb +34 -85
- data/lib/em/protocols/httpclient.rb +31 -11
- data/lib/em/protocols/line_and_text.rb +2 -3
- data/lib/em/protocols/linetext2.rb +0 -1
- data/lib/em/protocols/smtpserver.rb +32 -9
- data/lib/em/pure_ruby.rb +2 -2
- data/lib/em/tick_loop.rb +19 -19
- data/lib/em/version.rb +1 -1
- data/lib/eventmachine.rb +12 -4
- data/lib/jeventmachine.rb +22 -6
- data/rakelib/package.rake +1 -1
- data/tests/em_test_helper.rb +4 -0
- data/tests/test_attach.rb +1 -0
- data/tests/test_basic.rb +14 -16
- data/tests/test_completion.rb +1 -0
- data/tests/test_connection_count.rb +1 -0
- data/tests/test_connection_write.rb +35 -0
- data/tests/test_epoll.rb +11 -14
- data/tests/test_httpclient.rb +43 -0
- data/tests/test_iterator.rb +6 -6
- data/tests/test_kb.rb +19 -25
- data/tests/test_many_fds.rb +22 -0
- data/tests/test_pause.rb +7 -2
- data/tests/test_pool.rb +2 -0
- data/tests/test_process_watch.rb +2 -0
- data/tests/test_processes.rb +7 -7
- data/tests/test_resolver.rb +33 -7
- data/tests/test_ssl_methods.rb +3 -4
- data/tests/test_ssl_verify.rb +62 -62
- data/tests/test_threaded_resource.rb +8 -0
- data/tmp/java/rubyeventmachine/.build +0 -0
- metadata +21 -4
data/tests/test_processes.rb
CHANGED
@@ -37,8 +37,8 @@ class TestProcesses < Test::Unit::TestCase
|
|
37
37
|
}
|
38
38
|
|
39
39
|
assert( $out.length > 0 )
|
40
|
-
assert_equal($status.exitstatus
|
41
|
-
|
40
|
+
assert_equal(0, $status.exitstatus)
|
41
|
+
assert_kind_of(Process::Status, $status)
|
42
42
|
end
|
43
43
|
|
44
44
|
def test_em_system_pid
|
@@ -57,8 +57,8 @@ class TestProcesses < Test::Unit::TestCase
|
|
57
57
|
}
|
58
58
|
|
59
59
|
assert( $out.length > 0 )
|
60
|
-
assert_equal($status.exitstatus
|
61
|
-
|
60
|
+
assert_equal(0, $status.exitstatus)
|
61
|
+
assert_kind_of(Process::Status, $status)
|
62
62
|
end
|
63
63
|
|
64
64
|
def test_em_system_with_two_procs
|
@@ -111,9 +111,9 @@ class TestProcesses < Test::Unit::TestCase
|
|
111
111
|
end
|
112
112
|
end
|
113
113
|
|
114
|
-
EM.run
|
115
|
-
EM.popen('
|
116
|
-
|
114
|
+
EM.run do
|
115
|
+
EM.popen('echo 1', test_client)
|
116
|
+
end
|
117
117
|
|
118
118
|
assert_equal 1, c_rx
|
119
119
|
end
|
data/tests/test_resolver.rb
CHANGED
@@ -30,11 +30,11 @@ class TestResolver < Test::Unit::TestCase
|
|
30
30
|
|
31
31
|
def test_a_pair
|
32
32
|
EM.run {
|
33
|
-
d = EM::DNS::Resolver.resolve "
|
34
|
-
d.errback { assert false }
|
33
|
+
d = EM::DNS::Resolver.resolve "yahoo.com"
|
34
|
+
d.errback { |err| assert false, "failed to resolve yahoo.com: #{err}" }
|
35
35
|
d.callback { |r|
|
36
|
-
|
37
|
-
assert r.size > 1
|
36
|
+
assert_kind_of(Array, r)
|
37
|
+
assert r.size > 1, "returned #{r.size} results: #{r.inspect}"
|
38
38
|
EM.stop
|
39
39
|
}
|
40
40
|
}
|
@@ -45,11 +45,37 @@ class TestResolver < Test::Unit::TestCase
|
|
45
45
|
d = EM::DNS::Resolver.resolve "localhost"
|
46
46
|
d.errback { assert false }
|
47
47
|
d.callback { |r|
|
48
|
-
|
49
|
-
|
48
|
+
assert_include(["127.0.0.1", "::1"], r.first)
|
49
|
+
assert_kind_of(Array, r)
|
50
|
+
|
51
|
+
EM.stop
|
52
|
+
}
|
53
|
+
}
|
54
|
+
end
|
55
|
+
|
56
|
+
def test_timer_cleanup
|
57
|
+
EM.run {
|
58
|
+
d = EM::DNS::Resolver.resolve "google.com"
|
59
|
+
d.errback { |err| assert false, "failed to resolve google.com: #{err}" }
|
60
|
+
d.callback { |r|
|
61
|
+
# This isn't a great test, but it's hard to get more canonical
|
62
|
+
# confirmation that the timer is cancelled
|
63
|
+
assert_nil(EM::DNS::Resolver.socket.instance_variable_get(:@timer))
|
64
|
+
|
65
|
+
EM.stop
|
66
|
+
}
|
67
|
+
}
|
68
|
+
end
|
69
|
+
|
70
|
+
def test_failure_timer_cleanup
|
71
|
+
EM.run {
|
72
|
+
d = EM::DNS::Resolver.resolve "asdfasdf"
|
73
|
+
d.callback { assert false }
|
74
|
+
d.errback {
|
75
|
+
assert_nil(EM::DNS::Resolver.socket.instance_variable_get(:@timer))
|
50
76
|
|
51
77
|
EM.stop
|
52
78
|
}
|
53
79
|
}
|
54
80
|
end
|
55
|
-
end
|
81
|
+
end
|
data/tests/test_ssl_methods.rb
CHANGED
@@ -8,7 +8,6 @@ class TestSSLMethods < Test::Unit::TestCase
|
|
8
8
|
end
|
9
9
|
|
10
10
|
module ServerHandler
|
11
|
-
|
12
11
|
def post_init
|
13
12
|
start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
|
14
13
|
end
|
@@ -24,7 +23,6 @@ class TestSSLMethods < Test::Unit::TestCase
|
|
24
23
|
end
|
25
24
|
|
26
25
|
module ClientHandler
|
27
|
-
|
28
26
|
def post_init
|
29
27
|
start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
|
30
28
|
end
|
@@ -34,10 +32,11 @@ class TestSSLMethods < Test::Unit::TestCase
|
|
34
32
|
$server_cert_value = get_peer_cert
|
35
33
|
EM.stop_event_loop
|
36
34
|
end
|
37
|
-
|
38
35
|
end
|
39
36
|
|
40
37
|
def test_ssl_methods
|
38
|
+
omit_unless(EM.ssl?)
|
39
|
+
omit_if(rbx?)
|
41
40
|
$server_called_back, $client_called_back = false, false
|
42
41
|
$server_cert_value, $client_cert_value = nil, nil
|
43
42
|
|
@@ -53,4 +52,4 @@ class TestSSLMethods < Test::Unit::TestCase
|
|
53
52
|
assert_equal($client_cert_from_file, $client_cert_value.gsub("\r", ""))
|
54
53
|
end
|
55
54
|
|
56
|
-
end
|
55
|
+
end
|
data/tests/test_ssl_verify.rb
CHANGED
@@ -1,82 +1,82 @@
|
|
1
1
|
require 'em_test_helper'
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
3
|
+
class TestSslVerify < Test::Unit::TestCase
|
4
|
+
def setup
|
5
|
+
$dir = File.dirname(File.expand_path(__FILE__)) + '/'
|
6
|
+
$cert_from_file = File.read($dir+'client.crt')
|
7
|
+
end
|
9
8
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
9
|
+
module Client
|
10
|
+
def connection_completed
|
11
|
+
start_tls(:private_key_file => $dir+'client.key', :cert_chain_file => $dir+'client.crt')
|
12
|
+
end
|
14
13
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
14
|
+
def ssl_handshake_completed
|
15
|
+
$client_handshake_completed = true
|
16
|
+
close_connection
|
17
|
+
end
|
19
18
|
|
20
|
-
|
21
|
-
|
22
|
-
end
|
19
|
+
def unbind
|
20
|
+
EM.stop_event_loop
|
23
21
|
end
|
22
|
+
end
|
24
23
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
24
|
+
module AcceptServer
|
25
|
+
def post_init
|
26
|
+
start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
|
27
|
+
end
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
29
|
+
def ssl_verify_peer(cert)
|
30
|
+
$cert_from_server = cert
|
31
|
+
true
|
32
|
+
end
|
34
33
|
|
35
|
-
|
36
|
-
|
37
|
-
end
|
34
|
+
def ssl_handshake_completed
|
35
|
+
$server_handshake_completed = true
|
38
36
|
end
|
37
|
+
end
|
39
38
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
39
|
+
module DenyServer
|
40
|
+
def post_init
|
41
|
+
start_tls(:private_key_file => $dir+'server.key', :cert_chain_file => $dir+'server.crt', :verify_peer => true)
|
42
|
+
end
|
44
43
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
44
|
+
def ssl_verify_peer(cert)
|
45
|
+
$cert_from_server = cert
|
46
|
+
# Do not accept the peer. This should now cause the connection to shut down without the SSL handshake being completed.
|
47
|
+
false
|
48
|
+
end
|
50
49
|
|
51
|
-
|
52
|
-
|
53
|
-
end
|
50
|
+
def ssl_handshake_completed
|
51
|
+
$server_handshake_completed = true
|
54
52
|
end
|
53
|
+
end
|
55
54
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
55
|
+
def test_accept_server
|
56
|
+
omit_unless(EM.ssl?)
|
57
|
+
omit_if(rbx?)
|
58
|
+
$client_handshake_completed, $server_handshake_completed = false, false
|
59
|
+
EM.run {
|
60
|
+
EM.start_server("127.0.0.1", 16784, AcceptServer)
|
61
|
+
EM.connect("127.0.0.1", 16784, Client).instance_variable_get("@signature")
|
62
|
+
}
|
62
63
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
64
|
+
assert_equal($cert_from_file, $cert_from_server.gsub("\r", ""))
|
65
|
+
assert($client_handshake_completed)
|
66
|
+
assert($server_handshake_completed)
|
67
|
+
end
|
67
68
|
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
def test_deny_server
|
70
|
+
omit_unless(EM.ssl?)
|
71
|
+
omit_if(rbx?)
|
72
|
+
$client_handshake_completed, $server_handshake_completed = false, false
|
73
|
+
EM.run {
|
74
|
+
EM.start_server("127.0.0.1", 16784, DenyServer)
|
75
|
+
EM.connect("127.0.0.1", 16784, Client)
|
76
|
+
}
|
74
77
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
end
|
78
|
+
assert_equal($cert_from_file, $cert_from_server.gsub("\r", ""))
|
79
|
+
assert(!$client_handshake_completed)
|
80
|
+
assert(!$server_handshake_completed)
|
79
81
|
end
|
80
|
-
else
|
81
|
-
warn "EM built without SSL support, skipping tests in #{__FILE__}"
|
82
82
|
end
|
@@ -15,6 +15,10 @@ class TestThreadedResource < Test::Unit::TestCase
|
|
15
15
|
|
16
16
|
def test_dispatch_completion
|
17
17
|
EM.run do
|
18
|
+
EM.add_timer(3) do
|
19
|
+
EM.stop
|
20
|
+
fail 'Resource dispatch timed out'
|
21
|
+
end
|
18
22
|
completion = resource.dispatch do |o|
|
19
23
|
o[:foo] = :bar
|
20
24
|
:foo
|
@@ -23,6 +27,10 @@ class TestThreadedResource < Test::Unit::TestCase
|
|
23
27
|
assert_equal :foo, result
|
24
28
|
EM.stop
|
25
29
|
end
|
30
|
+
completion.errback do |error|
|
31
|
+
EM.stop
|
32
|
+
fail "Unexpected error: #{error.message}"
|
33
|
+
end
|
26
34
|
end
|
27
35
|
assert_equal :bar, object[:foo]
|
28
36
|
end
|
File without changes
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sensu-em
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0.beta
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Francis Cianfrocca
|
@@ -9,8 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-05-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: test-unit
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - "~>"
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '2.0'
|
21
|
+
type: :development
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - "~>"
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '2.0'
|
14
28
|
- !ruby/object:Gem::Dependency
|
15
29
|
name: rake-compiler
|
16
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -212,6 +226,7 @@ files:
|
|
212
226
|
- tests/test_channel.rb
|
213
227
|
- tests/test_completion.rb
|
214
228
|
- tests/test_connection_count.rb
|
229
|
+
- tests/test_connection_write.rb
|
215
230
|
- tests/test_defer.rb
|
216
231
|
- tests/test_deferrable.rb
|
217
232
|
- tests/test_epoll.rb
|
@@ -231,6 +246,7 @@ files:
|
|
231
246
|
- tests/test_line_protocol.rb
|
232
247
|
- tests/test_ltp.rb
|
233
248
|
- tests/test_ltp2.rb
|
249
|
+
- tests/test_many_fds.rb
|
234
250
|
- tests/test_next_tick.rb
|
235
251
|
- tests/test_object_protocol.rb
|
236
252
|
- tests/test_pause.rb
|
@@ -262,6 +278,7 @@ files:
|
|
262
278
|
- tests/test_timers.rb
|
263
279
|
- tests/test_ud.rb
|
264
280
|
- tests/test_unbind_reason.rb
|
281
|
+
- tmp/java/rubyeventmachine/.build
|
265
282
|
homepage: http://rubyeventmachine.com
|
266
283
|
licenses:
|
267
284
|
- Ruby
|
@@ -286,9 +303,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
286
303
|
version: '0'
|
287
304
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
288
305
|
requirements:
|
289
|
-
- - "
|
306
|
+
- - ">"
|
290
307
|
- !ruby/object:Gem::Version
|
291
|
-
version:
|
308
|
+
version: 1.3.1
|
292
309
|
requirements: []
|
293
310
|
rubyforge_project: eventmachine
|
294
311
|
rubygems_version: 2.2.2
|