From 71f2c3cf9b7b4de669bb96a75445397a4d6c0c5d Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Thu, 26 Jan 2023 12:46:01 +0100 Subject: [PATCH] [K/N][perf] Move benchmarks related code to performance subdir --- .../main/kotlin/org/jetbrains/kotlin/Utils.kt | 44 +++++-------------- .../main}/kotlin/BenchmarkRepeatingType.kt | 0 .../src/main}/kotlin/BuildRegister.kt | 0 .../buildSrc/src/main}/kotlin/Internals.kt | 0 .../buildSrc/src/main}/kotlin/MPPTools.kt | 0 .../buildSrc/src/main/kotlin/Misc.kt | 30 +++++++++++++ .../buildSrc/src/main/kotlin/PlatfromInfo.kt | 18 ++++++++ .../buildSrc/src/main}/kotlin/RunJvmTask.kt | 0 .../src/main}/kotlin/RunKotlinNativeTask.kt | 0 .../main}/kotlin/benchmark/BenchmarkLogger.kt | 0 .../kotlin/benchmark/BenchmarkingPlugin.kt | 0 .../benchmark/CompileBenchmarkingPlugin.kt | 0 .../KotlinNativeBenchmarkingPlugin.kt | 0 .../benchmark/SwiftBenchmarkingPlugin.kt | 0 .../src/main}/kotlin/benchmarkUtils.kt | 0 15 files changed, 60 insertions(+), 32 deletions(-) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/BenchmarkRepeatingType.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/BuildRegister.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/Internals.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/MPPTools.kt (100%) create mode 100644 kotlin-native/performance/buildSrc/src/main/kotlin/PlatfromInfo.kt rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/RunJvmTask.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/RunKotlinNativeTask.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmark/BenchmarkLogger.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmark/BenchmarkingPlugin.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmark/CompileBenchmarkingPlugin.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmark/KotlinNativeBenchmarkingPlugin.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmark/SwiftBenchmarkingPlugin.kt (100%) rename kotlin-native/{build-tools/src/main/kotlin/org/jetbrains => performance/buildSrc/src/main}/kotlin/benchmarkUtils.kt (100%) diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt index 1d3478289f3..19164ae53f9 100644 --- a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt +++ b/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Utils.kt @@ -9,6 +9,9 @@ package org.jetbrains.kotlin import com.google.gson.GsonBuilder import org.gradle.api.Project import org.gradle.api.Task +import org.gradle.api.file.FileCollection +import org.gradle.api.plugins.ExtraPropertiesExtension +import org.gradle.api.provider.Provider import org.jetbrains.kotlin.konan.properties.loadProperties import org.jetbrains.kotlin.konan.properties.propertyList import org.jetbrains.kotlin.konan.properties.saveProperties @@ -313,37 +316,6 @@ fun Array.runCommand( } } -fun String.splitCommaSeparatedOption(optionName: String) = - split("\\s*,\\s*".toRegex()).map { - if (it.isNotEmpty()) listOf(optionName, it) else listOf(null) - }.flatten().filterNotNull() - -data class Commit(val revision: String, val developer: String, val webUrlWithDescription: String) - -val teamCityUrl = "https://buildserver.labs.intellij.net" - -fun buildsUrl(buildLocator: String) = - "$teamCityUrl/app/rest/builds/?locator=$buildLocator" - -fun getBuild(buildLocator: String, user: String, password: String) = - try { - sendGetRequest(buildsUrl(buildLocator), user, password) - } catch (t: Throwable) { - error("Try to get build! TeamCity is unreachable!") - } - -fun sendGetRequest(url: String, username: String? = null, password: String? = null): String { - val connection = URL(url).openConnection() as HttpURLConnection - if (username != null && password != null) { - val auth = Base64.getEncoder().encode(("$username:$password").toByteArray()).toString(Charsets.UTF_8) - connection.addRequestProperty("Authorization", "Basic $auth") - } - connection.setRequestProperty("Accept", "application/json"); - connection.connect() - return connection.inputStream.use { it.reader().use { reader -> reader.readText() } } -} - - @JvmOverloads fun compileSwift( project: Project, target: KonanTarget, sources: List, options: List, @@ -483,4 +455,12 @@ internal val Project.testTargetConfigurables: Configurables return platformManager.platform(testTarget).configurables } -internal val gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()!! \ No newline at end of file +internal val gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create()!! + +internal val Project.ext: ExtraPropertiesExtension + get() = extensions.getByName("ext") as ExtraPropertiesExtension + +internal val FileCollection.isNotEmpty: Boolean + get() = !isEmpty + +internal fun Provider.resolve(child: String): Provider = map { it.resolve(child) } diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/BenchmarkRepeatingType.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/BenchmarkRepeatingType.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/BenchmarkRepeatingType.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/BenchmarkRepeatingType.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/BuildRegister.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/BuildRegister.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/BuildRegister.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/BuildRegister.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Internals.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/Internals.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/Internals.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/Internals.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/MPPTools.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/MPPTools.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/MPPTools.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/MPPTools.kt diff --git a/kotlin-native/performance/buildSrc/src/main/kotlin/Misc.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/Misc.kt index 138eae5e975..c8fe6c3a109 100644 --- a/kotlin-native/performance/buildSrc/src/main/kotlin/Misc.kt +++ b/kotlin-native/performance/buildSrc/src/main/kotlin/Misc.kt @@ -8,3 +8,33 @@ fun Project.kotlinInit(cacheRedirectorEnabled: Boolean) { extensions.extraProperties["defaultSnapshotVersion"] = kotlinBuildProperties.defaultSnapshotVersion extensions.extraProperties["kotlinVersion"] = findProperty("kotlinVersion") } + +fun String.splitCommaSeparatedOption(optionName: String) = + split("\\s*,\\s*".toRegex()).map { + if (it.isNotEmpty()) listOf(optionName, it) else listOf(null) + }.flatten().filterNotNull() + +data class Commit(val revision: String, val developer: String, val webUrlWithDescription: String) + +val teamCityUrl = "https://buildserver.labs.intellij.net" + +fun buildsUrl(buildLocator: String) = + "$teamCityUrl/app/rest/builds/?locator=$buildLocator" + +fun getBuild(buildLocator: String, user: String, password: String) = + try { + sendGetRequest(buildsUrl(buildLocator), user, password) + } catch (t: Throwable) { + error("Try to get build! TeamCity is unreachable!") + } + +fun sendGetRequest(url: String, username: String? = null, password: String? = null): String { + val connection = URL(url).openConnection() as HttpURLConnection + if (username != null && password != null) { + val auth = Base64.getEncoder().encode(("$username:$password").toByteArray()).toString(Charsets.UTF_8) + connection.addRequestProperty("Authorization", "Basic $auth") + } + connection.setRequestProperty("Accept", "application/json"); + connection.connect() + return connection.inputStream.use { it.reader().use { reader -> reader.readText() } } +} \ No newline at end of file diff --git a/kotlin-native/performance/buildSrc/src/main/kotlin/PlatfromInfo.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/PlatfromInfo.kt new file mode 100644 index 00000000000..d87cfea237c --- /dev/null +++ b/kotlin-native/performance/buildSrc/src/main/kotlin/PlatfromInfo.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2010-2023 JetBrains s.r.o. and Kotlin Programming Language contributors. + * Use of this source code is governed by the Apache 2.0 license that can be found in the license/LICENSE.txt file. + */ +package org.jetbrains.kotlin + +import org.jetbrains.kotlin.konan.target.* + +object PlatformInfo { + @JvmStatic + fun isMac() = HostManager.hostIsMac + + @JvmStatic + fun isWindows() = HostManager.hostIsMingw + + @JvmStatic + fun isLinux() = HostManager.hostIsLinux +} \ No newline at end of file diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/RunJvmTask.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/RunJvmTask.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/RunJvmTask.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/RunJvmTask.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/RunKotlinNativeTask.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/RunKotlinNativeTask.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/RunKotlinNativeTask.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/RunKotlinNativeTask.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkLogger.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/BenchmarkLogger.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkLogger.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/BenchmarkLogger.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/BenchmarkingPlugin.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/BenchmarkingPlugin.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/BenchmarkingPlugin.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/CompileBenchmarkingPlugin.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/CompileBenchmarkingPlugin.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/CompileBenchmarkingPlugin.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/CompileBenchmarkingPlugin.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/KotlinNativeBenchmarkingPlugin.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/KotlinNativeBenchmarkingPlugin.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/KotlinNativeBenchmarkingPlugin.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/KotlinNativeBenchmarkingPlugin.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/SwiftBenchmarkingPlugin.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/SwiftBenchmarkingPlugin.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmark/SwiftBenchmarkingPlugin.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmark/SwiftBenchmarkingPlugin.kt diff --git a/kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmarkUtils.kt b/kotlin-native/performance/buildSrc/src/main/kotlin/benchmarkUtils.kt similarity index 100% rename from kotlin-native/build-tools/src/main/kotlin/org/jetbrains/kotlin/benchmarkUtils.kt rename to kotlin-native/performance/buildSrc/src/main/kotlin/benchmarkUtils.kt