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