1 package kotlinx.coroutines.debug.junit4 2 3 import kotlinx.coroutines.debug.* 4 import org.junit.runner.* 5 import org.junit.runners.model.* 6 import java.util.concurrent.* 7 8 internal class CoroutinesTimeoutStatement( 9 private val testStatement: Statement, 10 private val testDescription: Description, 11 private val testTimeoutMs: Long, 12 private val cancelOnTimeout: Boolean = false 13 ) : Statement() { 14 evaluatenull15 override fun evaluate() { 16 try { 17 runWithTimeoutDumpingCoroutines(testDescription.methodName, testTimeoutMs, cancelOnTimeout, 18 { TestTimedOutException(testTimeoutMs, TimeUnit.MILLISECONDS) }) 19 { 20 testStatement.evaluate() 21 } 22 } finally { 23 DebugProbes.uninstall() 24 } 25 } 26 } 27