test-all が Errno::EADDRINUSE で止まることがあります。

調べてみると、どうもポート番号がハードコードされている所があるようで、
少なくともそのポートを他のプロセスが使っているとうまくいかないようです。

% ./ruby -rsocket -e 'TCPServer.new(8473); sleep' &
[1] 28983
% ./ruby test/runner.rb test/drb                 
Loaded suite drb
Started
......................................../home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:836:in `initialize': Address already in use - bind(2) (Errno::EADDRINUSE)
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:836:in `open'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:836:in `open_server_inaddr_any'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:851:in `open_server'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:747:in `open_server'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:745:in `each'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:745:in `open_server'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:1286:in `initialize'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:1549:in `new'
        from /home/akr/ruby/head-ruby/lib/ruby/1.9/drb/drb.rb:1549:in `start_service'
        from /home/akr/ruby/head-ruby/ruby/test/drb/ut_port.rb:11

ポート番号は共有の資源なので、こういう一時的な使用ではハードコードして
欲しくないのですが、どうでしょうか?  偶然ほかのプロセスが使っていたと
きに失敗しますし、また、test-all をふたつ並行して動かすことも出来ませ
ん。

また、ポート番号とは違う話になりますが、ここでのテストが止まるというの
は終了はせずに進まなくなるという意味です。こういうことがあると他のテス
トの結果が見れないので、何らかの理由でうまくいかないにしてもせめていさ
ぎよく失敗して次のテストにいって欲しいのですが、どうでしょう?
-- 
[田中 哲][たなか あきら][Tanaka Akira]