isbs_doc/release/ipg/. ./ut 跑例(24.4.15)
ut 测试不通过
在 isbs_doc 文件夹 git 分支 release/ipg 中对 ut 进行跑例测试
- 通过 git clone isbs_doc 文件夹到本地
- 切换到 release/ipg 分支
- 在 #164 中找到关于 cmocka 单元测试的 ut 文件夹
- 在终端 MSYS2-Mingw64 直接切换到该目录下
- 观察到目录下有完整的 makefile 文件,故选择直接编译
make all
make run
make report
- 跑例不通过,可以看到
make run
后有不正常的 log 输出,并且在make report
中无法找到*.gcda
文件 make clean
后重新编译,仍旧无法通过
ut 测试不通过故障原因
未知
ut 测试不通过解决方法
- 将
ut
文件夹复制到其他目录下(仅ut
) - 直接编译
make all
make run
make report
- 编译通过,正常输出
*.html
文件
cmocka/example 跑例(24.4.15)
assert_macro_test 测试不通过
assert_macro_test 跑例,使用 gcc assert_macro_test.c -lcmocka
显示有 undefined reference
错误
但奇怪的是,用同样的方法对 calculator_test.c
编译能够通过
assert_macro_test 测试不通过故障原因
这就是最典型的
undefined reference
错误,因为在链接时发现找不到某个函数的实现文件
参考 https://blog.csdn.net/aiwoziji13/article/details/7330333
assert_macro_test 测试不通过解决方法
cmocka/tests 跑例(24.4.15)
test_returns 测试不通过
test_returns 跑例,使用 gcc test_returns.c -lcmocka
显示有 #include "config.h"
错误,查找 build
目录下存在 config.h
文件,将该文件复制到测试目录下。继续 gcc test_returns.c -lcmocka
,显示有 #include <cmocka_private.h>
错误,重复上述方法,复制 cmocka_private.h
文件,但编译不通过。
test_returns 测试不通过故障原因
头文件与库文件编译区别
assert_macro_test 测试不通过解决方法
方法1:将库文件格式改成头文件格式
方法2:在 D:/MSYS2/mingw64/include/
目录下添加该库文件