ruby-trunk-changes r35570 - r35596

今日はテストの表示の変更や Windows 版のテキストモードの IO や拡張ライブラリで型の違いで SEGV する不具合の修正などがありました。

nobu:r35570 2012-05-08 02:18:55 +0900

OpenSSL::SSL::OP_NO_TLSv1_1 と OpenSSL::SSL::OP_NO_TLSv1_2 を使うテストはその定数が定義されている時だけ実行するようにしています。

naruse:r35571 2012-05-08 02:49:48 +0900

minitest のテストで minitest/metametameta.rb を require する時のパス指定を修正しています。

naruse:r35572 2012-05-08 02:49:53 +0900

r35563 での minitest の assert_match, refute_match の修正の再修正です。第1引数のオブジェクトが String の時に Regexpコンパイルする条件として第2引数も String であることをチェックするようにしていましたが、to_str メソッドで String に変換可能ならコンパイルするようにしています。

nobu:r35573 2012-05-08 03:44:36 +0900

r35568 の json のマージで抜けていたファイル ext/json/lib/json/generic_object.rb を追加しています。

nobu:r35574 2012-05-08 03:51:26 +0900

sample/test.rb というファイルのテストのプログレス表示に色をつけるなどの機能追加しています。

nobu:r35575 2012-05-08 03:53:42 +0900

make test の結果にも色付けをするようにしています。

nobu:r35576 2012-05-08 03:53:56 +0900

Test::Unit::Runner#puke を継承している MiniTest::Unit::Runner のメソッドを完全に再定義していたのを super で呼んで、メッセージなしの skip の詳細メッセージだけ抑制するようにしています。

nobu:r35577 2012-05-08 03:54:09 +0900

r35576 によりメッセージのない skip は verbose モードでないと表示されなくなったので Test::Unit のテストで skip メッセージをチェックしているものに --verbose オプションをつけるようにしています。

nobu:r35578 2012-05-08 03:54:23 +0900

Test::Unit::StatusLineOutput というクラスを追加して make test-all などのテストのプログレス表示を垂れ流すのではなくて同じ行を再描画して実行中のテストや実行済みテスト数などを改行せずに出力するようにしています。また動作は確認できませんでしたが色付けもしている模様です。

nobu:r35579 2012-05-08 03:54:37 +0900

MiniTest::Unit::TestCase#run_test で実行中のテストメソッドの名前を $0 にセットしてプロセス名に反映させるようにしています(サポートされているプラットフォームでは)。

nobu:r35580 2012-05-08 04:47:47 +0900

Test::Unit::Runner でメッセージ出力先の設定を MiniTest::Unit.output= に依存していたのをメソッド再定義して自前でインスタンス変数を持っておくようにしています。

nobu:r35581 2012-05-08 05:12:20 +0900

r35580 で @output を持つようにしたところで未初期化のインスタンス変数参照の警告を除去しています。

drbrain:r35582 2012-05-08 05:35:59 +0900

object.c の Init_Object() で public_constant, private_constant メソッドの関数を登録しているところで、関数の定義されている variable.c をコメントで追記しています。 [ruby-core:44760] [Bug #6381]

naruse:r35583 2012-05-08 07:46:15 +0900

拡張ライブラリ openssl で SSL_connect() や SSL_accept() の実行で SSL_ERROR_SYSCALL エラーが発生した時に SSLError でなく SystemCallError(Errno::EXXX) を発生させていたのを削除しています。

drbrain:r35584 2012-05-08 08:55:53 +0900

lib/abbrev.rb の rdoc 用コメントの英文を修正しています。 [Bug #6346]

nobu:r35585 2012-05-08 09:25:43 +0900

make test-all で実行中のテストを1行で表示するやりかたは -v/--verbose オプションが指定されてない時だけ利用するようにしています。

nobu:r35586 2012-05-08 09:25:47 +0900

テストの成功時、失敗時のプログレスの色付けの ASCII コードを環境変数 PASSED_COLOR、FAILED_COLOR で指定可能にしています。

usa:r35587 2012-05-08 11:23:15 +0900

test/minitest/metametameta.rb という minitest のテスト用のヘルパークラスでファイルパスに Windows のドライブレターが含まれる場合がサポートされていなかったので修正しています。

nobu:r35588 2012-05-08 13:35:13 +0900

MiniTest::Unit::TestCase#run_test で例外発生時にそのバックトレースを切り詰める方法を caller のサイズを使う方法から例外発生位置のファイルパスと行数から現在のスコープを検索してその先を消すようにしています。既に $@ が変更されているとエラーになる可能性があるのでその対応のためだそうです。

nobu:r35589 2012-05-08 13:36:04 +0900

BSD で POSTLINK(実行体リンク後に実行するコマンド)を ":" に設定しています。 BSD の make では POSTLINK が空だとエラーになっていたようです。

ayumin:r35590 2012-05-08 13:47:35 +0900

拡張ライブラリ date の全体および Date クラスの rdoc の英語の修正とサンプルコードの追加などをしています。

nobu:r35591 2012-05-08 15:49:59 +0900

cgi, cvs, logger のテストで一時ファイルをソースディレクトリ配下に作っているのを Tempfile を利用するようにしています。ソースディレクトリが read only の時に失敗したためのようです。

nobu:r35592 2012-05-08 15:50:03 +0900

csv, open-uri, rexml のテストで zlib に依存したテストを require できた時だけ実行するようにして、ロードできない時にエラーにならないようにしています。

nobu:r35593 2012-05-08 15:50:05 +0900

mkmf.rb のテストでコンパイラの出力を抑制するためテスト中標準出力をリダイレクトするようにしてるところで置き換えた標準出力を reopen してファイルディスクリプタを直接触っても出力が漏れないようにしています。

shirosaki:r35594 2012-05-08 21:01:05 +0900

Windows で text mode (改行コードの変換あり) の時にバッファをクリアする特にバッファの末尾が "\r" だと改行の調節が漏れていたのを修正しています。 [ruby-core:44874] [Bug #6401]

shirosaki:r35595 2012-05-08 21:47:25 +0900

Windows 版の FD_SET() の実装を関数からマクロに変更しています。コミットログによると FD_SETSIZE が拡張ライブラリで利用されていた時に、関数だと ruby 本体をコンパイルした時のサイズのままで触ろうとしてオーバフローしてしまうので、拡張ライブラリのコンパイル時に拡張ライブラリ毎にサイズを決めるようにしているのだと思います。 [ruby-core:44588] [Bug #6352]
また rb_w32_select_with_thread() で copy_fd() を使って引数に渡された fd_set * 型の変数の内容を自動変数にコピーするようにしています。