xref: /aosp_15_r20/external/leakcanary2/shark-test/src/main/kotlin/shark/HeapDumpRule.kt (revision d9e8da70d8c9df9a41d7848ae506fb3115cae6e6)
1 package shark
2 
3 import org.junit.rules.ExternalResource
4 import org.junit.rules.TemporaryFolder
5 import java.io.File
6 import java.io.IOException
7 import java.util.UUID
8 
9 class HeapDumpRule : ExternalResource() {
10   private val temporaryFolder = TemporaryFolder()
11 
12   @Throws(Throwable::class)
beforenull13   override fun before() {
14     temporaryFolder.create()
15   }
16 
afternull17   override fun after() {
18     temporaryFolder.delete()
19   }
20 
21   @Throws(IOException::class)
dumpHeapnull22   fun dumpHeap(): File {
23     val hprof = File(temporaryFolder.root, "heapDump" + UUID.randomUUID() + ".hprof")
24     JvmTestHeapDumper.dumpHeap(hprof.absolutePath)
25     return hprof
26   }
27 }
28