ruby-trunk-changes r30853 - r30863

今日も test/unit の修正が続いています。

nobu:r30853 2011-02-12 23:17:54 +0900

Test::Unit::Assertions に assert_include を assert_includes の alias、assert_not_include を assert_no_includes の alias として追加。assert_no_match の alias は削除されています。test/ の下で assert_includes を利用しているものは assert_include に変更されています。これもtest-unitとの互換性向上のためでしょう。昨日追加した assert_no_match は消してしまって良かったんでしょうか?

nobu:r30854 2011-02-13 00:29:24 +0900

Test::Unit 配下のクラスのメソッドの返り値の細かな仕様を整理しているようです。

svn:r30855 2011-02-13 00:29:25 +0900

version.h の日付更新。

tadf:r30856 2011-02-13 00:51:31 +0900

Date#=== に nil など数値、Date 以外の coerce メソッドを持たないオブジェクトを渡すと NoMethodError になるのを修正しています。
ところで end の末尾についてる # <

matz:r30857 2011-02-13 07:41:02 +0900

Enumerable#inject の rdoc の typo 修正です。[ruby-core:35216]

nobu:r30858 2011-02-13 09:56:40 +0900

昨日の修正で入力待ちのソケットをcloseすると IOError が発生するようになったので WEBrick のテストで rescue を追加しています。

nobu:r30859 2011-02-13 09:56:44 +0900

テストで refute_??? のかわりに assert_not_??? を利用するようにしています。refute は minitest の メソッドみたいです。

nobu:r30860 2011-02-13 09:56:48 +0900

test/io/nonblock/test_flush.rb の flush_test メソッドは true か false で nonblock= がセットできたか(ちゃんとテスト実行できたか)を返しているのに最後に true を返していなかったので明示的に true を返すようにしています。ちなみに test_flush.rb は古めの Linux Kernel だと select 中に他の Thread で close された時に起こされないので止まってしまって timeout で Error になるというのが起きていたのですが(http://d.hatena.ne.jp/nagachika/20090204/working_for_0f0e)、たぶんこれも Error にならなくなってるんじゃないかなぁ。月曜日にチェックしてみることにします。

nobu:r30861 2011-02-13 09:56:52 +0900

OpenSSL のテストでも assert_raise の第2引数に Regexp を渡していたところがあったので、メッセージ(ruby-core のリンク)を渡して、例外のメッセージは別途 assert_match でチェックするように修正しています。

nobu:r30862 2011-02-13 10:13:17 +0900

ChangeLog のインデント修正、少し単語修正。

nobu:r30863 2011-02-13 19:41:59 +0900

Test::Unit がテストスクリプトの require に失敗(LoadError 発生)した時に例外メッセージを出力するだけにしていたのを、skip 扱いにするようにしています。動的に Test::Unit::TestCase を継承したクラスを生成して skip を実行する test_require_failed というメソッドを定義することで自動的に skip メッセージが出るようにしていて、メタプログラミングが駆使されています。