我开始了我的cmocka库的冒险,我有两个问题。
-
是否有可能找出free()操作是否正确?我的意思是,我想测试的是清理树形结构的函数。我读过test_free(),但老实说,我不理解背后的想法。
-
第二件事是捕获标准库异常的情况。我知道函数
expect_assert_failure
,但如何使用它呢?例如,我想做一些会抛出分割错误的事情,但我还是想通过测试。
你需要添加
#define UNIT_TESTING 1
在您包含cmocka.h
头文件之前,然后malloc
, realloc
和free被覆盖,并将警告您内存泄漏。
expect_assert_failure()
if用于检查是否真的满足assert()
条件。
我建议用valgrind做一个额外的测试。
valgrind --error-exitcode=1 ./test
如果没有选项,valgrind将始终返回与测试程序返回的相同的退出代码。这样,如果您的测试程序成功,但是valgrind的内存检查显示错误,它将返回1来指示错误。