From 03d5fe8d6cd9fd9d93fa1cc68c82c68e7777ec8b Mon Sep 17 00:00:00 2001 From: Vladimir Dolzhenko Date: Sat, 4 Jul 2020 23:33:02 +0200 Subject: [PATCH] Add dispatchAllInvocationEvents to editor actions in perf tests --- ...bstractPerformanceJavaToKotlinCopyPasteConversionTest.kt | 5 +++-- ...AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest.kt | 5 +++++ .../kotlin/idea/perf/AbstractPerformanceProjectsTest.kt | 2 ++ .../idea/perf/AbstractPerformanceTypingIndentationTest.kt | 6 +++++- .../jetbrains/kotlin/idea/testFramework/projectRoutines.kt | 2 ++ .../kotlin/idea/testFramework/projectRoutines.kt.202 | 2 ++ 6 files changed, 19 insertions(+), 3 deletions(-) diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceJavaToKotlinCopyPasteConversionTest.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceJavaToKotlinCopyPasteConversionTest.kt index b94995caae9..a84994df334 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceJavaToKotlinCopyPasteConversionTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceJavaToKotlinCopyPasteConversionTest.kt @@ -9,13 +9,13 @@ import com.intellij.ide.highlighter.JavaFileType import com.intellij.openapi.actionSystem.IdeActions import com.intellij.openapi.application.runWriteAction import com.intellij.psi.PsiDocumentManager -import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.idea.KotlinFileType import org.jetbrains.kotlin.idea.configuration.ExperimentalFeatures import org.jetbrains.kotlin.idea.conversion.copy.AbstractJavaToKotlinCopyPasteConversionTest import org.jetbrains.kotlin.idea.conversion.copy.ConvertJavaCopyPasteProcessor import org.jetbrains.kotlin.idea.perf.Stats.Companion.WARM_UP import org.jetbrains.kotlin.idea.testFramework.commitAllDocuments +import org.jetbrains.kotlin.idea.testFramework.dispatchAllInvocationEvents import org.jetbrains.kotlin.test.InTextDirectivesUtils import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -61,6 +61,7 @@ abstract class AbstractPerformanceJavaToKotlinCopyPasteConversionTest(private va } test { myFixture.performEditorAction(IdeActions.ACTION_PASTE) + dispatchAllInvocationEvents() } tearDown { val document = myFixture.getDocument(myFixture.file) @@ -119,7 +120,7 @@ abstract class AbstractPerformanceJavaToKotlinCopyPasteConversionTest(private va private fun perfTestCore() { myFixture.performEditorAction(IdeActions.ACTION_PASTE) - UIUtil.dispatchAllInvocationEvents() + dispatchAllInvocationEvents() } private fun stats() = stats[j2kIndex()] diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest.kt index 68efedcb332..d239eabc522 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest.kt @@ -12,6 +12,7 @@ import com.intellij.psi.PsiFile import org.jetbrains.kotlin.idea.AbstractCopyPasteTest import org.jetbrains.kotlin.idea.perf.Stats.Companion.WARM_UP import org.jetbrains.kotlin.idea.test.KotlinWithJdkAndRuntimeLightProjectDescriptor +import org.jetbrains.kotlin.idea.testFramework.dispatchAllInvocationEvents import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -64,6 +65,8 @@ abstract class AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest : AbstractC fileEditorManager.setSelectedEditor(it.setUpValue!!.second.virtualFile, "") myFixture.performEditorAction(IdeActions.ACTION_PASTE) + + dispatchAllInvocationEvents() } tearDown { assertEquals("private val value: String? = n", it.setUpValue!!.second.text) @@ -98,6 +101,8 @@ abstract class AbstractPerformanceLiteralKotlinToKotlinCopyPasteTest : AbstractC fileEditorManager.setSelectedEditor(it.setUpValue!![1].virtualFile, "") myFixture.performEditorAction(IdeActions.ACTION_PASTE) + + dispatchAllInvocationEvents() } tearDown { KotlinTestUtils.assertEqualsToFile(expectedPath, it.setUpValue!![1].text) diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt index 216c3c89a93..7fa84667cf3 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt @@ -524,6 +524,8 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { val fixture2 = setUpValue.first[1] it.value = fixture1.performEditorAction(IdeActions.ACTION_COPY) && fixture2.performEditorAction(IdeActions.ACTION_PASTE) + + dispatchAllInvocationEvents() } } tearDown { diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceTypingIndentationTest.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceTypingIndentationTest.kt index 2b1c89ec0d5..0b65c16f9d2 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceTypingIndentationTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceTypingIndentationTest.kt @@ -7,10 +7,13 @@ package org.jetbrains.kotlin.idea.perf import com.intellij.application.options.CodeStyle import com.intellij.openapi.actionSystem.IdeActions +import com.intellij.openapi.application.impl.NonBlockingReadActionImpl import com.intellij.openapi.util.io.FileUtil import com.intellij.testFramework.EditorTestUtil +import com.intellij.util.ui.UIUtil import org.jetbrains.kotlin.formatter.FormatSettingsUtil import org.jetbrains.kotlin.idea.test.KotlinLightCodeInsightFixtureTestCase +import org.jetbrains.kotlin.idea.testFramework.dispatchAllInvocationEvents import org.jetbrains.kotlin.test.KotlinTestUtils import java.io.File @@ -42,7 +45,6 @@ abstract class AbstractPerformanceTypingIndentationTest : KotlinLightCodeInsight performanceTest { name(testName) stats(stats) - checkStability(false) // [VD] TODO: seems it could be some leakages here warmUpIterations(20) iterations(30) setUp { @@ -50,8 +52,10 @@ abstract class AbstractPerformanceTypingIndentationTest : KotlinLightCodeInsight } test { myFixture.performEditorAction(IdeActions.ACTION_EDITOR_ENTER) + dispatchAllInvocationEvents() } tearDown { + val actualTextWithCaret = StringBuilder(editor.document.text).insert( editor.caretModel.offset, EditorTestUtil.CARET_TAG diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt index cffdcbcdec7..2f59e29a227 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt @@ -13,6 +13,7 @@ import com.intellij.lang.LanguageAnnotators import com.intellij.lang.LanguageExtensionPoint import com.intellij.lang.annotation.Annotator import com.intellij.openapi.Disposable +import com.intellij.openapi.application.impl.NonBlockingReadActionImpl import com.intellij.openapi.editor.Document import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.fileEditor.FileDocumentManager @@ -66,6 +67,7 @@ fun enableHints(enable: Boolean) = fun dispatchAllInvocationEvents() { runInEdtAndWait { UIUtil.dispatchAllInvocationEvents() + NonBlockingReadActionImpl.waitForAsyncTaskCompletion(); } } diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt.202 b/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt.202 index d509f736420..d40d0ee9315 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt.202 +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/testFramework/projectRoutines.kt.202 @@ -14,6 +14,7 @@ import com.intellij.lang.LanguageAnnotators import com.intellij.lang.LanguageExtensionPoint import com.intellij.lang.annotation.Annotator import com.intellij.openapi.Disposable +import com.intellij.openapi.application.impl.NonBlockingReadActionImpl import com.intellij.openapi.editor.Document import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.fileEditor.FileDocumentManager @@ -68,6 +69,7 @@ fun enableHints(enable: Boolean) = fun dispatchAllInvocationEvents() { runInEdtAndWait { UIUtil.dispatchAllInvocationEvents() + NonBlockingReadActionImpl.waitForAsyncTaskCompletion(); } }