[Test] Parallelize test generation

This commit is contained in:
Kirill Rakhman
2023-08-25 16:14:27 +02:00
committed by Space Team
parent 0d04e170b1
commit bb8a46c3a0
12 changed files with 72 additions and 43 deletions
@@ -5,9 +5,15 @@
package org.jetbrains.kotlin.test.generators
import org.jetbrains.kotlin.generators.util.TestGeneratorUtil
import java.util.stream.Stream
fun main(args: Array<String>) {
System.setProperty("java.awt.headless", "true")
// Determine main class name while still on main thread.
val mainClassName = TestGeneratorUtil.getMainClassName()
generateJUnit3CompilerTests(args)
generateJUnit5CompilerTests(args)
Stream.of(::generateJUnit3CompilerTests, ::generateJUnit5CompilerTests)
.parallel()
.forEach { it.invoke(args, mainClassName) }
}
@@ -50,10 +50,10 @@ import org.jetbrains.kotlin.test.TargetBackend
import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN
import org.jetbrains.kotlin.types.AbstractTypeBindingTest
fun generateJUnit3CompilerTests(args: Array<String>) {
fun generateJUnit3CompilerTests(args: Array<String>, mainClassName: String?) {
val excludedCustomTestdataPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN
generateTestGroupSuite(args) {
generateTestGroupSuite(args, mainClassName) {
testGroup("compiler/tests-gen", "compiler/testData") {
testClass<AbstractDiagnosticsTestWithJsStdLibAndBackendCompilation> {
model("diagnostics/testsWithJsStdLibAndBackendCompilation")
@@ -17,10 +17,10 @@ import org.jetbrains.kotlin.test.utils.CUSTOM_TEST_DATA_EXTENSION_PATTERN
import org.jetbrains.kotlin.visualizer.fir.AbstractFirVisualizerTest
import org.jetbrains.kotlin.visualizer.psi.AbstractPsiVisualizerTest
fun generateJUnit5CompilerTests(args: Array<String>) {
fun generateJUnit5CompilerTests(args: Array<String>, mainClassName: String?) {
val excludedCustomTestdataPattern = CUSTOM_TEST_DATA_EXTENSION_PATTERN
generateTestGroupSuiteWithJUnit5(args) {
generateTestGroupSuiteWithJUnit5(args, mainClassName) {
testGroup(testsRoot = "compiler/tests-common-new/tests-gen", testDataRoot = "compiler/testData") {
testClass<AbstractDiagnosticTest> {
model("diagnostics/tests", pattern = "^(.*)\\.kts?$", excludedPattern = excludedCustomTestdataPattern)