ユニットパスのテストでエラーが発生した場合の最良の方法は、malloc()
ですか?あなたは失敗したmalloc()のユニットテスト
thingy *my_thingy = malloc(sizeof(thingy));
if (my_thingy == NULL) {
fprintf(stderr, "We're so screwed!\n");
exit(EXIT_FAILURE);
}
ような何かをやっているので、ほとんどの場合、それはおそらく問題ではありませんが、あなたは、キャッシュまたは何のためにいくつかの余分なものを割り当てられましたので、いくつかの事例では、あなたは、死ぬ以外の選択肢があり、そしてあなたそのメモリを再利用することができます。
しかし、失敗したmalloc()
から回復しようとするケースでは、かなり珍しいコードパスで手間がかかりやすく、エラーが発生する可能性があるため、テストが特に重要になります。実際にこれをどうやって行うのですか?
malloc()をハイジャックして、時々0を返すことができます。 –
'printf'のような多くのライブラリ関数は、プロセスのメモリが不足していると失敗する可能性があります。 – ephemient
@ephemient 'fprintf()'が正しく処理しても大丈夫です。 ;-) –