sidekick-client 0.2.1 → 0.2.2

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.
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