2011-06-14 104 views
3

我正在修復此刻崩潰的JNI調用。爲了成爲一名優秀的TDD實踐者,我創建了一個JUnit測試來複制這個問題,它的確令人讚歎。如何爲崩潰的JNI調用編寫JUnit測試?

但是,通過崩潰,JNI調用不會返回。是否有可能編寫一個報告JNI崩潰失敗的JUnit測試?

回答

3

哎喲,如果你的JNI崩潰的JVM,那麼這肯定會很困難,從JUnit來測試。例如,你不能爲SIGSEGV掛上一個信號處理程序,JVM就會死掉。

如果是我,我會改變這一點,並創建一個簡單的Java類與Main調用崩潰本機代碼,並在我的junit測試中,我會執行一個新的Java運行時實例運行使用Runtime#exec的包裝類。

然後,您可以等待結果進程完成並檢查其返回代碼 - 如果它不爲零,則執行時出現問題。