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 測試不透過故障原因
標頭檔案與庫檔案編譯區別
參考 https://www.cnblogs.com/clwsec/p/
assert_macro_test 測試不透過解決方法
方法1:將庫檔案格式改成標頭檔案格式
方法2:在 D:/MSYS2/mingw64/include/
目錄下新增該庫檔案