diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/jruby_socket.rb | 39 | ||||
-rw-r--r-- | test/test_ws.rb | 2 |
2 files changed, 37 insertions, 4 deletions
diff --git a/test/jruby_socket.rb b/test/jruby_socket.rb index 08e792c..b06cb67 100644 --- a/test/jruby_socket.rb +++ b/test/jruby_socket.rb @@ -2,7 +2,38 @@ # Minimal test to help debug JRuby socket issues require 'socket' -socket = TCPSocket.new('127.0.0.1', '3000') -socket.write("G") -socket.close_write -socket.write("E") + +@server = Thread.new do + server_socket = TCPServer.new('0.0.0.0', 10101) + this_client = server_socket.accept + 4.times do |n| + begin + data = this_client.readpartial(4) + puts "Server got: #{data}" + if n == 0 + this_client.close + puts "Server closed the client" + end + rescue IOError => e + puts "Server has: #{e.inspect}" + end + sleep(1) + end + server_socket.close +end + +sleep(3) +client_socket = TCPSocket.new('0.0.0.0', 10101) +4.times do |n| + string = "X#{n}" + begin + client_socket.write(string) + puts "Client said: #{string}" + rescue Errno::EPIPE => e + puts "Client has: #{e.inspect}" + end + sleep(1) +end +client_socket.close + +@server.join diff --git a/test/test_ws.rb b/test/test_ws.rb index 6706631..5ea5a16 100644 --- a/test/test_ws.rb +++ b/test/test_ws.rb @@ -48,9 +48,11 @@ class WebServerTest < Test::Unit::TestCase @socket = TCPSocket.new("127.0.0.1", 9998); request = StringIO.new(string) chunks_out = 0 +# STDERR.puts chunks_out while data = request.read(chunk) chunks_out += @socket.write(data) +# STDERR.puts chunks_out @socket.flush sleep 0.2 if close_after and chunks_out > close_after |