Ruby処理系をテストする

これからRailsRubyをmaster, trunkにちゃんとアップデートして、差分を読んでいくみたいなことをしていきたいなぁと思って、どうせならテストを回せるようになりたいと思い。

RubyKaigi2015で発表されていた以下のスライドが非常に参考になります。ruby coreの人でも知らない情報もあったり笑

www.slideshare.net

先に、autoconf, make, make installについて。

make checkでテストを自動化できる。

rbenvをインストールしていると、configureは/Users/totz/.rbenv/shims/rubyみたいにrbenvのshimsにちゃんとインストールしてくれるみたい。

$ autoconf
$ ./configure --disable-install-doc
checking for ruby... /Users/totz/.rbenv/shims/ruby
.
.
.

コンパイル && ビルド。

$ make -j

make checkでテストを回せます

$ make check

以下のような出力になった。テストを全てパスしているみたい。

test succeeded
PASS all 1010 tests
exec ./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems "./bootstraptest/runner.rb" --ruby="ruby --disable-gems"   ./KNOWNBUGS.rb
2016-01-05 11:30:44 +0900
Driver is ruby 2.4.0dev (2016-01-05 trunk 53437) [x86_64-darwin14]
Target is ruby 2.4.0dev (2016-01-05 trunk 53437) [x86_64-darwin14]

KNOWNBUGS.rb  PASS 0
No tests, no problem
Run options: "--ruby=./miniruby -I./lib -I. -I.ext/common  ./tool/runruby.rb --extout=.ext  -- --disable-gems"

# Running tests:

Finished tests in 2.399190s, 91.6976 tests/s, 184.2288 assertions/s.
220 tests, 442 assertions, 0 failures, 0 errors, 0 skips

こんな感じでテストを回せました、わーい