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 8c1b7cb471c..a19a0ee38c6 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/AbstractPerformanceProjectsTest.kt @@ -238,15 +238,24 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { fileName: String, marker: String, insertString: String, + highlightFileBeforeStartTyping: Boolean = false, surroundItems: String = "\n", lookupElements: List, typeAfterMarker: Boolean = true, revertChangesAtTheEnd: Boolean = true, note: String = "" ) = perfTypeAndAutocomplete( - project(), stats, fileName, marker, insertString, surroundItems, - lookupElements = lookupElements, typeAfterMarker = typeAfterMarker, - revertChangesAtTheEnd = revertChangesAtTheEnd, note = note + project = project(), + stats = stats, + fileName = fileName, + marker = marker, + insertString = insertString, + highlightFileBeforeStartTyping = highlightFileBeforeStartTyping, + surroundItems = surroundItems, + lookupElements = lookupElements, + typeAfterMarker = typeAfterMarker, + revertChangesAtTheEnd = revertChangesAtTheEnd, + note = note ) fun perfTypeAndAutocomplete( @@ -255,6 +264,7 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { fileName: String, marker: String, insertString: String, + highlightFileBeforeStartTyping: Boolean = false, surroundItems: String = "\n", lookupElements: List, typeAfterMarker: Boolean = true, @@ -272,7 +282,12 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { typeAfterMarker, surroundItems, insertString, - setupBlock = {}, + setupBeforeTypingBlock = { fixture -> + if (highlightFileBeforeStartTyping) { + fixture.doHighlighting() + } + }, + setupAfterTypingBlock = {}, testBlock = { fixture: Fixture -> fixture.complete() }, @@ -308,7 +323,8 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { typeAfterMarker, surroundItems, insertString, - setupBlock = { fixture: Fixture -> + setupBeforeTypingBlock = {}, + setupAfterTypingBlock = { fixture: Fixture -> fileText = fixture.document.text }, testBlock = { fixture: Fixture -> @@ -333,7 +349,8 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { typeAfterMarker: Boolean, surroundItems: String, insertString: String, - setupBlock: (Fixture) -> Unit, + setupBeforeTypingBlock: (Fixture) -> Unit, + setupAfterTypingBlock: (Fixture) -> Unit, testBlock: (Fixture) -> V, tearDownCheck: (Fixture, V?) -> Unit, revertChangesAtTheEnd: Boolean @@ -371,9 +388,9 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() { } editor.caretModel.moveToOffset(editor.caretModel.offset - 2) } - + setupBeforeTypingBlock(fixture) fixture.type(insertString) - setupBlock(fixture) + setupAfterTypingBlock(fixture) } test { it.value = testBlock(fixture) diff --git a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/common/AbstractWholeProjectPerformanceComparisonTest.kt b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/common/AbstractWholeProjectPerformanceComparisonTest.kt index d6f9e2780e2..06595c919ab 100644 --- a/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/common/AbstractWholeProjectPerformanceComparisonTest.kt +++ b/idea/performanceTests/test/org/jetbrains/kotlin/idea/perf/common/AbstractWholeProjectPerformanceComparisonTest.kt @@ -48,6 +48,7 @@ abstract class AbstractWholeProjectPerformanceComparisonTest : AbstractPerforman fileName = FILE_NAMES.REGEXP_FILE_LINK_FILTER, marker = "fun applyFilter(line: String, entireLength: Int): Filter.Result? {", insertString = "val a = l", + highlightFileBeforeStartTyping = true, lookupElements = listOf("line"), note = "in-method completion" ) @@ -57,6 +58,7 @@ abstract class AbstractWholeProjectPerformanceComparisonTest : AbstractPerforman fileName = FILE_NAMES.NAME_RESOLUTION, marker = "private data class ImplicitStdlibCrate(val name: String, val crateRoot: RsFile)", insertString = "\nval a = ", + highlightFileBeforeStartTyping = true, lookupElements = listOf("processAssocTypeVariants"), note = "top-level completion" ) @@ -65,6 +67,7 @@ abstract class AbstractWholeProjectPerformanceComparisonTest : AbstractPerforman stat, fileName = FILE_NAMES.NAME_RESOLUTION, marker = "testAssert { cameFrom.context == scope }", + highlightFileBeforeStartTyping = true, insertString = "\nval a = s", lookupElements = listOf("scope"), note = "in big method in big file completion"