1

有沒有人在嵌入式設備中使用check作爲單元測試框架,這也需要交叉編譯?在嵌入式設備中使用檢查測試單元框架?

這是一個好主意,還是應該使用別的東西(例如embunit或類似的東西)?

如果是這樣,我應該如何編寫Makefile.ams和configure.ac?我沒有使用autotools開始,所以所有這些交叉編譯的東西肯定沒有幫助...

我可以簡單地跳過所有的實際配置檢查,因爲我只在一個或兩個環境編譯,但我需要編譯檢查目標?我無法從說明中瞭解如何將實際框架鏈接到我的測試代碼。

什麼是我需要的最小文件?這些例子可以完成所有的配置工作,但我無法弄清楚我可以省掉什麼。

回答

1

據我所見,「check」使用fork()系統調用。如果您不在嵌入式目標上使用基於UNIX的操作系統,則會遇到問題。在第2.1章的check manual page中,您可以找到其他單元測試框架的完美概述。大多數框架都依賴於某些操作系統調用或某些標準庫函數,這些函數可能不會出現在嵌入式目標上。

我發現宏表達式單元測試框架MAESTRA在嵌入式平臺上非常有用。幾年前在embedded.com上有一篇有趣的文章:Doing C code unit testing on a shoestring

但是,如果您正在處理大量第三方代碼或現有代碼庫,MAESTRA可能不是最佳選擇,因爲它強制執行代碼檢測工作的特殊編碼標準。這可能與您公司自己的編碼標準相沖突。