[#45637] [ruby-trunk - Feature #6440][Open] 引数にIOを渡した場合のMarshal.loadにバッファを持たせたい — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

14 messages 2012/05/16

[#45670] [ruby-trunk - Bug #6479][Open] ipaddr.rbの受け付ける書式が、プラットフォームによって異なる — "kachick (Kenichi Kamiya)" <kachick1+ruby@...>

9 messages 2012/05/22

[ruby-dev:45632] [ruby-trunk - Bug #5151][Closed] test/socket/test_socket.rb fail when udp connection failed

From: "naruse (Yui NARUSE)" <naruse@...>
Date: 2012-05-10 13:00:03 UTC
List: ruby-dev #45632
Issue #5151 has been updated by naruse (Yui NARUSE).

Status changed from Assigned to Closed

まず、原因の累計として、
* OS のバグ (CentOS 5.6 や OpenBSD)
* 通信が無効になっている (FreeBSD9 の IFDISABLED、POINTOPOINT など)

後者は ifconfig の結果を眺めつつ、man を読むとわかったりわからなかったりします。
r35610 や r35611 ではこの辺の対策を入れています。

元々の問題である "fd5e:b7ac:aaf8:9f02:223:32ff:feb4:f300" がなぜダメだったかは
わからないのですが、最近聞かない辺り、バグだったんですかねぇ。
とりあえず、getifaddrs で取ってきたやつに対して ioctl したり、
FreeBSD の ifconfig 眺めて色々着いてるオプションを眺めるという技は習得したんですが。
----------------------------------------
Bug #5151: test/socket/test_socket.rb fail when udp connection failed
https://bugs.ruby-lang.org/issues/5151#change-26566

Author: ayumin (Ayumu AIZAWA)
Status: Closed
Priority: Normal
Assignee: mrkn (Kenta Murata)
Category: ext
Target version: 1.9.4
ruby -v: - (darwin)


=begin
test/socket/test_socket.rb  の test_udp_server 内で Socket.ip_address_list で得られる
アドレスに対して接続できないときに RuntimeError でテストが失敗します。

同じテストファイルの中の test_ip_address_list は成功しているので、取得しているリスト
の中身自体は問題なさそうなので、接続できないときはスキップしてしまってよいのでは
ないかとおもいました。

以下実行結果です。

 $ make test-all TESTS='test/socket/test_socket.rb'
 ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems" test/socket/test_socket.rb
 Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
 
 # Running tests:
 
 ..................E...
 
 Finished tests in 10.225113s, 2.1516 tests/s, 7.2371 assertions/s.
 
 1) Error:
 test_udp_server(TestSocket):
 RuntimeError: no response from #<Addrinfo: fd5e:b7ac:aaf8:9f02:223:32ff:feb4:f300>
 /Users/ayumin/github/ruby/test/socket/test_socket.rb:297:in `block (3 levels) in test_udp_server'
 /Users/ayumin/github/ruby/.ext/common/socket.rb:45:in `connect_internal'
 /Users/ayumin/github/ruby/.ext/common/socket.rb:92:in `connect'
 /Users/ayumin/github/ruby/test/socket/test_socket.rb:293:in `block (2 levels) in test_udp_server'
 /Users/ayumin/github/ruby/test/socket/test_socket.rb:292:in `each'
 /Users/ayumin/github/ruby/test/socket/test_socket.rb:292:in `block in test_udp_server'
 /Users/ayumin/github/ruby/.ext/common/socket.rb:553:in `udp_server_sockets'
 /Users/ayumin/github/ruby/test/socket/test_socket.rb:276:in `test_udp_server'
 
 22 tests, 74 assertions, 0 failures, 1 errors, 0 skips
 make: *** [yes-test-all] Error 1

スキップするパッチは https://gist.github.com/1121247 です。

パッチ適用後の実行結果は以下のとおりです。

 $ make test-all TESTS='test/socket/test_socket.rb'
 ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems "./test/runner.rb" --ruby="./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems" test/socket/test_socket.rb
 Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"
 
 # Running tests:
 
 ..................S...
 
 Finished tests in 20.225713s, 1.0877 tests/s, 3.6587 assertions/s.
 
 1) Skipped:
 test_udp_server(TestSocket) [/Users/ayumin/github/ruby/test/socket/test_socket.rb:307]:
 need sendmsg and recvmsg
 
 22 tests, 74 assertions, 0 failures, 0 errors, 1 skips

=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next