2013-07-29 28 views
-1

您是否聽說過自動C代碼生成器?如何自動調用C源代碼中的所有函數

我必須做一種奇怪的API功能研究,其中至少包括每個函數執行的一次嘗試。它可能會導致粉碎,分段錯誤 - 無論如何。我只需要註冊每個函數調用。

,所以我就用

ctags -x --c-kinds=f *.c 

我可以使用任何工具來生成代碼調用每個人的來源功能的長列表(幾百個)?非常感謝。

UPD:謝謝你所有的答案。

+2

這些函數不會有一些參數,你將如何生成它們?看起來你想要自動化測試,但是試圖在沒有真正創建測試的情況下進行測試。 –

+0

也許你可以編寫一些'awk'或Python腳本傳送到'ctags'輸出? –

回答

1

您也可以考慮自定義GCC編譯器,例如與MELT擴展名(例如,將在一些定製編譯期間生成測試)。然後,您甚至可以定義自己的#pragma__attribute__以對這些函數進行參數化(啓用它們的自動測試,爲測試等提供默認參數)。

但是,我不確定這是單元測試的正確方法。有很多單元測試框架(但我對它們不是很熟悉)。

1

也許類似autoconf可以幫助你:as described here。特別檢查AC_CHECK_FUNCS。 Autoconf創建小程序來測試註冊函數的存在。

+0

謝謝你,好主意,但你確定Autoconf真的試圖調用函數,不僅檢查小程序是否剛建好? –

相關問題