FluentdのWindowsブランチに対してテストを流してみた
※Rubyはほとんど触ったことありません。
FluentdのWindowsブランチに結構手が入ってるようでしたので、テストを流してみました。
結果はこちら。
実行環境
2013-12-19現在のWindowsブランチのHEADに対してテストを実施しました。
- OS: Windows 8 x64
- Ruby: ruby 1.9.3p362 (2012-12-25) [i386-mingw32]
- Bundler: Bundler version 1.2.3
- Rake: rake, version 10.1.0
実行方法
何も考えずにbundle exec rake test
を実行すると、すぐエラーが発生してしまうので、以下のバッチファイルを作成して1ファイルずつテストを流しました。
@echo off @call bundle install for %%f in ("test\*.rb") do ( echo [Test start: %%f] @call bundle exec rake --trace test TEST='"%%f"' >test_log\%%f.log 2>&1 ) for %%f in ("test\plugin\*.rb") do ( echo [Test start: %%f] @call bundle exec rake --trace test TEST='"%%f"' >test_log\%%f.log 2>&1 ) pause exit /b 0
結果
プラグインで結構失敗が多いですね。中にはRuby側?なのか、[BUG] win32_mutex_lock: WAIT_ABANDONED
と出力されていました。
in_tail.rb
のテストで発生したエラーを追いかけてみると、shutdown
メソッドの@thread.join
を実行した際に上記のエラーが発生していました。Cool.io絡みなのかとおもいつつ、それを使っているプラグインにはテストが成功しているものもあるので、一概には言えない感じですね・・。Unixにひもづく処理だったり、ファイルを扱う処理なのでしょうか。
あと、そのままテストを流すと、おそらく$platformwin
がうまく設定されていない感じだったので、それも原因の一つかもしれないです。Issueに、Windows版の場合はソースを分けるというものが上がっていたので、その対応次第では通るテストも増えるかもしれません。
まとめ
やはりWindows対応は大変そうだなーという印象でした。もう少しRuby力をあげて、直せそうなところから手をつけていきたいです。