ruby-trunk-changes 2020-02-05

今日はテスト用ユーティリティ assert_separately の昨日の変更の Windows 対応などがありました。

[9b9a621ae3] "NARUSE, Yui" 2020-02-04 11:54:48 UTC

0529fead361c05754550e39daaa54076a04df6a3 の assert_separetely の pipe 対応で Windows では fd の 0, 1, 2 以外を子プロセスに渡すことができないという制限にひっかかるので、Windows 環境ではやっぱり標準出力(fd=1)を使って Marshal.dump したオブジェクトを受け渡すように修正しています。

[3c7a09ece8] Kazuhiro NISHIYAMA 2020-02-04 11:54:20 UTC

拡張ライブラリ pathname の Pathname#open の rdoc 用コメントに call-seq がなかったので追記しています。

[390a9d3b72] "NARUSE, Yui" 2020-02-04 12:51:57 UTC

9b9a621ae35bd6aefe78ff8a22874d8036ddd883 の追加修正で Windows 環境では子プロセスで fd を指定して IO.new するのもやめて単に STDOUT 定数を参照するようにしています。

[c6cd4206df] Nobuyoshi Nakada 2020-02-04 23:47:47 UTC

9b9a621ae35bd6aefe78ff8a22874d8036ddd883 や 390a9d3b725a4ea7852f2cabf066b78855869472 のさらに変更で利用する IO オブジェクトを生成するスクリプト片を分岐内で作ってそれを埋め込むだけにしています。

[6fe44576b9] Nobuyoshi Nakada 2020-02-05 00:30:12 UTC

さらに assert_separately の修正で fd leak を防ぐため IO.pipe で pipe 生成していた場合読んだ後に fd で開いた IO を close するようにしています。これは親プロセスのほうの処理ですね。

[0226d72e95] Nobuyoshi Nakada 2020-02-05 00:35:29 UTC

9b9a621ae35bd6aefe78ff8a22874d8036ddd883 のさらに修正で親プロセス側で標準出力からの出力を(pipe を使ってた場合) Kernel#print で標準出力にしていたのを MiniTest::Unit.output を使うようにしています。並列テスト時にこの出力がさらに親プロセスに渡されるのでそれを考慮するようにしているということですかね。

[940cd3b916] git 2020-02-05 00:42:29 UTC

version.h の日付更新