Yash 2 その 295: テストの汎用性
結合テストを書くときはコードベースを分離しているといふ記事を見掛けた。Yash も、テスト対象が C で書かれてゐるのに対してテストはシェルスクリプトで書かれてゐるので、実質的にコードベースが分離されてゐると言へる。結果的に、yash のテストは再利用が可能となった。
結合テストを書くときはコードベースを分離しているといふ記事を見掛けた。Yash も、テスト対象が C で書かれてゐるのに対してテストはシェルスクリプトで書かれてゐるので、実質的にコードベースが分離されてゐると言へる。結果的に、yash のテストは再利用が可能となった。
POSIX の return 組込みの規定には昔から When return is executed in a trap action, the last command is considered to be the command that executed immediately preceding the trap action.
と書いてあって、exit 組込みと同様に、トラップ内で無引数で return 組込みを呼んだらトラップに入る直前の終了ステータスが return の終了ステータスになることになってゐる。が、果たしてこれは合理的な挙動なのだらうか?
ほとんどの POSIX シェルは、パイプラインを構成するそれぞれのコマンドをシェルの直接の子プロセスとして実行する。Yash 2 もさうなってゐる。が、実は必ずしもさうしなくてよい。
昨日 yash 2.51 をリリースした。
今回、シグナルハンドラーに関する多量の自動テストを追加したので、自動テストにかかる時間が従来よりかなり長くなってゐる。また、シグナルが絡む部分は OS 環境によってこちらが意図しない動作になることがあり、テストが正常に動作しないこともあるかと思はれる。ただし、何が原因なのかをそれぞれの環境でいちいち調べるのは骨が折れるので、特にこちらから個別の調査はしないつもり。