読者です 読者をやめる 読者になる 読者になる

FluentdのWindowsブランチに対してテストを流してみた

Fluentd Ruby

Rubyはほとんど触ったことありません。

FluentdのWindowsブランチに結構手が入ってるようでしたので、テストを流してみました。

結果はこちら。

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力をあげて、直せそうなところから手をつけていきたいです。