我开始使用cmocka库进行冒险,我有两个问题。
是否可以确定free()操作是否正确?我的意思是,我想测试清理树结构的功能。我读过有关test_free()的内容,但说实话,我并不理解背后的想法。
第二件事是捕获标准库异常的情况。我知道函数expect_assert_failure
,但是如何使用它?例如,我会做一些会导致分段错误的事情,但我还是希望通过测试。
答案 0 :(得分:1)
我建议用valgrind做一个额外的测试。
false
如果没有选项,valgrind将始终返回测试程序返回的相同退出代码。这样,如果你的测试程序成功,但是valgrind的内存检查显示错误,它将返回1表示错误。
答案 1 :(得分:1)
您需要添加
#define UNIT_TESTING 1
在您包含cmocka.h
标头文件之前,然后malloc
,realloc
并免费获取被覆盖,并会警告您内存泄漏。
expect_assert_failure()
用于检查assert()
条件是否真的被击中。