就在前幾天,我開始研究一個名爲check的單元測試框架, ,我打算在Linux下對c代碼進行測試。與Valgrind一起運行單元測試是否矯枉過正?
現在檢查和一些精心設計的代碼和一些測試代碼可以幫助我確認 的基本功能是正確的, 我的意思是這是很容易的,只是看看,並響應變量後面再 決定是否一個函數是否正確。
但是,假設我想測試一個動態存儲器結構,其中有很多malloc和free, ,事實證明我可以將數據放入並再次獲取正確的數據。 但是這並不能證明我沒有在這個過程中破壞一些內存,假設我忘了釋放內存的一半並丟失了指針(一個經典的memleak)。該代碼可能會通過大部分單元測試。
所以現在的問題是: 運行整個單元測試代碼與Valgrind並讓他檢測任何malloc/free問題是一個好主意? (或者在類似電子圍欄編譯?)
感覺就像是一個不錯的主意,但我不知道我得到自己到這裏.....
感謝 約翰
更新:感謝道格拉斯和喬納森, 好像這是一個好主意,是我應該繼續:-)
更新: Valgrind是一個有趣的工具,然而我發現做 的第一個memleak是在測試框架中,而不是我自己的代碼(雖然很有趣)。 因此,其餘部分的提示是在將自己的代碼顛倒之前,驗證您使用的單元測試框架沒有泄漏。 我的例子中只有一個空的測試用例, ,因爲除此之外,單元測試框架還在運行。
還有`--xml = yes`和`--xml-file =`,這可以很容易地自動讀取結果。 –
2015-12-14 06:39:14