reline のテストを実行

はじめに

この記事は2020年ふりかえりアドベントカレンダー 11日目です。これを書いているのは12月14日ですが、あまり気にしないことにしました。昨日の記事は サロゲートペアとRubyのStringについての覚書 - いまブログ です。

先日 Ruby の標準添付ライブラリの reline に PR を送って無事マージされました。

reline のテストについて教えていただいたので書き残しておきます。

reline の概要

reline は GNU readline を Ruby で再実装したライブラリです。 Ruby の標準添付ライブラリとして Ruby 同梱されています。

github.com

reline のテスト

rake testrake test_yamatanooroti で実行できます。

rake test

rake test を実行すると RakefileENCODING_LIST に定義されているエンコーディングでテストが実行されます。とても便利です。

❯ rake test

Test Encoding: Shift_JIS
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.291866 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
849.71 tests/s, 9148.03 assertions/s

Test Encoding: EUC-JP
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.256047 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
968.57 tests/s, 10427.77 assertions/s

Test Encoding: UTF-8
Loaded suite -e
Started
...........................................................................................................................................
...............................................................................................................
Finished in 0.232133 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
250 tests, 2710 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
1076.97 tests/s, 11674.34 assertions/s

Test Encoding: Windows-31J
Loaded suite -e
Started
...........................................................................................................................................
.............................................................................................................
Finished in 0.235805 seconds.
-------------------------------------------------------------------------------------------------------------------------------------------
248 tests, 2670 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications
100% passed
-------------------------------------------------------------------------------------------------------------------------------------------
1051.72 tests/s, 11322.92 assertions/s

rake test_yamatanooroti

yamatanooroti というgemを使い、仮想端末上でテストを実行します。

github.com

yamatanooroti を使うには、 libvterm 、gem vterm をインストールします。

$ brew install libvterm
$ gem install vterm

rake test_yamatanooroti でテストを実行できます。