0

今日、私のテストの 1 つで、セグメンテーション違反を起こすコード/ライブラリが使用されていることがわかりました。私は C++ と CppUnit の Linux 環境で作業しています。

segfault に対してテストし、特定のテスト ケースの失敗として報告する CppUnit の関数の機能はありますか?

CppUnit では、例外に対してテストすることもできますが、私が求めていることは多すぎると思います! 私が見つけた唯一のものは、セクション How do I print debug info at this page hereです。

pyhon または perl のスクリプトから CppUnit 実行可能ファイルを実行し、コアが生成されているかどうかを確認することを考えていました。私が望むものを達成するためのより良い方法を知っていますか?

4

2 に答える 2

1

seg fault は、テストからゼロ以外の終了ステータスになります (Solaris では 139 だと思います)。単体テストを呼び出すために使用されているメソッドからこれをテストできますか?

于 2010-12-22T18:03:59.247 に答える
0

「セグメンテーション違反をテストし、特定のテスト ケースの失敗として報告する CppUnit の関数の機能はありますか?」

いいえ。Segfault は OS レベルの違反であり、キャッチすることはできません。(signal() iirc を使用して) 試しても、OS によって殺されることについては何もできません。

デバッガーを使用して、テスト プログラムをステップ実行する必要があります。

于 2010-12-22T17:27:37.817 に答える