ruby-trunk-changes r33762 - r33774

NUM2UL() の LLP64 環境での不具合修正と、minitest の assert_raises の省リソース化などがありました。

akr:r33762 2011-11-15 21:58:37 +0900

sleep のテストで sleep の前後の時刻の差をチェックしているのですが、その許容度が 0.1 sec までで動作状況によってはもっと遅くなることもあるので、5 sec 以上 6sec 以下に収まるかをチェックするようにしています。

nobu:r33763 2011-11-15 22:55:38 +0900

ext/openssl/ossl_asn1.c の関数の文字列長の引数の型を int -> long に変更しています。中で使っている d2i_ASN1_XXX() の型が long なのでそれに揃えています。

akr:r33764 2011-11-16 06:35:09 +0900

ConditionVariable#wait のタイムアウト付きのテスト test_condvar_timed_wait で wait 前後の時刻のチェックに assert_block を使っていたのを assert_operator を使うようにしています。

svn:r33765 2011-11-16 06:35:14 +0900

version.h の日付更新。

naruse:r33766 2011-11-16 09:59:56 +0900

minitest の assert_raises で例外を捕捉した時に exception_details を呼んでバックトレースなど詳細な情報を作るのは実際に必要になった時(例外が発生したけど期待した例外じゃない)だけ呼ぶようにしています。 64bit linux での chkbuild で利用リソースを抑えるためだそうです。

usa:r33767 2011-11-16 10:27:15 +0900

VC++ の警告を抑制するため rb_big2ull() にキャストを追加しています。

usa:r33768 2011-11-16 10:46:43 +0900

NUM2XXX などのテスト用の拡張ライブラリ ext/-test-/num2int/num2int.c で rb_stdout を宣言していたのを削除しています。rb_stdout は include/ruby/ruby.h で宣言されている & Windows 版を考慮して extern -> RUBY_EXTERN でないといけなかったんですね。

naruse:r33769 2011-11-16 11:12:37 +0900

r33766 の assert_raises の修正でテストに pass した時に assert 自体が呼ばれなくなっていたので exception_details を呼ぶところだけ分岐するようにしています。

usa:r33770 2011-11-16 11:36:08 +0900

r33662 の ARGV の改行コード変換モードの書き込み用フラグ設定のタイミングを変更しています。ひとつ前のファイルに付けてしまっていたようですね。

naruse:r33771 2011-11-16 11:43:03 +0900

r33769 では assert の第2引数に true が渡されることがあったので ""(空文字列)を渡すように修正しています。

usa:r33772 2011-11-16 12:06:05 +0900

r33730 で WEBrick のテスト時に RbConfig::CONFIG["LIBPATHENV"] で指定された環境変数をパラメータとして渡すようにしたのですが、Windows などではこの設定が存在していなかったため、存在する時だけ設定するようにしています。

usa:r33773 2011-11-16 13:53:51 +0900

rb_big2ulong() で sizeof(VALUE) が sizeof(long) より大きな環境でキャストのミスでオーバフローしていたのを修正しています。C 言語難しい……。

nobu:r33774 2011-11-16 18:13:56 +0900

libruby.a (static link 用ライブラリ)のコンパイル時に実際にリンクしてみて拡張ライブラリからリンクできるように正しくライブラリが生成されているかをチェックしているようです。壊れたライブラリができることがあったんでしょうか。