diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/live/ZeLastPackageTest.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/live/ZeLastPackageTest.kt index 06d471479d37..6a826a40e8a2 100644 --- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/live/ZeLastPackageTest.kt +++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/live/ZeLastPackageTest.kt @@ -3,14 +3,12 @@ package org.jetbrains.kotlin.idea.perf.live import junit.framework.TestCase import org.jetbrains.kotlin.idea.perf.util.uploadAggregateResults -import org.jetbrains.kotlin.test.KotlinRoot -import java.io.File /** * It has to be the last package test, see `com.intellij.TestCaseLoader#getClasses` */ class ZeLastPackageTest: TestCase() { fun test() { - uploadAggregateResults(File(KotlinRoot.REPO, "out")) + uploadAggregateResults() } } \ No newline at end of file diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/synthetic/ZeLastPackageTest.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/synthetic/ZeLastPackageTest.kt index a9efe54374c4..9707fbe1f2b8 100644 --- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/synthetic/ZeLastPackageTest.kt +++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/synthetic/ZeLastPackageTest.kt @@ -3,14 +3,12 @@ package org.jetbrains.kotlin.idea.perf.synthetic import junit.framework.TestCase import org.jetbrains.kotlin.idea.perf.util.uploadAggregateResults -import org.jetbrains.kotlin.test.KotlinRoot -import java.io.File /** * It has to be the last package test, see `com.intellij.TestCaseLoader#getClasses` */ class ZeLastPackageTest: TestCase() { fun test() { - uploadAggregateResults(File(KotlinRoot.REPO, "out")) + uploadAggregateResults() } } \ No newline at end of file diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/util/aggregateResults.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/util/aggregateResults.kt index b9916c8e4067..87f0be27a703 100644 --- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/util/aggregateResults.kt +++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/util/aggregateResults.kt @@ -2,14 +2,22 @@ package org.jetbrains.kotlin.idea.perf.util +import org.jetbrains.kotlin.test.KotlinRoot import java.io.File fun main(args: Array) { uploadAggregateResults(File(args[0])) } -internal fun uploadAggregateResults(folder: File) { - val groupBy = folder.listFiles() +internal fun uploadAggregateResults() { + val parent = System.getProperty("idea.home.path")?.let(::File) ?: KotlinRoot.REPO + uploadAggregateResults(File(parent, "out")) +} + +private fun uploadAggregateResults(folder: File) { + val listFiles = folder.listFiles() ?: emptyArray() + logMessage { "uploadAggregateResults from $folder ${listFiles.joinToString { it.absolutePath }}" } + val groupBy = listFiles .filter { it.length() > 0 && it.name.startsWith("stats-") && it.extension == "json" } .groupBy { it.name.replace("stats-", "").split("_")[0] } @@ -17,7 +25,7 @@ internal fun uploadAggregateResults(folder: File) { files.map(File::loadBenchmark).writeCSV(n) } - groupBy.forEach { (k, v) -> + groupBy.forEach { (_, v) -> if (v.isEmpty()) return@forEach val benchmarks = v.map(File::loadBenchmark) diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/HighlightWholeProjectPerformanceTest.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/HighlightWholeProjectPerformanceTest.kt index 6cadc29988de..4205460f0a8e 100644 --- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/HighlightWholeProjectPerformanceTest.kt +++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/HighlightWholeProjectPerformanceTest.kt @@ -50,89 +50,82 @@ class HighlightWholeProjectPerformanceTest : UsefulTestCase() { val projectSpecs = projectSpecs() logMessage { "projectSpecs: $projectSpecs" } - try { - for (projectSpec in projectSpecs) { - val projectName = projectSpec.name - val projectPath = projectSpec.path + for (projectSpec in projectSpecs) { + val projectName = projectSpec.name + val projectPath = projectSpec.path - val suiteName = - listOfNotNull("allKtFilesIn", "emptyProfile".takeIf { emptyProfile }, projectName) - .joinToString(separator = "-") - suite(suiteName = suiteName) { - app { - ExpressionsOfTypeProcessor.prodMode() - warmUpProject() + val suiteName = + listOfNotNull("allKtFilesIn", "emptyProfile".takeIf { emptyProfile }, projectName) + .joinToString(separator = "-") + suite(suiteName = suiteName) { + app { + ExpressionsOfTypeProcessor.prodMode() + warmUpProject() - with(config) { - warmup = warmUpIterations - iterations = numberOfIterations - fastIterations = true - } + with(config) { + warmup = warmUpIterations + iterations = numberOfIterations + fastIterations = true + } - try { - project(ExternalProject.autoOpenProject(projectPath), refresh = true) { - profile(if (emptyProfile) EmptyProfile else DefaultProfile) + try { + project(ExternalProject.autoOpenProject(projectPath), refresh = true) { + profile(if (emptyProfile) EmptyProfile else DefaultProfile) - val ktFiles = mutableSetOf() - project.runReadActionInSmartMode { - val projectFileIndex = ProjectFileIndex.getInstance(project) - val modules = mutableSetOf() - val ktFileProcessor = { ktFile: VirtualFile -> - if (projectFileIndex.isInSourceContent(ktFile)) { - ktFiles.add(ktFile) - } - true + val ktFiles = mutableSetOf() + project.runReadActionInSmartMode { + val projectFileIndex = ProjectFileIndex.getInstance(project) + val modules = mutableSetOf() + val ktFileProcessor = { ktFile: VirtualFile -> + if (projectFileIndex.isInSourceContent(ktFile)) { + ktFiles.add(ktFile) } - FileTypeIndex.processFiles( - KotlinFileType.INSTANCE, - ktFileProcessor, - GlobalSearchScope.projectScope(project) - ) - modules + true } + FileTypeIndex.processFiles( + KotlinFileType.INSTANCE, + ktFileProcessor, + GlobalSearchScope.projectScope(project) + ) + modules + } - logStatValue("number of kt files", ktFiles.size) - val filesToProcess = - limitedFiles( - ktFiles, - percentOfFiles = percentOfFiles, - maxFilesPerPart = maxFilesPerPart, - minFileSize = minFileSize - ) - logStatValue("limited number of kt files", filesToProcess.size) + logStatValue("number of kt files", ktFiles.size) + val filesToProcess = + limitedFiles( + ktFiles, + percentOfFiles = percentOfFiles, + maxFilesPerPart = maxFilesPerPart, + minFileSize = minFileSize + ) + logStatValue("limited number of kt files", filesToProcess.size) - filesToProcess.forEach { - logMessage { "${project.relativePath(it)} fileSize: ${Files.size(it.toNioPath())}" } - } + filesToProcess.forEach { + logMessage { "${project.relativePath(it)} fileSize: ${Files.size(it.toNioPath())}" } + } - filesToProcess.forEachIndexed { idx, file -> - logMessage { "${idx + 1} / ${filesToProcess.size} : ${project.relativePath(file)} fileSize: ${Files.size(file.toNioPath())}" } + filesToProcess.forEachIndexed { idx, file -> + logMessage { "${idx + 1} / ${filesToProcess.size} : ${project.relativePath(file)} fileSize: ${Files.size(file.toNioPath())}" } - try { - fixture(file).use { - measure>(it.fileName, clearCaches = clearPsiCaches) { - test = { - highlight(it) - } + try { + fixture(file).use { + measure>(it.fileName, clearCaches = clearPsiCaches) { + test = { + highlight(it) } } - } catch (e: Exception) { - // nothing as it is already caught by perfTest } + } catch (e: Exception) { + // nothing as it is already caught by perfTest } } - } catch (e: Exception) { - e.printStackTrace() - // nothing as it is already caught by perfTest } + } catch (e: Exception) { + e.printStackTrace() + // nothing as it is already caught by perfTest } } } - } finally { - pathToResource("").takeIf { it.exists() }?.let { - logMessage { "uploadAggregateResults: ${it.absolutePath}" } - uploadAggregateResults(it) - } } } diff --git a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/ZeLastPackageTest.kt b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/ZeLastPackageTest.kt index 2054e9dad667..09565823c54d 100644 --- a/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/ZeLastPackageTest.kt +++ b/plugins/kotlin/performance-tests/test/org/jetbrains/kotlin/idea/perf/whole/ZeLastPackageTest.kt @@ -3,14 +3,12 @@ package org.jetbrains.kotlin.idea.perf.whole import junit.framework.TestCase import org.jetbrains.kotlin.idea.perf.util.uploadAggregateResults -import org.jetbrains.kotlin.test.KotlinRoot -import java.io.File /** * It has to be the last package test, see `com.intellij.TestCaseLoader#getClasses` */ class ZeLastPackageTest: TestCase() { fun test() { - uploadAggregateResults(File(KotlinRoot.REPO, "out")) + uploadAggregateResults() } } \ No newline at end of file