sidekick-client 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (162) hide show
  1. data/VERSION +1 -1
  2. data/lib/sidekick/client/sidekick_client.rb +0 -3
  3. data/lib/sidekick/shared/sidekick_queue_publisher.rb +1 -1
  4. data/sidekick-client.gemspec +1 -158
  5. metadata +1 -158
  6. data/lib/ext/eventmachine-0.12.10/.gitignore +0 -14
  7. data/lib/ext/eventmachine-0.12.10/README +0 -82
  8. data/lib/ext/eventmachine-0.12.10/Rakefile +0 -374
  9. data/lib/ext/eventmachine-0.12.10/docs/COPYING +0 -60
  10. data/lib/ext/eventmachine-0.12.10/docs/ChangeLog +0 -211
  11. data/lib/ext/eventmachine-0.12.10/docs/DEFERRABLES +0 -133
  12. data/lib/ext/eventmachine-0.12.10/docs/EPOLL +0 -141
  13. data/lib/ext/eventmachine-0.12.10/docs/GNU +0 -281
  14. data/lib/ext/eventmachine-0.12.10/docs/INSTALL +0 -13
  15. data/lib/ext/eventmachine-0.12.10/docs/KEYBOARD +0 -38
  16. data/lib/ext/eventmachine-0.12.10/docs/LEGAL +0 -25
  17. data/lib/ext/eventmachine-0.12.10/docs/LIGHTWEIGHT_CONCURRENCY +0 -70
  18. data/lib/ext/eventmachine-0.12.10/docs/PURE_RUBY +0 -75
  19. data/lib/ext/eventmachine-0.12.10/docs/RELEASE_NOTES +0 -94
  20. data/lib/ext/eventmachine-0.12.10/docs/SMTP +0 -2
  21. data/lib/ext/eventmachine-0.12.10/docs/SPAWNED_PROCESSES +0 -89
  22. data/lib/ext/eventmachine-0.12.10/docs/TODO +0 -8
  23. data/lib/ext/eventmachine-0.12.10/eventmachine.gemspec +0 -40
  24. data/lib/ext/eventmachine-0.12.10/examples/ex_channel.rb +0 -43
  25. data/lib/ext/eventmachine-0.12.10/examples/ex_queue.rb +0 -2
  26. data/lib/ext/eventmachine-0.12.10/examples/helper.rb +0 -2
  27. data/lib/ext/eventmachine-0.12.10/ext/binder.cpp +0 -125
  28. data/lib/ext/eventmachine-0.12.10/ext/binder.h +0 -46
  29. data/lib/ext/eventmachine-0.12.10/ext/cmain.cpp +0 -827
  30. data/lib/ext/eventmachine-0.12.10/ext/cplusplus.cpp +0 -202
  31. data/lib/ext/eventmachine-0.12.10/ext/ed.cpp +0 -1893
  32. data/lib/ext/eventmachine-0.12.10/ext/ed.h +0 -424
  33. data/lib/ext/eventmachine-0.12.10/ext/em.cpp +0 -2282
  34. data/lib/ext/eventmachine-0.12.10/ext/em.h +0 -232
  35. data/lib/ext/eventmachine-0.12.10/ext/emwin.cpp +0 -300
  36. data/lib/ext/eventmachine-0.12.10/ext/emwin.h +0 -94
  37. data/lib/ext/eventmachine-0.12.10/ext/epoll.cpp +0 -26
  38. data/lib/ext/eventmachine-0.12.10/ext/epoll.h +0 -25
  39. data/lib/ext/eventmachine-0.12.10/ext/eventmachine.h +0 -122
  40. data/lib/ext/eventmachine-0.12.10/ext/eventmachine_cpp.h +0 -96
  41. data/lib/ext/eventmachine-0.12.10/ext/extconf.rb +0 -148
  42. data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/extconf.rb +0 -83
  43. data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/mapper.cpp +0 -214
  44. data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/mapper.h +0 -59
  45. data/lib/ext/eventmachine-0.12.10/ext/fastfilereader/rubymain.cpp +0 -127
  46. data/lib/ext/eventmachine-0.12.10/ext/files.cpp +0 -94
  47. data/lib/ext/eventmachine-0.12.10/ext/files.h +0 -65
  48. data/lib/ext/eventmachine-0.12.10/ext/kb.cpp +0 -81
  49. data/lib/ext/eventmachine-0.12.10/ext/page.cpp +0 -107
  50. data/lib/ext/eventmachine-0.12.10/ext/page.h +0 -51
  51. data/lib/ext/eventmachine-0.12.10/ext/pipe.cpp +0 -349
  52. data/lib/ext/eventmachine-0.12.10/ext/project.h +0 -151
  53. data/lib/ext/eventmachine-0.12.10/ext/rubymain.cpp +0 -1166
  54. data/lib/ext/eventmachine-0.12.10/ext/sigs.cpp +0 -89
  55. data/lib/ext/eventmachine-0.12.10/ext/sigs.h +0 -32
  56. data/lib/ext/eventmachine-0.12.10/ext/ssl.cpp +0 -460
  57. data/lib/ext/eventmachine-0.12.10/ext/ssl.h +0 -94
  58. data/lib/ext/eventmachine-0.12.10/java/.classpath +0 -8
  59. data/lib/ext/eventmachine-0.12.10/java/.project +0 -17
  60. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactor.java +0 -570
  61. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EmReactorException.java +0 -40
  62. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableChannel.java +0 -69
  63. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableDatagramChannel.java +0 -189
  64. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/EventableSocketChannel.java +0 -364
  65. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Application.java +0 -194
  66. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Connection.java +0 -74
  67. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/ConnectionFactory.java +0 -37
  68. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/DefaultConnectionFactory.java +0 -46
  69. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/PeriodicTimer.java +0 -38
  70. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/application/Timer.java +0 -54
  71. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ApplicationTest.java +0 -109
  72. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/ConnectTest.java +0 -148
  73. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/EMTest.java +0 -80
  74. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestDatagrams.java +0 -53
  75. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestServers.java +0 -75
  76. data/lib/ext/eventmachine-0.12.10/java/src/com/rubyeventmachine/tests/TestTimers.java +0 -90
  77. data/lib/ext/eventmachine-0.12.10/lib/em/buftok.rb +0 -138
  78. data/lib/ext/eventmachine-0.12.10/lib/em/callback.rb +0 -26
  79. data/lib/ext/eventmachine-0.12.10/lib/em/channel.rb +0 -57
  80. data/lib/ext/eventmachine-0.12.10/lib/em/connection.rb +0 -564
  81. data/lib/ext/eventmachine-0.12.10/lib/em/deferrable.rb +0 -192
  82. data/lib/ext/eventmachine-0.12.10/lib/em/file_watch.rb +0 -54
  83. data/lib/ext/eventmachine-0.12.10/lib/em/future.rb +0 -61
  84. data/lib/ext/eventmachine-0.12.10/lib/em/messages.rb +0 -66
  85. data/lib/ext/eventmachine-0.12.10/lib/em/process_watch.rb +0 -44
  86. data/lib/ext/eventmachine-0.12.10/lib/em/processes.rb +0 -119
  87. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/header_and_content.rb +0 -138
  88. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/httpclient.rb +0 -263
  89. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/httpclient2.rb +0 -590
  90. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/line_and_text.rb +0 -125
  91. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/linetext2.rb +0 -161
  92. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/memcache.rb +0 -323
  93. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/object_protocol.rb +0 -45
  94. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/postgres3.rb +0 -247
  95. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/saslauth.rb +0 -175
  96. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/smtpclient.rb +0 -357
  97. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/smtpserver.rb +0 -547
  98. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/socks4.rb +0 -66
  99. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/stomp.rb +0 -200
  100. data/lib/ext/eventmachine-0.12.10/lib/em/protocols/tcptest.rb +0 -53
  101. data/lib/ext/eventmachine-0.12.10/lib/em/protocols.rb +0 -36
  102. data/lib/ext/eventmachine-0.12.10/lib/em/queue.rb +0 -61
  103. data/lib/ext/eventmachine-0.12.10/lib/em/spawnable.rb +0 -85
  104. data/lib/ext/eventmachine-0.12.10/lib/em/streamer.rb +0 -130
  105. data/lib/ext/eventmachine-0.12.10/lib/em/timers.rb +0 -56
  106. data/lib/ext/eventmachine-0.12.10/lib/em/version.rb +0 -3
  107. data/lib/ext/eventmachine-0.12.10/lib/eventmachine.rb +0 -1592
  108. data/lib/ext/eventmachine-0.12.10/lib/evma/callback.rb +0 -32
  109. data/lib/ext/eventmachine-0.12.10/lib/evma/container.rb +0 -75
  110. data/lib/ext/eventmachine-0.12.10/lib/evma/factory.rb +0 -77
  111. data/lib/ext/eventmachine-0.12.10/lib/evma/protocol.rb +0 -87
  112. data/lib/ext/eventmachine-0.12.10/lib/evma/reactor.rb +0 -48
  113. data/lib/ext/eventmachine-0.12.10/lib/evma.rb +0 -32
  114. data/lib/ext/eventmachine-0.12.10/lib/jeventmachine.rb +0 -257
  115. data/lib/ext/eventmachine-0.12.10/lib/pr_eventmachine.rb +0 -1022
  116. data/lib/ext/eventmachine-0.12.10/setup.rb +0 -1585
  117. data/lib/ext/eventmachine-0.12.10/tasks/cpp.rake_example +0 -77
  118. data/lib/ext/eventmachine-0.12.10/tests/client.crt +0 -31
  119. data/lib/ext/eventmachine-0.12.10/tests/client.key +0 -51
  120. data/lib/ext/eventmachine-0.12.10/tests/test_attach.rb +0 -126
  121. data/lib/ext/eventmachine-0.12.10/tests/test_basic.rb +0 -284
  122. data/lib/ext/eventmachine-0.12.10/tests/test_channel.rb +0 -63
  123. data/lib/ext/eventmachine-0.12.10/tests/test_connection_count.rb +0 -35
  124. data/lib/ext/eventmachine-0.12.10/tests/test_defer.rb +0 -47
  125. data/lib/ext/eventmachine-0.12.10/tests/test_epoll.rb +0 -160
  126. data/lib/ext/eventmachine-0.12.10/tests/test_error_handler.rb +0 -35
  127. data/lib/ext/eventmachine-0.12.10/tests/test_errors.rb +0 -82
  128. data/lib/ext/eventmachine-0.12.10/tests/test_exc.rb +0 -55
  129. data/lib/ext/eventmachine-0.12.10/tests/test_file_watch.rb +0 -49
  130. data/lib/ext/eventmachine-0.12.10/tests/test_futures.rb +0 -198
  131. data/lib/ext/eventmachine-0.12.10/tests/test_get_sock_opt.rb +0 -30
  132. data/lib/ext/eventmachine-0.12.10/tests/test_handler_check.rb +0 -37
  133. data/lib/ext/eventmachine-0.12.10/tests/test_hc.rb +0 -218
  134. data/lib/ext/eventmachine-0.12.10/tests/test_httpclient.rb +0 -218
  135. data/lib/ext/eventmachine-0.12.10/tests/test_httpclient2.rb +0 -153
  136. data/lib/ext/eventmachine-0.12.10/tests/test_inactivity_timeout.rb +0 -50
  137. data/lib/ext/eventmachine-0.12.10/tests/test_kb.rb +0 -60
  138. data/lib/ext/eventmachine-0.12.10/tests/test_ltp.rb +0 -182
  139. data/lib/ext/eventmachine-0.12.10/tests/test_ltp2.rb +0 -317
  140. data/lib/ext/eventmachine-0.12.10/tests/test_next_tick.rb +0 -133
  141. data/lib/ext/eventmachine-0.12.10/tests/test_object_protocol.rb +0 -37
  142. data/lib/ext/eventmachine-0.12.10/tests/test_pause.rb +0 -70
  143. data/lib/ext/eventmachine-0.12.10/tests/test_pending_connect_timeout.rb +0 -48
  144. data/lib/ext/eventmachine-0.12.10/tests/test_process_watch.rb +0 -48
  145. data/lib/ext/eventmachine-0.12.10/tests/test_processes.rb +0 -128
  146. data/lib/ext/eventmachine-0.12.10/tests/test_proxy_connection.rb +0 -92
  147. data/lib/ext/eventmachine-0.12.10/tests/test_pure.rb +0 -125
  148. data/lib/ext/eventmachine-0.12.10/tests/test_queue.rb +0 -44
  149. data/lib/ext/eventmachine-0.12.10/tests/test_running.rb +0 -42
  150. data/lib/ext/eventmachine-0.12.10/tests/test_sasl.rb +0 -72
  151. data/lib/ext/eventmachine-0.12.10/tests/test_send_file.rb +0 -242
  152. data/lib/ext/eventmachine-0.12.10/tests/test_servers.rb +0 -76
  153. data/lib/ext/eventmachine-0.12.10/tests/test_smtpclient.rb +0 -83
  154. data/lib/ext/eventmachine-0.12.10/tests/test_smtpserver.rb +0 -85
  155. data/lib/ext/eventmachine-0.12.10/tests/test_spawn.rb +0 -322
  156. data/lib/ext/eventmachine-0.12.10/tests/test_ssl_args.rb +0 -79
  157. data/lib/ext/eventmachine-0.12.10/tests/test_ssl_methods.rb +0 -50
  158. data/lib/ext/eventmachine-0.12.10/tests/test_ssl_verify.rb +0 -82
  159. data/lib/ext/eventmachine-0.12.10/tests/test_timers.rb +0 -162
  160. data/lib/ext/eventmachine-0.12.10/tests/test_ud.rb +0 -36
  161. data/lib/ext/eventmachine-0.12.10/tests/testem.rb +0 -31
  162. data/lib/ext/eventmachine-0.12.10/web/whatis +0 -7
