2020/07/06

Perl 5.32.0 で Log::Handler のテストがこける

Perl 5.32 から、Sys::Hostnamehostname() に引数を渡しているユースケースでエラーになるようになった。以前から警告が表示されていたパターンだが、Log::Handler モジュールが hostname() に引数が渡る形で呼び出していて(実際は必要ない引数)、エラーで落ちるようになった。

こんな感じでこける。

Building and testing Log-Handler-0.88
Building Log-Handler
t/000-use.t ...................... ok
t/001-pod.t ...................... skipped: Test::Pod required for testing POD
t/002-pod-coverage.t ............. skipped: Test::Pod::Coverage required for testing pod coverage
t/010-handler.t .................. ok
t/011-handler-set-pattern.t ...... ok
hostname() does not accepts arguments (it used to silently discard any provided) at /home/user/.cpanm/work/1594218142.2177/Log-Handler-0.88/blib/lib/Log/Handler/Output.pm line 67.
# Looks like your test exited with 255 just after 1.
t/012-handler-message-pattern.t ..
Dubious, test returned 255 (wstat 65280, 0xff00)
Failed 14/15 subtests

実際の利用ケースでもログにホスト名を入れる %H を利用しているとエラーになるので、テストをスキップすることはできない。さいわい、警告が出るようになった時点で issue はあがっていて、パッチもあるので、その差分を入れればよい。

https://rt.cpan.org/Public/Bug/Display.html?id=125842

作者が対応してくれるといいのだけど、数年にわたって放置されていてリポジトリもなくメールアドレスも現在は使われていないようす。gitpanのやつもちょっと古いので、たぶんいまのところパッチするしかない。

【追記】 対応されました。
https://metacpan.org/release/BLOONIX/Log-Handler-0.90

サイト内検索