引数が間違っているから異常終了するぜ!というコーディングは、Javaだと例外を投げればいいが、C言語だとexit()を呼ぶことが多いと思う。
で、「exit()することを確認するテスト」をCutterで実施する方法を考えてみた。
C言語はマクロを使えるので、exit()をlongjmp()に置き換えてしまえ、という荒業(笑)
C言語のマクロはほんと強力だわ^^;
ただ、setjmp/longjmpは、使い方を誤ると訳の分からない状態になる。
Cutterだとテストの関数をたくさん作ることになるので、それぞれでちゃんとsetjmp()しないと、あるテストでexit(longjmp)したら“別のテスト時にsetjmpした場所”へ跳んでしまった、なんて事が起こりうる。もしそうなったらチンプンカンプンな結果になるので、テストのデバッグをしないといけなくなる。大変ですぜーorz
※コメント投稿者のブログIDはブログ作成者のみに通知されます