2014-10-27 73 views
0

我在一個項目中使用Netty 4.0.x,其中一個核心獨立項目將創建ByteBuf緩衝區並將它們傳遞到客戶端代碼層,該層負責關閉緩衝區。有沒有辦法在Netty泄漏檢測時失敗自動化測試?

我在某些情況下發現了泄漏,我想用自動化測試覆蓋導致這些泄漏的代碼路徑,但Netty的ResourceLeakDetector似乎只報告日誌內部的泄漏。

有沒有辦法在發生這種泄漏事件時自動執行JUnit測試? (例如通過在ResourceLeakDetector中插入一些行爲)?

謝謝! PS:請記住,我的測試不會真正創建緩衝區,核心代碼(這是一個依賴項)的確如此。

回答

0

Netty's CI server leak build將表明如果檢測到泄漏,構建不穩定。我不確定這種機制,但它有可能(可能檢測到構建日誌中的泄漏消息)自動檢測。

請記住,當ByteBuf對象是GC時檢測到泄漏。因此,何時/何處檢測到泄漏可能遠離實際發生泄漏的時間/地點。 Netty確實包含了以有意義的方式訪問ByteBuf的地方,以幫助您追溯緩衝區最初分配的位置,以及潛在的可能負責釋放緩衝區的對象列表。

如果您對上述限制沒有問題,您可以爲ResourceLeakDetector增加一個例外情況以供私人使用。

相關問題