@kyanny's blog

My thoughts, my life. Views/opinions are my own.

TheSchwartz の worker とかのテストを書きたいが

まともに起動してジョブを処理するサイクルをやってくれてるかテストしようと思ってテストスクリプトの中で fork() してみたりしたけどうまくいかない。 TheSchwartz を素で使っているわけじゃなくてちょっとだけ自前実装をかぶせている感じなので、そこをテストしたいのだけど。

fork() した親プロセス側のブロックで $worker->work() 相当のことをやると、そこで無限ループに入ってしまうので、その下で wait() してさらに下で worker の処理結果をテストする、という部分までたどり着かない。

TheSchwartz::work_once を sub { exit } に無理矢理してしまう、というのをみつけてやってみたけど、そこでメインのプログラムのほうも exit してしまうのか、やっぱりその下までたどり着かない。