ruby-trunk-changes 2019-06-30

今日は nobu 無双で主にテストの警告除去や機能していなかったテストの修正などがありました。

[9f648262f9] Nobuyoshi Nakada 2019-06-29 12:45:59 UTC

cbb7dc21a823e8b09341860d8737ed24ee1ce1b8 と同様に rubyspec の Addrinfo のテストで同一性チェックのために == の比較を equal? に変更しています。

[45ba027d08] Nobuyoshi Nakada 2019-06-29 12:19:01 UTC

テストの未使用変数削除。

[81e8830a76] git 2019-06-29 23:50:35 UTC

version.h の日付更新

[78a8888c3e] Nobuyoshi Nakada 2019-06-30 01:56:42 UTC

parse.y のメソッド引数やブロックパラメーターなどで "*" つきの(あるいは * だけの) rest 引数のルールが f_marg の中にあった部分を f_rest_marg という独立したルールに切り出すリファクタリング

[41012f2e2b] Nobuyoshi Nakada 2019-06-30 00:30:21 UTC

テストで ISeq へのコンパイルを行うもので警告の抑制のため EnvUtil.suppress_warning を経由させるようにしています。

[84837e6d16] Nobuyoshi Nakada 2019-06-30 00:33:24 UTC

Signal のテストで Thread の終了漏れがあったので Thread#join を追加しています。

[409b0ec4c3] Nobuyoshi Nakada 2019-06-30 00:34:41 UTC

テストで ISeq へのコンパイルなどしてるところで未使用変数の警告除去をしています。

[ad3820886b] Nobuyoshi Nakada 2019-06-30 00:40:23 UTC

pattern match のテストで比較対象を間違えててグローバル変数と比較していたのを修正しています。 nil との比較だったので失敗してなかったのだと思います。

[44eca1b22f] Nobuyoshi Nakada 2019-06-30 00:40:55 UTC

ローカル変数と同名のメソッドがある時のテストで同じオブジェクトを使いまわしているので正しくチェックできていなかったところで一旦値をリセットするようにしています。

[8fe3590864] Nobuyoshi Nakada 2019-06-30 00:44:15 UTC

Queue のテストで ClosedQueueError の発生をチェックするテストで Thread#report_on_exception の設定をしておくようにして、また Thread#join して例外のチェックをちゃんとするようにしています。

[b43d6e5709] Nobuyoshi Nakada 2019-06-30 00:46:21 UTC

SizedQueue のテストでテストメソッドの先頭で return してて動いてなかった test_empty_non_blocking を修正して通るようにしています。

[c400c0b4a0] Nobuyoshi Nakada 2019-06-30 00:46:58 UTC

GC.compact のテスト test_many_collisions でも途中で return していたのを skip に書きかえています。

[3620568d3a] Nobuyoshi Nakada 2019-06-30 00:51:09 UTC

テストでスクリプトを RubyVM::AbstractSyntaxTree.parse で parse する時に未使用の式の警告などを抑制するためにスクリプトを修正したり EnvUtil.suppress_warning 経由で呼ぶようにしています。

[4a063546e7] Nobuyoshi Nakada 2019-06-30 00:52:31 UTC

TracePoint のテストでも警告抑制のために EnvUtil.suppress_warning 経由で eval するようにしています。

[5f736d4319] Nobuyoshi Nakada 2019-06-30 00:54:21 UTC

RubyVM::AbstractSyntaxTree のテストで while や until などのテストの条件部にリテラルが書かれてて警告になってたのでメソッド呼び出し参照に変更しています。

[cc68084652] Nobuyoshi Nakada 2019-06-30 00:55:50 UTC

ISeq.load_from_binary のテストでもメソッド再定義の警告が出るのを EnvUtil.suppress_warning 経由にして抑制しています。

[75129c62eb] Nobuyoshi Nakada 2019-06-30 00:56:30 UTC

同じく ISeq や ISeq へのコンパイルの最適化のテストで到達できない文の警告を抑制するため EnvUtil.suppress_warning 経由にしています。

[126cf11d33] Nobuyoshi Nakada 2019-06-30 11:19:21 UTC

SizedQueue のテストで複数の Thread から push して pop する時の判定を push する Thread がまだ生きてるかのほうを先に判定するように変更しています。 Queue の空チェックを先にすると、空の Queue に push して先に Thread が終了するともうメッセージがないと誤判定して pop し漏れる可能性があったようです。

[3b86ec2251] Nobuyoshi Nakada 2019-06-30 09:41:17 UTC

test/dtrace/helper.rb で dtrace や stap が使えるかどうかのチェック時に環境変数 SUDO で sudo コマンドの指定があれば付けるようにしています。

[b89f6ac843] Nobuyoshi Nakada 2019-06-30 12:12:15 UTC

test/dtrace/helper.rb で Linux の場合に stap コマンドを利用する権限があるかどうか stapusr や stapdev というグループに属しているかをチェックしていたのを Etc.getlogin でユーザーを取得してチェックしていたのを、現在のプロセスグループが含まれてるかというより直接的なチェックに変更しています。

[62e66b8e18] Nobuyoshi Nakada 2019-06-30 12:15:56 UTC

test/dtrace/helper.rb で macOS で拡張ライブラリ pty の require に失敗したら DTrace モジュールの定義自体行わないようになってましたが、PTY を使う Proc の宣言をやめるだけで依存しないテストは行うようにしています。 macOS の場合は r55736 で dtrace からの端末への改行を抑制するために pty に逃がすようにしたようです。

[1eca2f3ca9] Nobuyoshi Nakada 2019-06-30 12:20:16 UTC

DTrace のテストで TracePoint#__enable の引数が 2つになってたところがあったので第3引数に Thread.current を渡すように修正しています。

[8640153e59] Nobuyoshi Nakada 2019-06-30 12:21:06 UTC

DTrace のテストで test_require_return というテストメソッドが probe のためのヒアドキュメントだけでテスト本体がまったくなかったので追加しています。

[c5eb24349a] Nobuyoshi Nakada 2019-06-30 12:23:54 UTC

TracePoint#enable の rdoc 用コメントで r66640 で追加された キーワード引数 target_thread にドキュメントが追随していなかったので追記しています。