cmocka免费操作和捕获异常

时间:2015-06-04 19:47:42

标签: c unit-testing testing cmocka

我开始使用cmocka库进行冒险,我有两个问题。

  1. 是否可以确定free()操作是否正确?我的意思是,我想测试清理树结构的功能。我读过有关test_free()的内容,但说实话,我并不理解背后的想法。

  2. 第二件事是捕获标准库异常的情况。我知道函数expect_assert_failure,但是如何使用它?例如,我会做一些会导致分段错误的事情,但我还是希望通过测试。

2 个答案:

答案 0 :(得分:1)

我建议用valgrind做一个额外的测试。

false

如果没有选项,valgrind将始终返回测试程序返回的相同退出代码。这样,如果你的测试程序成功,但是valgrind的内存检查显示错误,它将返回1表示错误。

答案 1 :(得分:1)

您需要添加

#define UNIT_TESTING 1
在您包含cmocka.h标头文件之前

,然后mallocrealloc并免费获取被覆盖,并会警告您内存泄漏。

expect_assert_failure()用于检查assert()条件是否真的被击中。