ruby-trunk-changes r32100 - r32123

今日は Windows 版の select の実装が変更になった他は主にテストの修正でした。

emboss:r32100 2011-06-15 21:03:22 +0900

libopenssl がインストールされていない環境での openssl のテストの対応、ということなのですが ChangeLog だけコミットされています。

emboss:r32101 2011-06-15 21:04:15 +0900

r32100 の ChangeLogtypo 修正です。本体がまだない。

kosaki:r32102 2011-06-15 23:13:01 +0900

r32022 で未使用になっていた BLOCKING_REGION_CORE() マクロを削除しています。超細かいことですがリビジョン番号が1つずれてますね。

kosaki:r32103 2011-06-15 23:35:46 +0900

gc.c の vm_malloc_prepare() は確保するメモリサイズに 0 を指定されると 1 を返していたのですが、r31690 以降この戻り値を利用しなくなっていて malloc(0) を呼んでいたのを修正。
malloc(0) はメジャーなプラットフォームでは free() できるポインタを返しますが、AIX では 0(NULL)を返すのでエラー扱いになってしまうそうです。

emboss:r32105 2011-06-16 01:04:32 +0900

r32100 で漏れていた test/openssl/test_config.rb のコミットです。OpenSSL が未定義の時にテストを定義しないようにしています。

svn:r32106 2011-06-16 01:04:35 +0900

version.h の日付更新。

usa:r32107 2011-06-16 03:04:13 +0900

Windows 版の select の実装を変更。これまでは 100msec 毎にタイムアウトを設定して小刻みに起きて th->interrupt_flag をみて割り込みをチェックするようにしていましたが、普通に select() を呼ぶようになっています(cygwin 版はこれまで通り 100msec 毎に起床)。rb_w32_select_with_thread() を w32_wait_events() を利用して割り込み可能にしているようです。

usa:r32108 2011-06-16 03:09:47 +0900

testunit の並列テストのテストを Windows では skip したのを消しています。 Windows でも並列テストが動くようになったようです。

sorah:r32109 2011-06-16 07:27:11 +0900

testunit の修正で並列テスト用のオプション -j が -j0 のように並列数0が指定されたら警告を出して終了するようにしています。

sorah:r32110 2011-06-16 08:06:00 +0900

r32109 の testunit の -j0 の警告のテスト追加と、testunit の並列テストのテスト用に使う子テストケース(ややこしい!)で、並列で実行していることを検出する方法を変更しています。MiniTest.output が標準出力以外に変更されている時に失敗(リトライ時にも Failure になってしまう)してしまっていたようです。

nobu:r32111 2011-06-16 09:08:56 +0900

io/console のテスト TestIO_Console#test_sync が端末が利用できない時に skip するようにされていたのを、PTY.spawn を使って新たに端末つきの子プロセスでテストするようにしています。

nobu:r32112 2011-06-16 09:10:10 +0900

enc/depend でコンパイル時のメッセージに表示するソースファイルをディレクトリパスも含めて表示するようにしています。

nobu:r32113 2011-06-16 09:12:55 +0900

Solaris 10 でビルドできるように型名の衝突の解消や ieeefp.h の include 追加などの修正。

shugo:r32114 2011-06-16 11:41:03 +0900

Net::IMAPプロトコルの解析を修正。 Yahoo IMAP のサーバーの返すデータに対応しているそうです。

drbrain:r32115 2011-06-16 13:59:24 +0900

rdoc の 3.7 をマージしています。

drbrain:r32116 2011-06-16 14:24:12 +0900

Net::HTTP と Timeout の rdoc の修正です。 [Bug #4791]

drbrain:r32117 2011-06-16 14:37:31 +0900

WEBrick::HTTPServlet::ERBHandler で ERB で content-type ヘッダーの変更ができるように機能拡張しています。 [Bug #4685]

drbrain:r32118 2011-06-16 14:55:31 +0900

lib/webrick/utils.rb に rdoc 用コメントを追加しています。 [Bug #4819]

drbrain:r32119 2011-06-16 15:09:57 +0900

monitor.rb の rdoc 用コメントを =begin ... =end 方式から # による一行コメントへ変更 & 追記しています。 [Bug #4823]

drbrain:r32120 2011-06-16 15:17:59 +0900

Module#const_missing の rdoc にサンプルコードを追記しています。 [Bug #4794]

kosaki:r32121 2011-06-16 17:56:47 +0900

IO.copy_stream のテストで子プロセスと通信しているテストでエラー時にソケットの close が行われないために子プロセスがブロックして止まってしまうのを修正しています。またシグナルの受信を確実にするため通信量を増やしています。

nahi:r32122 2011-06-16 19:32:51 +0900

openssl の SecureRandom のテストを追加しています。 r32050 で対応された fork した子プロセスで pid が同じだと同じ seed になってしまう現象をテストするため 65536 回まで fork を繰り返して同じ pid の子プロセスができるのを待つテストもありますが、時間がかかりすぎるので if flase で括ってメソッド定義されないようにしています。

sorah:r32123 2011-06-16 20:24:23 +0900

testunit の並列テスト機能のテストのリファクタリング。テスト結果の表示のチェックで順番が不定なのに対応して正規表現を修正。またテストが並列テストの子プロセスで実行されているかどうかの検出方法を専用のメソッドを使うようにしています。 lib/test/unit/testcase.rb では常に false を返すように定義しておいて lib/test/unit/parallel.r で常に true を返すように再定義するようにしています。
しかしこれだと require "test/unit/parallel" すると上書きされるので親プロセスでも true になってしまうんじゃないでしょうか?