ファイルに非同期的に書き込むロギング モジュールをテストしようとしています... 単体テストでは、ログを読み取って、書き込まれたメッセージが期待どおりであることを確認します。ただし、任意の時間ファイルを待機するためにスリープしても、モジュールによる非同期書き込みは、単体テストが終了するまでファイルに到達しないことがわかりました。aio_close の横に print ステートメントを追加して、最後までファイルが閉じられないことを確認しました。これをテストするにはどうすればよいですか?
#approximately the way this works:
aio_open($pathname,
$flags,
$mode,
sub
{
my $fh = shift;
aio_write($fh,
0,
length($log),
$log,
0,
sub
{
print "here";
aio_close($fh, sub {});
});
});