C - cmocka自由操作和捕获异常



我开始了我的cmocka库的冒险,我有两个问题。

  1. 是否有可能找出free()操作是否正确?我的意思是,我想测试的是清理树形结构的函数。我读过test_free(),但老实说,我不理解背后的想法。

  2. 第二件事是捕获标准库异常的情况。我知道函数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来指示错误。

最新更新