sensu-em 2.4.1-java → 2.5.0.beta-java
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/lib/rubyeventmachine.jar +0 -0
- 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 +27 -10
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: java
|
6
6
|
authors:
|
7
7
|
- Francis Cianfrocca
|
@@ -9,36 +9,50 @@ 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
14
|
- !ruby/object:Gem::Dependency
|
15
|
-
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2.0'
|
20
|
+
name: test-unit
|
21
|
+
prerelease: false
|
22
|
+
type: :development
|
16
23
|
version_requirements: !ruby/object:Gem::Requirement
|
17
24
|
requirements:
|
18
25
|
- - ~>
|
19
26
|
- !ruby/object:Gem::Version
|
20
|
-
version: 0
|
27
|
+
version: '2.0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
21
29
|
requirement: !ruby/object:Gem::Requirement
|
22
30
|
requirements:
|
23
31
|
- - ~>
|
24
32
|
- !ruby/object:Gem::Version
|
25
33
|
version: 0.8.3
|
34
|
+
name: rake-compiler
|
26
35
|
prerelease: false
|
27
36
|
type: :development
|
28
|
-
- !ruby/object:Gem::Dependency
|
29
|
-
name: yard
|
30
37
|
version_requirements: !ruby/object:Gem::Requirement
|
31
38
|
requirements:
|
32
|
-
- -
|
39
|
+
- - ~>
|
33
40
|
- !ruby/object:Gem::Version
|
34
|
-
version: 0.8.
|
41
|
+
version: 0.8.3
|
42
|
+
- !ruby/object:Gem::Dependency
|
35
43
|
requirement: !ruby/object:Gem::Requirement
|
36
44
|
requirements:
|
37
45
|
- - '>='
|
38
46
|
- !ruby/object:Gem::Version
|
39
47
|
version: 0.8.5.2
|
48
|
+
name: yard
|
40
49
|
prerelease: false
|
41
50
|
type: :development
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - '>='
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 0.8.5.2
|
42
56
|
description: |-
|
43
57
|
EventMachine implements a fast, single-threaded engine for arbitrary network
|
44
58
|
communications. It's extremely easy to use in Ruby. EventMachine wraps all
|
@@ -196,6 +210,7 @@ files:
|
|
196
210
|
- tests/test_channel.rb
|
197
211
|
- tests/test_completion.rb
|
198
212
|
- tests/test_connection_count.rb
|
213
|
+
- tests/test_connection_write.rb
|
199
214
|
- tests/test_defer.rb
|
200
215
|
- tests/test_deferrable.rb
|
201
216
|
- tests/test_epoll.rb
|
@@ -215,6 +230,7 @@ files:
|
|
215
230
|
- tests/test_line_protocol.rb
|
216
231
|
- tests/test_ltp.rb
|
217
232
|
- tests/test_ltp2.rb
|
233
|
+
- tests/test_many_fds.rb
|
218
234
|
- tests/test_next_tick.rb
|
219
235
|
- tests/test_object_protocol.rb
|
220
236
|
- tests/test_pause.rb
|
@@ -246,6 +262,7 @@ files:
|
|
246
262
|
- tests/test_timers.rb
|
247
263
|
- tests/test_ud.rb
|
248
264
|
- tests/test_unbind_reason.rb
|
265
|
+
- tmp/java/rubyeventmachine/.build
|
249
266
|
- lib/rubyeventmachine.jar
|
250
267
|
homepage: http://rubyeventmachine.com
|
251
268
|
licenses:
|
@@ -271,9 +288,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
271
288
|
version: '0'
|
272
289
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
273
290
|
requirements:
|
274
|
-
- - '
|
291
|
+
- - '>'
|
275
292
|
- !ruby/object:Gem::Version
|
276
|
-
version:
|
293
|
+
version: 1.3.1
|
277
294
|
requirements: []
|
278
295
|
rubyforge_project: eventmachine
|
279
296
|
rubygems_version: 2.1.9
|