FIR IDE: highlight file before completion in perf test

This commit is contained in:
Ilya Kirillov
2021-01-12 19:53:56 +01:00
parent 49a4ec7f92
commit 211ddd307c
2 changed files with 28 additions and 8 deletions
@@ -238,15 +238,24 @@ abstract class AbstractPerformanceProjectsTest : UsefulTestCase() {
fileName: String,
marker: String,
insertString: String,
highlightFileBeforeStartTyping: Boolean = false,
surroundItems: String = "\n",
lookupElements: List<String>,
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<String>,
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)
@@ -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"