mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-02-04 23:39:07 +07:00
[TestFramework] new: added log with awaited project configuration operations
GitOrigin-RevId: 3019d2b041b095bd61d91c5d22145d29ebad49d9
This commit is contained in:
committed by
intellij-monorepo-bot
parent
731e97a77c
commit
7945329ed7
@@ -126,7 +126,7 @@ public abstract class ProjectWizardTestCase<T extends AbstractProjectWizard> ext
|
||||
|
||||
UIUtil.dispatchAllInvocationEvents();
|
||||
IndexingTestUtil.waitUntilIndexesAreReady(myCreatedProject);
|
||||
TestObservation.waitForConfiguration(TimeUnit.MINUTES.toMillis(10), myCreatedProject, LOG::debug);
|
||||
TestObservation.waitForConfiguration(TimeUnit.MINUTES.toMillis(10), myCreatedProject);
|
||||
|
||||
return myCreatedProject;
|
||||
}
|
||||
@@ -140,7 +140,7 @@ public abstract class ProjectWizardTestCase<T extends AbstractProjectWizard> ext
|
||||
|
||||
UIUtil.dispatchAllInvocationEvents();
|
||||
IndexingTestUtil.waitUntilIndexesAreReady(project);
|
||||
TestObservation.waitForConfiguration(TimeUnit.MINUTES.toMillis(10), project, LOG::debug);
|
||||
TestObservation.waitForConfiguration(TimeUnit.MINUTES.toMillis(10), project);
|
||||
|
||||
return createdModule;
|
||||
}
|
||||
|
||||
@@ -13,31 +13,31 @@ import kotlinx.coroutines.TimeoutCancellationException
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withTimeout
|
||||
import org.jetbrains.concurrency.asPromise
|
||||
import java.util.function.Consumer
|
||||
import java.util.*
|
||||
import kotlin.time.Duration
|
||||
import kotlin.time.Duration.Companion.milliseconds
|
||||
|
||||
object TestObservation {
|
||||
|
||||
@JvmStatic
|
||||
@JvmOverloads
|
||||
fun waitForConfiguration(timeout: Long, project: Project, messageCallback: Consumer<String>? = null) {
|
||||
waitForConfiguration(timeout.milliseconds, project, messageCallback?.let { it::accept })
|
||||
fun waitForConfiguration(timeout: Long, project: Project) {
|
||||
waitForConfiguration(timeout.milliseconds, project)
|
||||
}
|
||||
|
||||
fun waitForConfiguration(timeout: Duration, project: Project, messageCallback: ((String) -> Unit)? = null) {
|
||||
fun waitForConfiguration(timeout: Duration, project: Project) {
|
||||
val coroutineScope = CoroutineScopeService.getCoroutineScope(project)
|
||||
val job = coroutineScope.launch {
|
||||
awaitConfiguration(timeout, project, messageCallback)
|
||||
awaitConfiguration(timeout, project)
|
||||
}
|
||||
val promise = job.asPromise()
|
||||
promise.waitForPromiseAndPumpEdt(Duration.INFINITE)
|
||||
}
|
||||
|
||||
suspend fun awaitConfiguration(timeout: Duration, project: Project, messageCallback: ((String) -> Unit)? = null) {
|
||||
suspend fun awaitConfiguration(timeout: Duration, project: Project) {
|
||||
val operationLog = StringJoiner("\n")
|
||||
try {
|
||||
withTimeout(timeout) {
|
||||
Observation.awaitConfiguration(project, messageCallback)
|
||||
Observation.awaitConfiguration(project, operationLog::add)
|
||||
}
|
||||
}
|
||||
catch (_: TimeoutCancellationException) {
|
||||
@@ -45,6 +45,9 @@ object TestObservation {
|
||||
val threadDump = dumpThreadsToString()
|
||||
System.err.println("""
|
||||
|The waiting takes too long. Expected to take no more than $timeout ms.
|
||||
|------ Operation log begin ------
|
||||
|$operationLog
|
||||
|------- Operation log end -------
|
||||
|------- Thread dump begin -------
|
||||
|$threadDump
|
||||
|-------- Thread dump end --------
|
||||
|
||||
Reference in New Issue
Block a user