cmocka自由运行和捕获异常
cmocka free operation and catching exceptions
我从 cmocka 图书馆开始了我的冒险,我有两个问题。
是否可以查看 free() 操作是否正确?我的意思是,我想测试清理树结构的功能。我读过 test_free(),但老实说我不明白背后的想法。
第二个是捕获标准库异常的case。我知道函数 expect_assert_failure
,但如何使用它?例如,我会做一些会引发分段错误的事情,但我还是想通过测试。
我建议只用 valgrind 做一个额外的测试。
valgrind --error-exitcode=1 ./test
没有选项 valgrind 将始终 return 相同的退出代码 return 由您的测试程序编辑。这样,如果您的测试程序成功,但 valgrind 的内存检查显示错误,它将 return 1 指示错误。
您需要添加
#define UNIT_TESTING 1
在包含 cmocka.h
头文件之前,malloc
、realloc
和 free 将被覆盖,并会警告您内存泄漏。
expect_assert_failure()
if 用于检查 assert()
条件是否确实满足。
我从 cmocka 图书馆开始了我的冒险,我有两个问题。
是否可以查看 free() 操作是否正确?我的意思是,我想测试清理树结构的功能。我读过 test_free(),但老实说我不明白背后的想法。
第二个是捕获标准库异常的case。我知道函数
expect_assert_failure
,但如何使用它?例如,我会做一些会引发分段错误的事情,但我还是想通过测试。
我建议只用 valgrind 做一个额外的测试。
valgrind --error-exitcode=1 ./test
没有选项 valgrind 将始终 return 相同的退出代码 return 由您的测试程序编辑。这样,如果您的测试程序成功,但 valgrind 的内存检查显示错误,它将 return 1 指示错误。
您需要添加
#define UNIT_TESTING 1
在包含 cmocka.h
头文件之前,malloc
、realloc
和 free 将被覆盖,并会警告您内存泄漏。
expect_assert_failure()
if 用于检查 assert()
条件是否确实满足。