7
最近,我需要爲一個傳統程序添加單元測試。有很多宏的程序的單元測試
但在裏面,有很多的宏,像
#ifdef CONFIG_XXX
do xxx
#endif
#ifdef CONFIG_YYY
do yyy
#endif
目前,通用程序路徑是由單元測試覆蓋。所以,我想添加測試來覆蓋內部的宏部件(不同的程序路徑)。
似乎我每次都需要編譯和運行我的程序,並且如何設計宏的組合來覆蓋程序路徑並減少編譯時間並非易事。因此,我打算將所有與硬件相關的代碼移動到arch文件夾中,現在,宏已從c文件移動到makefile,但每次仍需要編譯某些宏以獲取UT工作。
有沒有人有過這方面的經驗?
感謝您的意見。
你能否考慮用'if(config.XXX)'替換每個宏?這樣,你就不需要重新編譯了。 –
我不能,因爲宏和if語句的區別。 –
我的意思是,重構你的代碼以'config'結構作爲輸入。這個結構可以有一組標誌變量,每一個都對應於你的一個宏。 –