From 0320048974fb4b81c365f9cf47ecd24384eb3f35 Mon Sep 17 00:00:00 2001 From: evanweaver Date: Sun, 21 Oct 2007 02:27:56 +0000 Subject: jruby socket problem test git-svn-id: svn+ssh://rubyforge.org/var/svn/mongrel/trunk@709 19e92222-5c0b-0410-8929-a290d50e31e9 --- test/jruby_socket.rb | 39 +++++++++++++++++++++++++++++++++++---- test/test_ws.rb | 2 ++ 2 files changed, 37 insertions(+), 4 deletions(-) (limited to 'test') 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 -- cgit v1.2.3-24-ge0c7