App::Hacheroというモジュールでちょっと前からWin32でテストがコケていて、直せるもんなら直したいなぁ、と思っていたんですが、夏休みという事で(普段と何も変わらんのですが)思い切ってvmware fusionのWindows XPにActivePerlをインストールしてみました。 http://www.activestate.com/activeperl/downloads に行ってMSIをダウンロードしてインストーラを実行して、コマンドプロンプトを立ち上げてcpanって打ち込むとよしなにcpanが動くようにしてくれました。なんだ簡単じゃないですか。それであとは依存モジュールを普通にもりもり入れてテストするだけ。 一点困ったのが、cpan DateTime::TimeZoneを実行すると、MAXLINELENGTHが小さいと言われてエラーになる件。ググるとdmake -x MAXLINELENGTH=300000とかしろという話だったんですが、小文字の「-x」はInvalid argumentと言われ、試しに大文字の「-X」として実行したら通りました。
という感じです。
という事で、意味的には小文字の方がただしそうなんですが。あってんのかな。 で、App::Hacheroですが、何でテストがコケていたかというと、
- http://www.cpantesters.org/cpan/report/92fcb7f4-5a86-1016-8ffa-8d83edd5e24b
- http://www.cpantesters.org/cpan/report/07530152-b19f-3f77-b713-d32bba55d77f このへんを見ると
- ファイルパスを文字列として扱って、ファイル名を正規表現で取り出そうとしていた
- ファイルコピーをsystem(‘cp’)でやっていた
- Templateで加工した結果を比較するときに改行コードを考慮しなかった の3点くらいがありそう。いかにもwindowsでの実行を考えてなかったパターンですね。 という事で http://github.com/lopnor/App-Hachero/commit/6e89659aa35902e04dad020173c5533628935a76 この変更をして手元のWindowsでテストを通して0.13としてリリースしました。 http://search.cpan.org/~danjou/App-Hachero-0.13/ ということで、Windowsでのテストを食わず嫌いしてましたが、意外に簡単だったので、これからはちゃんとWindowsでテストしてからリリースしようと思いました!