Files
kotlin-fork/libraries/tools/gradle/regression-benchmarks/benchmarkScripts/kvision.benchmark.kts
T
Yahor Berdnikau d16b169fb2 Update kvision build regression benchmarks
Added as well benchmarks for configuration time only checks.
2022-10-19 11:20:03 +02:00

94 lines
2.6 KiB
Kotlin

/*
* Copyright 2010-2022 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.
*/
// Pure 'org.jetbrains.kotlin.js' project (without MPP)
// - relatively big codebase
// - usually updated to the latest Kotlin version
@file:BenchmarkProject(
name = "kvision",
gitUrl = "https://github.com/rjaros/kvision.git",
gitCommitSha = "3fe69bf6db9a3650b026630d857862f3cee6485b"
)
import java.io.File
val currentReleasePatch = {
"kvision-kotlin-current.patch" to File("benchmarkScripts/files/kvision-kotlin-current.patch")
.readText()
.run { replace("<kotlin_version>", currentKotlinVersion) }
.byteInputStream()
}
runAllBenchmarks(
suite {
scenario {
title = "Build Js IR clean build"
runTasks("jsIrJar")
runCleanupTasks("clean")
}
scenario {
title = "Build Js IR with ABI change in ObservableList"
runTasks("jsIrJar")
applyAbiChangeTo("kvision-modules/kvision-state/src/main/kotlin/io/kvision/state/ObservableList.kt")
}
scenario {
title = "Build Js IR with non-ABI change in ObservableList"
runTasks("jsIrJar")
applyNonAbiChangeTo("kvision-modules/kvision-state/src/main/kotlin/io/kvision/state/ObservableList.kt")
}
scenario {
title = "Build Js Legacy clean build"
runTasks("jsLegacyJar")
runCleanupTasks("clean")
}
scenario {
title = "Build Js Legacy with ABI change in ObservableList"
runTasks("jsLegacyJar")
applyAbiChangeTo("kvision-modules/kvision-state/src/main/kotlin/io/kvision/state/ObservableList.kt")
}
scenario {
title = "Build Js Legacy with non-ABI change in ObservableList"
runTasks("jsLegacyJar")
applyNonAbiChangeTo("kvision-modules/kvision-state/src/main/kotlin/io/kvision/state/ObservableList.kt")
}
scenario {
title = "Dry run configuration time"
useGradleArgs("-m")
iterations = 20
runTasks("jsIrJar")
}
scenario {
title = "No-op configuration time"
iterations = 20
runTasks("help")
}
scenario {
title = "UP-TO-DATE configuration time"
iterations = 20
runTasks("jsIrJar")
}
},
mapOf(
"1.7.20" to null,
"1.8.0" to currentReleasePatch
)
)