[K/N][test] Eager test group creation based on test roots

This commit adds an option to make test grouping eagerly create larger
groups of tests. Each MetaGroup is created based on the test root the
test file is located in. Test compilation tries to compile all
compatible tests in the group into the final binary/executable.

This grouping strategy allows infrastructure to reduce the number of
produced artifacts, and along with running tests from the same binary,
reduce execution time.

This is a part of ^KT-58928 to implement running tests on iOS devices.
This commit is contained in:
Pavel Punegov
2024-02-05 21:05:13 +01:00
committed by Space Team
parent 4d723bfa85
commit 3cc117336a
10 changed files with 157 additions and 20 deletions
@@ -28,6 +28,7 @@ private enum class TestProperty(shortName: String) {
EXECUTION_TIMEOUT("executionTimeout"),
SANITIZER("sanitizer"),
SHARED_TEST_EXECUTION("sharedTestExecution"),
EAGER_GROUP_CREATION("eagerGroupCreation"),
TEAMCITY("teamcity");
val fullName = "kotlin.internal.native.test.$shortName"
@@ -197,6 +198,7 @@ fun Project.nativeTest(
compute(EXECUTION_TIMEOUT)
compute(SANITIZER)
compute(SHARED_TEST_EXECUTION)
compute(EAGER_GROUP_CREATION)
// Pass whether tests are running at TeamCity.
computePrivate(TEAMCITY) { kotlinBuildProperties.isTeamcityBuild.toString() }