0

私はcmockaライブラリーから冒険を始めましたが、2 つの質問があります。

  1. free() 操作が正しく行われたかどうかを確認することはできますか? つまり、ツリー構造をクリーンアップする関数をテストしたいと思います。test_free() について読んだことがありますが、正直なところ、その背後にある考え方がわかりません。

  2. 2 つ目は、標準ライブラリの例外をキャッチする場合です。function については知っていますexpect_assert_failureが、どのように使用しますか? たとえば、セグメンテーション違反をスローする何かをしたいのですが、とにかくテストに合格したいと思います。

4

2 に答える 2

2

追加する必要があります

#define UNIT_TESTING 1

cmocka.hヘッダー ファイルをインクルードする前にmallocreallocと free が上書きされ、メモリ リークについて警告が表示されます。

expect_assert_failure()assert()条件が本当にヒットしたことを確認する場合。

于 2015-07-03T10:22:40.133 に答える
1

valgrind で追加のテストを行うことをお勧めします。

valgrind --error-exitcode=1 ./test

オプションを指定しないと、valgrind は常に、テスト プログラムによって返されるのと同じ終了コードを返します。このようにして、テスト プログラムが成功しても、valgrind のメモリ チェックでエラーが見つかった場合、エラーを示すために 1 が返されます。

于 2015-06-05T16:09:46.007 に答える