@@ -1,47 +0,0 @@
1
- # $Id$
2
- #
3
- # Author:: Francis Cianfrocca (gmail: blackhedd)
4
- # Homepage:: http://rubyeventmachine.com
5
- # Date:: 8 April 2006
6
- #
7
- # See EventMachine and EventMachine::Connection for documentation and
8
- # usage examples.
9
- #
10
- #----------------------------------------------------------------------------
11
- #
12
- # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
13
- # Gmail: blackhedd
14
- #
15
- # This program is free software; you can redistribute it and/or modify
16
- # it under the terms of either: 1) the GNU General Public License
17
- # as published by the Free Software Foundation; either version 2 of the
18
- # License, or (at your option) any later version; or 2) Ruby's License.
19
- #
20
- # See the file COPYING for complete licensing information.
21
- #
22
- #---------------------------------------------------------------------------
23
- #
24
- #
25
- #
26
-
27
- $:.unshift "../lib"
28
- require 'eventmachine'
29
- require 'test/unit'
30
-
31
- class TestDeferUsage < Test::Unit::TestCase
32
-
33
- def test_defers
34
- n = 0
35
- n_times = 20
36
- EM.run {
37
- n_times.times {
38
- work_proc = proc { n += 1 }
39
- callback = proc { EM.stop if n == n_times }
40
- EM.defer work_proc, callback
41
- }
42
- }
43
- assert_equal( n, n_times )
44
- end unless RUBY_VERSION >= '1.9.0'
45
-
46
- end
47
-
@@ -1,160 +0,0 @@
1
- # $Id$
2
- #
3
- # Author:: Francis Cianfrocca (gmail: blackhedd)
4
- # Homepage:: http://rubyeventmachine.com
5
- # Date:: 8 April 2006
6
- #
7
- # See EventMachine and EventMachine::Connection for documentation and
8
- # usage examples.
9
- #
10
- #----------------------------------------------------------------------------
11
- #
12
- # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
13
- # Gmail: blackhedd
14
- #
15
- # This program is free software; you can redistribute it and/or modify
16
- # it under the terms of either: 1) the GNU General Public License
17
- # as published by the Free Software Foundation; either version 2 of the
18
- # License, or (at your option) any later version; or 2) Ruby's License.
19
- #
20
- # See the file COPYING for complete licensing information.
21
- #
22
- #---------------------------------------------------------------------------
23
- #
24
- #
25
- #
26
- # TODO, and I know this doesn't belong here, but if a datagram calls
27
- # send_data outside of a receive_data, there is no return address, and
28
- # the result is a very confusing error message.
29
- #
30
-
31
- require 'eventmachine'
32
- require 'test/unit'
33
-
34
-
35
- class TestEpoll < Test::Unit::TestCase
36
-
37
- module TestEchoServer
38
- def receive_data data
39
- send_data data
40
- close_connection_after_writing
41
- end
42
- end
43
-
44
- module TestEchoClient
45
- def connection_completed
46
- send_data "ABCDE"
47
- $max += 1
48
- end
49
- def receive_data data
50
- raise "bad response" unless data == "ABCDE"
51
- end
52
- def unbind
53
- $n -= 1
54
- EM.stop if $n == 0
55
- end
56
- end
57
-
58
-
59
- # We can set the rlimit/nofile of a process but we can only set it
60
- # higher if we're running as root.
61
- # On most systems, the default value is 1024.
62
- # Java doesn't (currently) implement this.
63
- def test_rlimit
64
- unless RUBY_PLATFORM =~ /java/ or EM.set_descriptor_table_size >= 1024
65
- a = EM.set_descriptor_table_size
66
- assert( a <= 1024 )
67
- a = EM.set_descriptor_table_size( 1024 )
68
- assert( a == 1024 )
69
- end
70
- end
71
-
72
- # Run a high-volume version of this test by kicking the number of connections
73
- # up past 512. (Each connection uses two sockets, a client and a server.)
74
- # (Will require running the test as root)
75
- # This test exercises TCP clients and servers.
76
- #
77
- # XXX this test causes all sort of weird issues on OSX (when run as part of the suite)
78
- def _test_descriptors
79
- EM.epoll
80
- s = EM.set_descriptor_table_size 60000
81
- EM.run {
82
- EM.start_server "127.0.0.1", 9800, TestEchoServer
83
- $n = 0
84
- $max = 0
85
- 100.times {
86
- EM.connect("127.0.0.1", 9800, TestEchoClient) {$n += 1}
87
- }
88
- }
89
- assert_equal(0, $n)
90
- assert_equal(100, $max)
91
- end
92
-
93
- def test_defer
94
- n = 0
95
- work_proc = proc {n += 1}
96
- callback_proc = proc {EM.stop}
97
- EM.run {
98
- EM.defer work_proc, callback_proc
99
- }
100
- assert_equal( 1, n )
101
- end unless RUBY_VERSION >= '1.9.0'
102
-
103
-
104
- module TestDatagramServer
105
- def receive_data dgm
106
- $in = dgm
107
- send_data "abcdefghij"
108
- end
109
- end
110
- module TestDatagramClient
111
- def post_init
112
- send_datagram "1234567890", "127.0.0.1", 9500
113
- end
114
- def receive_data dgm
115
- $out = dgm
116
- EM.stop
117
- end
118
- end
119
-
120
- def test_datagrams
121
- $in = $out = ""
122
- EM.run {
123
- EM.open_datagram_socket "127.0.0.1", 9500, TestDatagramServer
124
- EM.open_datagram_socket "127.0.0.1", 0, TestDatagramClient
125
- }
126
- assert_equal( "1234567890", $in )
127
- assert_equal( "abcdefghij", $out )
128
- end
129
-
130
- # XXX this test fails randomly..
131
- def _test_unix_domain
132
- fn = "/tmp/xxx.chain"
133
- EM.epoll
134
- s = EM.set_descriptor_table_size 60000
135
- EM.run {
136
- # The pure-Ruby version won't let us open the socket if the node already exists.
137
- # Not sure, that actually may be correct and the compiled version is wrong.
138
- # Pure Ruby also oddly won't let us make that many connections. This test used
139
- # to run 100 times. Not sure where that lower connection-limit is coming from in
140
- # pure Ruby.
141
- # Let's not sweat the Unix-ness of the filename, since this test can't possibly
142
- # work on Windows anyway.
143
- #
144
- File.unlink(fn) if File.exist?(fn)
145
- EM.start_unix_domain_server fn, TestEchoServer
146
- $n = 0
147
- $max = 0
148
- 50.times {
149
- EM.connect_unix_domain(fn, TestEchoClient) {$n += 1}
150
- }
151
- EM::add_timer(1) { $stderr.puts("test_unix_domain timed out!"); EM::stop }
152
- }
153
- assert_equal(0, $n)
154
- assert_equal(50, $max)
155
- ensure
156
- File.unlink(fn) if File.exist?(fn)
157
- end
158
-
159
- end
160
-
@@ -1,35 +0,0 @@
1
- $:.unshift "../lib"
2
- require 'eventmachine'
3
- require 'test/unit'
4
-
5
- class TestErrorHandler < Test::Unit::TestCase
6
- def test_error_handler
7
- error = nil
8
- EM.error_handler{ |e|
9
- error = e
10
- EM.error_handler(nil)
11
- EM.stop
12
- }
13
-
14
- assert_nothing_raised do
15
- EM.run{
16
- EM.add_timer(0){
17
- raise 'test'
18
- }
19
- }
20
- end
21
-
22
- assert_equal error.class, RuntimeError
23
- assert_equal error.message, 'test'
24
- end
25
-
26
- def test_without_error_handler
27
- assert_raise RuntimeError do
28
- EM.run{
29
- EM.add_timer(0){
30
- raise 'test'
31
- }
32
- }
33
- end
34
- end
35
- end
@@ -1,82 +0,0 @@
1
- # $Id$
2
- #
3
- # Author:: Francis Cianfrocca (gmail: blackhedd)
4
- # Homepage:: http://rubyeventmachine.com
5
- # Date:: 8 April 2006
6
- #
7
- # See EventMachine and EventMachine::Connection for documentation and
8
- # usage examples.
9
- #
10
- #----------------------------------------------------------------------------
11
- #
12
- # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
13
- # Gmail: blackhedd
14
- #
15
- # This program is free software; you can redistribute it and/or modify
16
- # it under the terms of either: 1) the GNU General Public License
17
- # as published by the Free Software Foundation; either version 2 of the
18
- # License, or (at your option) any later version; or 2) Ruby's License.
19
- #
20
- # See the file COPYING for complete licensing information.
21
- #
22
- #---------------------------------------------------------------------------
23
- #
24
- #
25
- #
26
-
27
-
28
- ###### THIS TEST IS NOW OBSOLETE.
29
- ###### As of 27Dec07, the hookable error handling is obsolete because
30
- ###### of its performance impact.
31
-
32
-
33
- $:.unshift "../lib"
34
- require 'eventmachine'
35
- require 'test/unit'
36
-
37
- class TestErrors < Test::Unit::TestCase
38
-
39
- Localhost = "127.0.0.1"
40
- Localport = 9801
41
-
42
- def setup
43
- end
44
-
45
- def obsolete_teardown
46
- # Calling #set_runtime_error_hook with no block restores the
47
- # default handling of runtime_errors.
48
- #
49
- EM.set_runtime_error_hook
50
- end
51
-
52
- def test_no_tests_stub
53
- end
54
-
55
- # EM has a default handler for RuntimeErrors that are emitted from
56
- # user written code. You can override the handler if you wish, but it's
57
- # easier to call #set_runtime_error_hook.
58
- # Ordinarily, an error in user code invoked by the reactor aborts the
59
- # run.
60
- #
61
- def obsolete_test_unhandled_error
62
- assert_raises( RuntimeError ) {
63
- EM.run {
64
- EM.add_timer(0) {raise "AAA"}
65
- }
66
- }
67
-
68
- end
69
-
70
- def obsolete_test_handled_error
71
- err = nil
72
- EM.run {
73
- EM.set_runtime_error_hook {
74
- err = true
75
- EM.stop
76
- }
77
- EM.add_timer(0) {raise "AAA"}
78
- }
79
- assert err
80
- end
81
- end
82
-
@@ -1,55 +0,0 @@
1
- # $Id$
2
- #
3
- # Author:: Francis Cianfrocca (gmail: blackhedd)
4
- # Homepage:: http://rubyeventmachine.com
5
- # Date:: 8 April 2006
6
- #
7
- # See EventMachine and EventMachine::Connection for documentation and
8
- # usage examples.
9
- #
10
- #----------------------------------------------------------------------------
11
- #
12
- # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
13
- # Gmail: blackhedd
14
- #
15
- # This program is free software; you can redistribute it and/or modify
16
- # it under the terms of either: 1) the GNU General Public License
17
- # as published by the Free Software Foundation; either version 2 of the
18
- # License, or (at your option) any later version; or 2) Ruby's License.
19
- #
20
- # See the file COPYING for complete licensing information.
21
- #
22
- #---------------------------------------------------------------------------
23
- #
24
- #
25
-
26
- $:.unshift "../lib"
27
- require 'eventmachine'
28
- require 'test/unit'
29
-
30
- class TestSomeExceptions < Test::Unit::TestCase
31
-
32
- # Read the commentary in EventMachine#run.
33
- # This test exercises the ensure block in #run that makes sure
34
- # EventMachine#release_machine gets called even if an exception is
35
- # thrown within the user code. Without the ensured call to release_machine,
36
- # the second call to EventMachine#run will fail with a C++ exception
37
- # because the machine wasn't cleaned up properly.
38
-
39
- def test_a
40
- assert_raises(RuntimeError) {
41
- EventMachine.run {
42
- raise "some exception"
43
- }
44
- }
45
- end
46
-
47
- def test_b
48
- assert_raises(RuntimeError) {
49
- EventMachine.run {
50
- raise "some exception"
51
- }
52
- }
53
- end
54
-
55
- end
@@ -1,49 +0,0 @@
1
- $:.unshift "../lib"
2
- require 'eventmachine'
3
- require 'test/unit'
4
-
5
- class TestFileWatch < Test::Unit::TestCase
6
- module FileWatcher
7
- def file_modified
8
- $modified = true
9
- end
10
- def file_deleted
11
- $deleted = true
12
- end
13
- def unbind
14
- $unbind = true
15
- EM.stop
16
- end
17
- end
18
-
19
- def setup
20
- EM.kqueue = true if EM.kqueue?
21
- end
22
-
23
- def teardown
24
- EM.kqueue = false if EM.kqueue?
25
- end
26
-
27
- def test_events
28
- EM.run{
29
- require 'tempfile'
30
- file = Tempfile.new('em-watch')
31
- $tmp_path = file.path
32
-
33
- # watch it
34
- watch = EM.watch_file(file.path, FileWatcher)
35
- $path = watch.path
36
-
37
- # modify it
38
- File.open(file.path, 'w'){ |f| f.puts 'hi' }
39
-
40
- # delete it
41
- EM.add_timer(0.25){ file.close; file.delete }
42
- }
43
-
44
- assert_equal($path, $tmp_path)
45
- assert($modified)
46
- assert($deleted)
47
- assert($unbind)
48
- end
49
- end
@@ -1,198 +0,0 @@
1
- # $Id$
2
- #
3
- # Author:: Francis Cianfrocca (gmail: blackhedd)
4
- # Homepage:: http://rubyeventmachine.com
5
- # Date:: 8 April 2006
6
- #
7
- # See EventMachine and EventMachine::Connection for documentation and
8
- # usage examples.
9
- #
10
- #----------------------------------------------------------------------------
11
- #
12
- # Copyright (C) 2006-07 by Francis Cianfrocca. All Rights Reserved.
13
- # Gmail: blackhedd
14
- #
15
- # This program is free software; you can redistribute it and/or modify
16
- # it under the terms of either: 1) the GNU General Public License
17
- # as published by the Free Software Foundation; either version 2 of the
18
- # License, or (at your option) any later version; or 2) Ruby's License.
19
- #
20
- # See the file COPYING for complete licensing information.
21
- #
22
- #---------------------------------------------------------------------------
23
- #
24
- #
25
- #
26
-
27
- $:.unshift "../lib"
28
- require 'eventmachine'
29
- require 'test/unit'
30
-
31
- class TestFutures < Test::Unit::TestCase
32
-
33
- def setup
34
- end
35
-
36
- def teardown
37
- end
38
-
39
- def test_future
40
- assert_equal(100, EventMachine::Deferrable.future(100) )
41
-
42
- p1 = proc { 100 + 1 }
43
- assert_equal(101, EventMachine::Deferrable.future(p1) )
44
- end
45
-
46
- class MyFuture
47
- include EventMachine::Deferrable
48
- def initialize *args
49
- super
50
- set_deferred_status :succeeded, 40
51
- end
52
- end
53
-
54
- class MyErrorFuture
55
- include EventMachine::Deferrable
56
- def initialize *args
57
- super
58
- set_deferred_status :failed, 41
59
- end
60
- end
61
-
62
-
63
- def test_future_1
64
- # Call future with one additional argument and it will be treated as a callback.
65
- def my_future
66
- MyFuture.new
67
- end
68
-
69
- value = nil
70
- EventMachine::Deferrable.future my_future, proc {|v| value=v}
71
- assert_equal( 40, value )
72
- end
73
-
74
-
75
- def test_future_2
76
- # Call future with two additional arguments and they will be treated as a callback
77
- # and an errback.
78
- value = nil
79
- EventMachine::Deferrable.future MyErrorFuture.new, nil, proc {|v| value=v}
80
- assert_equal( 41, value )
81
- end
82
-
83
-
84
- def test_future_3
85
- # Call future with no additional arguments but with a block, and the block will be
86
- # treated as a callback.
87
- value = nil
88
- EventMachine::Deferrable.future MyFuture.new do |v|
89
- value=v
90
- end
91
- assert_equal( 40, value )
92
- end
93
-
94
-
95
- class RecursiveCallback
96
- include EventMachine::Deferrable
97
- end
98
-
99
- # A Deferrable callback can call #set_deferred_status to change the values
100
- # passed to subsequent callbacks.
101
- #
102
- def test_recursive_callbacks
103
- n = 0 # counter assures that all the tests actually run.
104
- rc = RecursiveCallback.new
105
- rc.callback {|a|
106
- assert_equal(100, a)
107
- n += 1
108
- rc.set_deferred_status :succeeded, 101, 101
109
- }
110
- rc.callback {|a,b|
111
- assert_equal(101, a)
112
- assert_equal(101, b)
113
- n += 1
114
- rc.set_deferred_status :succeeded, 102, 102, 102
115
- }
116
- rc.callback {|a,b,c|
117
- assert_equal(102, a)
118
- assert_equal(102, b)
119
- assert_equal(102, c)
120
- n += 1
121
- }
122
- rc.set_deferred_status :succeeded, 100
123
- assert_equal(3, n)
124
- end
125
-
126
- def test_syntactic_sugar
127
- rc = RecursiveCallback.new
128
- rc.set_deferred_success 100
129
- rc.set_deferred_failure 200
130
- end
131
-
132
- # It doesn't raise an error to set deferred status more than once.
133
- # In fact, this is a desired and useful idiom when it happens INSIDE
134
- # a callback or errback.
135
- # However, it's less useful otherwise, and in fact would generally be
136
- # indicative of a programming error. However, we would like to be resistant
137
- # to such errors. So whenever we set deferred status, we also clear BOTH
138
- # stacks of handlers.
139
- #
140
- def test_double_calls
141
- s = 0
142
- e = 0
143
-
144
- d = EM::DefaultDeferrable.new
145
- d.callback {s += 1}
146
- d.errback {e += 1}
147
-
148
- d.succeed # We expect the callback to be called, and the errback to be DISCARDED.
149
- d.fail # Presumably an error. We expect the errback NOT to be called.
150
- d.succeed # We expect the callback to have been discarded and NOT to be called again.
151
-
152
- assert_equal(1, s)
153
- assert_equal(0, e)
154
- end
155
-
156
- # Adding a callback to a Deferrable that is already in a success state executes the callback
157
- # immediately. The same applies to a an errback added to an already-failed Deferrable.
158
- # HOWEVER, we expect NOT to be able to add errbacks to succeeded Deferrables, or callbacks
159
- # to failed ones.
160
- #
161
- # We illustrate this with a rather contrived test. The test calls #fail after #succeed,
162
- # which ordinarily would not happen in a real program.
163
- #
164
- # What we're NOT attempting to specify is what happens if a Deferrable is succeeded and then
165
- # failed (or vice-versa). Should we then be able to add callbacks/errbacks of the appropriate
166
- # type for immediate execution? For now at least, the official answer is "don't do that."
167
- #
168
- def test_delayed_callbacks
169
- s1 = 0
170
- s2 = 0
171
- e = 0
172
-
173
- d = EM::DefaultDeferrable.new
174
- d.callback {s1 += 1}
175
-
176
- d.succeed # Triggers and discards the callback.
177
-
178
- d.callback {s2 += 1} # This callback is executed immediately and discarded.
179
-
180
- d.errback {e += 1} # This errback should be DISCARDED and never execute.
181
- d.fail # To prove it, fail and assert e is 0
182
-
183
- assert_equal( [1,1], [s1,s2] )
184
- assert_equal( 0, e )
185
- end
186
-
187
- def test_timeout
188
- n = 0
189
- EM.run {
190
- d = EM::DefaultDeferrable.new
191
- d.callback {n = 1; EM.stop}
192
- d.errback {n = 2; EM.stop}
193
- d.timeout(1)
194
- }
195
- assert_equal( 2, n )
196
- end
197
-
198
- end
@@ -1,30 +0,0 @@
1
- $:.unshift File.expand_path(File.dirname(__FILE__) + "/../lib")
2
- require 'eventmachine'
3
- require 'socket'
4
- require 'test/unit'
5
-
6
- class TestGetSockOpt < Test::Unit::TestCase
7
-
8
- def setup
9
- assert(!EM.reactor_running?)
10
- end
11
-
12
- def teardown
13
- assert(!EM.reactor_running?)
14
- end
15
-
16
- #-------------------------------------
17
-
18
- def test_get_sock_opt
19
- test = self
20
- EM.run do
21
- EM.connect 'google.com', 80, Module.new {
22
- define_method :connection_completed do
23
- val = get_sock_opt Socket::SOL_SOCKET, Socket::SO_ERROR
24
- test.assert_equal "\0\0\0\0", val
25
- EM.stop
26
- end
27
- }
28
- end
29
- end
30
- end
@@ -1,37 +0,0 @@
1
- $:.unshift "../lib"
2
- require 'eventmachine'
3
- require 'test/unit'
4
-
5
- class TestHandlerCheck < Test::Unit::TestCase
6
-
7
- class Foo < EM::Connection; end;
8
- module TestModule; end;
9
-
10
- def test_with_correct_class
11
- assert_nothing_raised do
12
- EM.run {
13
- EM.connect("127.0.0.1", 80, Foo)
14
- EM.stop_event_loop
15
- }
16
- end
17
- end
18
-
19
- def test_with_incorrect_class
20
- assert_raise(ArgumentError) do
21
- EM.run {
22
- EM.connect("127.0.0.1", 80, String)
23
- EM.stop_event_loop
24
- }
25
- end
26
- end
27
-
28
- def test_with_module
29
- assert_nothing_raised do
30
- EM.run {
31
- EM.connect("127.0.0.1", 80, TestModule)
32
- EM.stop_event_loop
33
- }
34
- end
35
- end
36
-
37
- end