X-Git-Url: http://git.sourceforge.jp/view?p=shogi-server%2Fshogi-server.git;a=blobdiff_plain;f=test%2Fbaseclient.rb;h=5be03b90f195165de9f49af45fa18fb44cf262dd;hp=39ad817d0341da3b118901d57b25b27456184e1b;hb=3dc1d0f285405066c00ff289d5d5130c6168bdb5;hpb=7e5b319747bf728f7c99ea86a367028166069747;ds=sidebyside diff --git a/test/baseclient.rb b/test/baseclient.rb index 39ad817..5be03b9 100644 --- a/test/baseclient.rb +++ b/test/baseclient.rb @@ -35,21 +35,25 @@ class SocketPlayer def reader @thread = Thread.new do - Thread.pass - loop do -# break if @socket.closed? - if r = select([@socket], nil, nil, 10) - str = r[0].first.gets - break if str.nil? - @mutex.synchronize do - if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str - @received_moves += 1 + begin + Thread.pass + loop do + break if @socket.closed? + if r = select([@socket], nil, nil, 10) + str = r[0].first.gets + break if str.nil? + @mutex.synchronize do + if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str + @received_moves += 1 + end + @message << str end - @message << str + else + raise "timed out" end - else - raise "timed out" end + rescue IOError + $stderr.puts "\nReader thread interrupted" end end end @@ -123,8 +127,8 @@ class SocketPlayer end def logout - stop_reader @socket.puts "LOGOUT" + @socket.close end end @@ -178,20 +182,32 @@ class BaseClient < Test::Unit::TestCase end def login + sleep 0.1 @p1.connect + sleep 0.1 @p2.connect + sleep 0.1 @p1.login + sleep 0.1 @p2.login + sleep 0.1 @p1.game + sleep 0.1 @p2.game + sleep 0.1 @p1.wait_game + sleep 0.1 @p2.wait_game end def agree + sleep 0.1 @p1.agree + sleep 0.1 @p2.agree + sleep 0.1 @p1.wait_agree + sleep 0.1 @p2.wait_agree end