ruby-trunk-changes r56915 - r56927

今日は Net::FTP.new のオプション追加やテストの修正などがありました。

nobu: r56915 2016-11-28 22:16:00 +0900

string.c の mapping_buffer という型で最後のメンバーにサイズが 0 の配列を定義して可変長のサイズのメモリのヘッダとして使う方法を使っていましたが C90 ではサイズ 0 の配列の宣言ができないのでサイズ 1 に変更しています。

shugo: r56916 2016-11-29 11:21:50 +0900

標準添付ライブラリ net/ftp の Net::FTP#connect で OpenTimeout 例外時にも @sock を close しておくようにしています。 TLS handshake のタイムアウト時に発生する可能性があるため。

svn: r56917 2016-11-29 11:21:51 +0900

version.h の日付更新。

shugo: r56918 2016-11-29 11:33:34 +0900

r56916 の追加修正。 Net::FTP#connect で例外発生時の close 処理を Net::FTP#close の呼び出しではなく @sock.close を直接呼ぶようにしています。 Net::FTP#close だと shutdown 後 read してしまってタイムアウトするまで待たされる可能性があったので。

shugo: r56919 2016-11-29 11:47:11 +0900

標準添付ライブラリ net/ftp の Net::FTP.new に :ssl_handshake_timeout オプションを追加して :open_timeout とは別に TLS handshake のタイムアウトを指定できるようにしています。

nobu: r56920 2016-11-29 12:06:01 +0900

string.c の rb_str_casemap() で ALLOC_N() マクロを利用していたところを xmalloc() の呼び出しにおきかえています。

nobu: r56921 2016-11-29 12:06:02 +0900

test/ruby/test_keyword.rb 必須キーワード引数のテストで発生する例外を検査するのに begin ... rescue を使ってわざわざ書いてたので assert_raise_with_message が返す例外オブジェクトを使ってチェックするように修正しています。

nobu: r56922 2016-11-29 12:06:03 +0900

必須キーワード引数のテストに proc() で Proc オブジェクトを作る時にブロックパラメータとして必須キーワード引数を使った時の挙動についてテストを追加しています。

shugo: r56923 2016-11-29 17:31:39 +0900

Net::FTPTLS 対応のテストで OpenSSL::SSL::SSLSocket#accept の例外を捕捉しているところで mswin64 で Errno::ECONNRESET が発生したそうなので rescue に追加しています。

duerst: r56924 2016-11-29 17:39:57 +0900

文字列の Unicode の casemap 対応のテストで \uA64B という文字はうまく処理できていないみたいなので skip するようにしています。assert_equal の引数に同じ変数を渡していたのを直したら発覚したみたいです。 [ruby-core:78410] [Bug #12990]

shugo: r56925 2016-11-29 17:44:21 +0900

標準添付ライブラリ net/ftp の Net::FTP で未初期化インスタンス変数の参照の警告除去のために initialize で初期化を追加しています。またテストではブロックパラメータによる外側の変数の shadowing の警告除去をしています。

duerst: r56926 2016-11-29 19:45:54 +0900

r56912 で追加した String#casecmp? と Symbol#casecmp? の rdoc 用コメントのサンプルのメソッド名が casecmp になっていたので ? を追加しています。

nobu: r56927 2016-11-29 19:47:43 +0900

メソッド定義の仮引数をかこむかっことメソッド名のあいだに空白があったら警告メッセージを出すようにしています。標準添付ライブラリにもそうなっていたところがあったので修正しています。